Seltsames Problem mit Funktion in template.php
am 03.10.2010 - 14:09 Uhr in
Da ich den Inhalt von node->links mittels der "function MEINTHEME_preprocess_node(&$vars)" aufgesplittet habe, will ich auch den Link des QUOTE Modules separat in einer node.tpl.php ausgeben lassen.
Dank der Hilfe von Stefan hat das schon mal recht gut geklappt. Wie ich eben festgestellt habe, allerdings nur im FIREFOX!? Wenn ich mit dem IE eine Seite ansehe, bei der der quote Link mittels:
<?php print l($quote_link['title'], $quote_link['href'], $quote_link); ?>
aufgerufen wird, zerreisst es das Theme komplett und ich erhalte nur eine Fehlermeldung an der Stelle! Und zwar "Fatal error: Unsupported operand types in C:\xampplite\htdocs\easywin\includes\common.inc on line 1592"
Die Funktion lautet:
function MEINTHEME_preprocess_node(&$vars) {
if ($vars['node'] && $vars['node']->links && $vars['node']->links['quote']) {
$vars['quote_link'] = $vars['node']->links['quote'];
}
}
Jemand eine Idee, oder einen Ratschlag, wie das Problem behoben werden kann?
- Anmelden oder Registrieren um Kommentare zu schreiben
Du prüfst nirgendwo, ob
am 03.10.2010 - 14:28 Uhr
Du prüfst nirgendwo, ob
$vars['node']->links['quote']
ein Array (mit passender Struktur) ist. Das ist aber die Voraussetzung für das Gelingen des Aufrufs<?php print l($quote_link['title'], $quote_link['href'], $quote_link); ?>
Beste Grüße
Werner
Hi Werner ... das komische
am 03.10.2010 - 14:36 Uhr
Hi Werner ... das komische ist für mich ja, daß es im FF prima klappt!
Da ich bekanntermaßen in Sachen PHP eher als Depperle zu bezeichnen bin ... verrätst Du mir noch wie die Funktion dann auszusehen hat, mit einer Prüfung? Ich kanns echt nicht :-)
Hallo Thoor, habe gerade noch
am 03.10.2010 - 16:42 Uhr
Hallo Thoor, habe gerade noch mal die l-Funktion nachgesehen und konstatiere, daß Dein 3. Parameter murks ist. Du setzt noch einmal die Optionen Titel und Href rein, die l() schon einbaut. mag sein, das das dem Firefox egal ist, aber nicht dem IE. Laß den 3. Parameter einfach mal weg, also
<?php print l($quote_link['title'], $quote_link['href']); ?>
Beste Grüße
Werner
P.S. Die Struktur lass ich jetzt noch mal ungeprüft. Wenn es so geht, sparen wir uns das, sonst reiche ich es nach.
Hallo nochmal Werner, Danke
am 03.10.2010 - 18:34 Uhr
Hallo nochmal Werner,
Danke für Deinen Tip. Leider funktioniert es immer nur noch im FF. Wenn ich die print Anweisung entsprechend kürze, dann erscheint im FF im Quelltext richtig:
<a href="/comment/reply/72599">
Im IE wirds leider nur ein "schmales" Nichts:
<a href="/"></a>
Wäre wohl auch zu einfach gesewesen :-)
Das verstehe ich jetzt aber
am 03.10.2010 - 21:13 Uhr
Das verstehe ich jetzt aber auch nicht mehr. Ich bin überzeugt, daß die Funktion im template.php unabhängig vom Browser arbeitet, der die Seite aufruft. Woher kommt denn Dein quote_link? Resultiert der aus einer vorherigen Eingabe oder Markierung im IE? Dann müssen wir wohl bei der Fehlersuche dort ansetzen.
Beste Grüße
Werner
Hi nochmal ... ich habe wie
am 04.10.2010 - 04:54 Uhr
Hi nochmal ... ich habe wie in der Anleitung von MortenDK meine $links in Einzelteile aufgesplittet. Das funktioniert ohne Probleme.
Der "Zitier" Link aus dem QUOTE MODUL erscheint ja eigentlich auch in $links ... deshalb jetzt der Versuch, diesen Link ebenfalls separat im Node zu platzieren.
Danke für den Hinweis auf
am 04.10.2010 - 10:12 Uhr
Danke für den Hinweis auf Mortens Blog. Da ist aber auch in den Kommentaren eine weitere Möglichkeit aufgezeigt, um Dein Problem zu lösen: das Modul [do:eldorado_superfly eldorado_superfly].
Das bringt Dir die Elemente des link-Arrays wie CCK-Felder in Deinen Datentyp. Die kannst Du dann über Display-Fields ein- oder ausschalten und auch entsprechend positionieren. Versuch es doch mal damit.
Beste Grüße
Werner
Du musst doch nicht danken,
am 04.10.2010 - 10:25 Uhr
Du musst doch nicht danken, ich habe zu danken :-) Ja das Modul habe ich natürlich auch bemerkt, in den Kommentaren. Nur ... alles funzt ja eigentlich. Sämtliche CORE Links in $links, und der quote Modul Link ja auch im FF ...
Ich hoffe mal drauf daß noch jemand nen Vorschlag hat, für dieses Problem. ... im Notfall versuche ich es dann mit dem Modul ( mit dem übrigens echt bescheuerten Namen ) *grins*