[gelöst] print $help -> Array
am 08.06.2009 - 22:55 Uhr in
Hallo,
in letzter Zeit (leider weiss ich den Zeitpunkt nicht mehr genau), muss ich bei den Themes etwas merkwürdiges beobachten.
<?php if ($help) ) { ?><div class="help"><?php print $help ?></div><?php } ?>Gibt an der Stelle (unter dem Node-Title) Stets das Wörtchen "Array" aus.
Weiss jemand, woran das liegen könnte?
(Das Help-Modul ist nicht installiert)
MfG
Passer
- Anmelden oder Registrieren um Kommentare zu schreiben

Also was mir als Erstes
am 09.06.2009 - 08:01 Uhr
Also was mir als Erstes auffällt, ohne mir erstmal weiter über die Zeike Gedanken zu machen, dass Du eine schliessende Klammer
<?php($help) )
?>
zuviel hast!
-------------------
gruss
drupalino
$help
am 09.06.2009 - 08:02 Uhr
Moin.
Naja, wenn da "Array" ausgegeben wird, ist da auch ein Array drin. Lass Dir doch mal den "richtigen" Inhalt der Variable ausgeben (mit
var_dump(), firebug, devel, ...). Dann kannst Du evtl. nachverfolgen, was für Daten in der Variable enthalten sind und woher die stammen.hth,
Stefan
--
sei nett zu Deinem Themer
Das mit der Klammer war n
am 09.06.2009 - 08:20 Uhr
Das mit der Klammer war n Copy+Paste fehler (hab vorher ein wenig experimentiert und beim wegnehmen nicht so genau hingeguckt.
habs oben nun korrigiert.
Danke für den Hinweis. Wennd er Fehler im PHP drin gewesen wäre, wäre ich eh unweigerlich von php durch eine Verweigerung der Anzeige darauf aufmerksam geworden ;)
@stBorchert
var_dumb() hatte ichnoch net versucht, meine ergebnislosen Versuche beschränkten sich bislang auf print_r().
Allerdings liefert mir vardump auch wenig erfreuliches:
string(30) "Array
"
damit kann ich (noch) nicht wirklich was anfangen.
Array?
am 09.06.2009 - 08:28 Uhr
damit kann ich (noch) nicht wirklich was anfangen.
Oha. Da schreibt wohl irgendein Modul ein wenig Müll in die Variable. Sprich die Implementierung von
hook_help()in einem der aktivierten Module wird irgendwo sowas wie<?php $output .= array(); ?>haben.Ich hoffe, Du hast nicht so viele Module aktiviert, denn Du darfst jetzt in jedes (Nicht-Kern-)Modul reinschauen (in die .module), nach einer Funktion namens
MODULNAME_help()suchen und dann schauen, ob da irgendwo ein Array einfach an die ausgegebene Variable gehängt wird.Keine schöne Aufgabe ...
hth,
Stefan
--
sei nett zu Deinem Themer
Zitat: MODULNAME_menu()
am 09.06.2009 - 08:34 Uhr
MODULNAME_menu() suchen und dann schauen
Du meinst sicher MODULNAME_help() !
-------------------
gruss
drupalino
hook_help
am 09.06.2009 - 08:37 Uhr
Du meinst sicher MODULNAME_help()
Stimmt.
Stefan
--
sei nett zu Deinem Themer
danke, das ist ja schonmal
am 09.06.2009 - 09:52 Uhr
danke, das ist ja schonmal was.
Und nur um sicher zu gehen:
hook_help wird auch aufgerufen, wenn das Help-Modul nicht aktiv ist?
Antwort:
scheinbar nicht:
ein
function module_invoke_all() {...
if ($hook == 'help')
watchdog("module", $module." module_invoke_all ".$hook, WATCHDOG_WARNING);
gibt keine Ausgabe...
Mist
Das macht die suche nicht einfacher
UPDATE
Da stimmt wohl nicht ganz, was in der Doc steht, dass ..invoke_all den help hook aufruft...
function module_invoke(){...
if ($hook == 'help'){
if ($help)
{
$cnt++;
watchdog("module", $cnt." - ".$module.": ".$help, WATCHDOG_WARNING);
}}
=> Keine Ausgabe
Daraus folgt: die $help scheint nicht innherhalb des hooks zugemüllt zu werden :(
Im Moment hänge ich grad im Theme fest.
Weiss jemand, von wo die page.tpl aufgerufen wird?
bzw noch besser wäre, wie ist der Ablaufpfad bis zur page.tpl?
$help
am 09.06.2009 - 09:57 Uhr
Daraus folgt: die $help scheint nicht innherhalb des hooks zugemüllt zu werden :(
Kann ja auch nicht, da $help eine (Drupal-interne) "globale" Variable ist. Diese wird in template_preprocess_page gefüllt.
Und zwar über die Funktion theme_help, respektive menu_get_active_help.
Dort wird dann für jedes aktive Modul
hook_helpaufgerufen.Stefan
--
sei nett zu Deinem Themer
grmpf... es lag an
am 09.06.2009 - 10:38 Uhr
grmpf...
es lag an htmltidy.
ein
...
return t($output);
Ohne ein $outpuT zu initialisieren klappt natürlich net
Vielen Dank