Welcome, Guest. Please login or register.
Did you miss your activation email?
May 26, 2012, 01:30:37 PM

Login with username, password and session length
Search:     Advanced search
Interested in joining the WebsiteBaker team?
For more Information read here or on our new website.
155538 Posts in 21712 Topics by 7737 Members
Latest Member: deanmacullam
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: Droplets in 'Account/Einstellungen' oder 'Suche' ...  (Read 320 times)
nubsi

Offline Offline

Posts: 4


« on: December 01, 2010, 11:50:54 AM »

Hallo liebe WB-Gemeinde,

ich habe ein Droplet wie z.B. 'ModifiedWhen' oder 'SiteModified' in mein Template eingebunden und alles funktioniert soweit korrekt.

Wenn ich jedoch eine der systeminternen Seiten wie 'Einstellungen' des Benutzeraccounts eines angemeldeten Benutzers oder die Antwortseite der Seitensuche aufrufe, werden meine Droplets zwar ausgeführt, jedoch geben sie keine Returnwerte zurück.

Ja, ich weiß, das liegt an der IF-Abfrage (PAGE_ID>0) und das ist soweit ja auch sinnvoll und korrekt.

Die Frage ist nur, wieso der ELSE-Fall nicht ausgeführt wird. Oder, wenn dieser ausgeführt wird, wieso dann nicht angeziegt wird.

Mein Beispiel-Code lautet wie folgt:

global $database, $wb;
if (PAGE_ID>0) {
   $query=$database->query("SELECT modified_when FROM ".TABLE_PREFIX."pages where page_id=".PAGE_ID);
   $mod_details=$query->fetchRow();
   return date("d/m/Y",$mod_details[0]). " at ".date("H:i",$mod_details[0]).".";
} else {
   return "irgend ein dummer Text";
}

Ich stehe auf dem Schlauch und bitte um Hilfe ...!

 embarassed
Logged
gottfried

Offline Offline

Posts: 980


« Reply #1 on: December 02, 2010, 05:12:24 PM »

Hi nubsi !

Ich könnt mir vorstellen, daß PAGE_ID dann gar nicht nicht existiert bzw ein NULL Wert ist

u.U zusätzlich  if (PAGE_ID){......}  else {hups} verwenden Huh   huh
« Last Edit: December 02, 2010, 05:15:46 PM by gottfried » Logged
pcwacht
AddOn Development
*
Offline Offline

Posts: 2858



WWW
« Reply #2 on: December 02, 2010, 09:11:52 PM »

Vielleicht hatte es etwas zu tun mit die falle das das systempages sind, ich weis icht ob dan uberhaupt die droplets dort laufen.


Mein deutsch ist vielleicht besser als deinem hollandisch Tongue


Ich hoffe sie verstehen es.
John
Logged

http://www.ictwacht.nl = Dutch ICT info
http://www.pcwacht.nl = My first
both still work in progress, since years.....
eitel

Offline Offline

Posts: 37


« Reply #3 on: February 03, 2012, 03:27:26 PM »

Ja, es scheint an den Systemabfragen zu liegen. Wenn ich meine seiteninterne Suche verwende, erhalte ich die korrekten Suchergebnisse aufgezeigt.

SiteModified liefert als Ausgabe:
Quote
Error in: SiteModified, no correct returnvalue.

Liegt ja wahrscheinlich daran, dass die Trefferliste gar keine Page_ID hat und NULL ist


Quote
global $database, $wb;
if (PAGE_ID>0) {
   $query=$database->query("SELECT max(modified_when) FROM ".TABLE_PREFIX."pages");
   $mod_details=$query->fetchRow();
   return "zuletzt aktualisiert am ".date("d.m.Y",$mod_details[0]). " um ".date("H:i",$mod_details[0]).".";
}

Hat bitte jemand einen Tip, wie man das Droplet aus WB 2.8.2 ergänzen muss, damit der Fehler abgefangen wird?

Quote
if (PAGE_ID){......}  else {hups}
ist glaub ich nicht ganz richtig... smiley

Ich möchte immer unterhalb des Seitenmenus das Datum angezeigt bekommen.
Für was ist denn überhaupt der "if"? Page_ID ist doch gar nicht im SELECT. ?

Vielen Dank für Eure Hilfe

Winnie
Logged
kweitzel
Forum administrator
*****
Offline Offline

Posts: 6975


WWW
« Reply #4 on: February 03, 2012, 04:48:21 PM »

Die if (PAGE_ID>0 dient dazu die Systemseiten (Registrierung, Suchergebnisse, usw) die keine eigene Page_ID haben, auszuschließen.

Alle vom User erstellten Seiten haben ja eine Page_ID.

Gruß

Klaus
Logged

WebsiteBaker Org e.V. - for WebsiteBaker

eitel

Offline Offline

Posts: 37


« Reply #5 on: February 03, 2012, 08:27:00 PM »

Vielen Dank, lieber Klaus.

Für ModifiedWhen verstehe ich das, da geht es ja um die "current page". Die muss ja eine Page-ID haben.
Trotzdem blöd. ich habe im Template einen Aufruf von ModifiedWhen. Auf der Treffer-Liste erhalte ich dann
Quote
Error in: ModifiedWhen, no correct returnvalue.
. Kann man diesen Fehler irgendwie abfangen? In VBA gibt es eine nz()-funktion, die NULL-Werte zu 0-Werten macht. Oder eine is-NUll Bedingung. Gibt es hier etwas ähnliches?

Bei SiteModified geht's hingegen  ja um die gesamte Webseite. Warum muss dann auf Systemseiten eine Fehlermeldung erscheinen? Das letzte Aktualisierungsdatu m ändert sich ja nicht, wenn ich z.B. eine Suche durchführe.

ich habe jetzt die If-abfrage entfernt. Das ist bei SiteModified meiner Meinung nach sinnvoller. (und funktioniert auch)
Quote
global $database, $wb;
 {
   $query=$database->query("SELECT max(modified_when) FROM ".TABLE_PREFIX."pages");
   $mod_details=$query->fetchRow();
   return "zuletzt aktualisiert am ".date("d.m.Y",$mod_details[0]). " um ".date("H:i",$mod_details[0]).".";
}

Grüße
Winnie
« Last Edit: February 03, 2012, 08:34:16 PM by eitel » Logged
Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #6 on: February 03, 2012, 08:49:40 PM »

Hallo,

Tust Du die Droplets dann ins Template?
Du könntest die Condition im Template setzen statt im Droplet selbst.
Code:
<?php

if (!defined(PAGE_ID)){
     .... die 
Alternative ....
}
else
{
    [[
DAS_DROPLET]]
}
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
eitel

Offline Offline

Posts: 37


« Reply #7 on: February 03, 2012, 09:20:56 PM »

Hallo Stefek,
Sind die Droplets nicht fürs Template gedacht? Vielleicht habe ich das Konzept nicht ganz verstanden. Kann gut sein...

Ich habe es jetzt doch im Droplet gelöst.

Quote
global $database, $wb;
if (PAGE_ID>0) {
   $query=$database->query("SELECT modified_when FROM ".TABLE_PREFIX."pages where page_id=".PAGE_ID);
   $mod_details=$query->fetchRow();
   return "zuletzt aktualisiert am ".date("d.m.Y",$mod_details[0]). " um ".date("H:i",$mod_details[0])." Uhr.";
}
else
{
return "die Alternative" ;
}

Vielen Dank für deine Hilfe. Ich bin jetzt durch mit dem Thema.  smiley

Gruß

Winnie
Logged
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!