[gelöst] Blöcke: Nur anzeigen, wenn der folgende PHP-Code TRUE zurückgibt
Eingetragen von PaulchenPlump (55)
am 23.09.2009 - 15:44 Uhr in
am 23.09.2009 - 15:44 Uhr in
Hallo Experten,
ich habe ein Problem mit der Blockfunktion: "Nur anzeigen, wenn der folgende PHP-Code TRUE zurückgibt (PHP-Modus für Experten)."
Ich habe in den darauffolgenden Textfeld den Ausdruck "(($node->uid==2) OR empty($node->uid))" eingesetzt um den Block nur anzuzeigen, wenn es keinen oder nur einen bestimmten Ersteller einer node gibt. Leider wird er auch angezeigt wenn die node von anderen Leuten stammt . :(
Was mache ich falsch?
Vielen Dank & Ciao, PaulchenPlump
- Anmelden oder Registrieren um Kommentare zu schreiben
Hi was steht denn in dem
am 23.09.2009 - 15:51 Uhr
Hi was steht denn in dem Feld genau? Du hast hier die Möglichkeit php formatiert einzugeben, einfach < ? php drum rum setzen.
<?php
(($node->uid==2) OR empty($node->uid))
?>
Das Textfeld wird mit eval bearbeitet. Du solltest auf alle Fälle ein return setzen, sonst kommt da immer nur NULL raus. Wobei wenn der Block immer zu sehen ist, ist das eh komisch, da NULL == FALSE sein sollte.
<?php
return (($node->uid==2) OR empty($node->uid));
?>
---
Viele Grüße,
Kars-T
Viele Grüße,
Kars-T
Hallo Kars-T, wieder was
am 23.09.2009 - 16:20 Uhr
Hallo Kars-T,
wieder was gelernt, aber trotzdem keinen Erfolg. ;)
Ein test mittels "drupal_set_message(print (($node->uid==2) OR empty($node->uid)));" in der page.tpl.php liefert einen leeren String oder 1 - dh. es sollte funktionieren...
Warum soll ich es überhaupt in <?php-Tags packen - eval interpretiert doch nur einen string?
Danke für die schnelle Hilfe, PaulchenPlump
Der Block weiß nichts vom node
am 23.09.2009 - 16:30 Uhr
Ein Block weiß nichts vom gerade angezeigten node. Deshalb musst du sowas hier schreiben:
<?php
if(arg(0) == 'node' and is_numeric(arg(1)) {
$node = node_load(arg(1));
return $node->uid == 2 or empty($node->uid);
}
else {
return false;
}
?>
vg
--
md - DrupalCenter.de
mdwp*
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Hmm, da ist was wahres
am 23.09.2009 - 17:44 Uhr
Hmm, da ist was wahres dran... Leider funzt es immer noch nicht - welche Möglichkeiten habe ich um das dort zu debuggen?
Ciao, PaulchenPlump
Eine Klammer fehlte
am 23.09.2009 - 18:09 Uhr
In der ersten Zeile fehlte eine Klammer.
So gehts:
<?php
if(arg(0) == 'node' && is_numeric(arg(1))) {
?>
vg
--
md - DrupalCenter.de
mdwp*
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Aaargh, ja stimmt - jetzt
am 23.09.2009 - 20:06 Uhr
Aaargh, ja stimmt - jetzt klappt das auch! Vielen Dank!
Ciao, PaulchenPlump