Page 1 of 1

Hook Daten abfangen

Posted: Sun Jul 03, 2011 5:13 pm
by Timbalu
Ich sitze gerade an einer kniffligen Frage:
In der entries.tpl sitzt der {serendipity_hookPlugin hook="entries_header" addData="$entry_id"} gleich zu Anfang. Woher bezieht er $entry_id und/oder Wozu benötigt er $entry_id überhaupt? Ist dies ein Relikt oder womöglich nur als Dummy? Unabhängig davon: Gibt es so etwas wie eine universelle Variable, wann die hooks "frontend_header", "frontend_footer", "entries_header", "entries_footer" eine Abfrage/Ausgabe lohnen?

Da ich gerade "sektioniere", möchte ich gerne die Ausgabe von Plugin Daten (zb staticpages oder contactform), die über diesen Hook ausgegeben werden, einkleiden, um nicht jedes einzelne Plugin template bearbeiten zu müssen. Allerdings, und das ist die Frage, würde ich dies auch gerne per {if $xxx} oder {if not $xxx} verhindern, wenn der normale Blog Content ausgegeben wird. Welche Variable ist dort tatsächlich möglich?

Code: Select all

<!-- ENTRIES START -->

{if $xxx}
<section id="section_xyz">
  {serendipity_hookPlugin hook="entries_header" addData="$entry_id"}
</section>
{/if}


Re: Hook Daten abfangen

Posted: Tue Jul 05, 2011 10:53 am
by garvinhicking
Hi!

$entry_id kommt aus der serendipity_smarty_init() und enthält (falls gesetzt) die ID des Artikels, wenn nur ein einzelner angezeigt wird.

Zum Rest Deiner Frage: Hä?! Ich verstehe nix. :-) Sag mal ganz konkret was du tun möchtest, nicht so abstrakt. :-)

Grüße,
Garvin

Re: Hook Daten abfangen

Posted: Tue Jul 05, 2011 11:41 am
by Timbalu
garvinhicking wrote:$entry_id kommt aus der serendipity_smarty_init() und enthält (falls gesetzt) die ID des Artikels, wenn nur ein einzelner angezeigt wird.
Das verstehe ich ja, aber wozu braucht man das da?
garvinhicking wrote:Zum Rest Deiner Frage: Hä?! Ich verstehe nix. :-) Sag mal ganz konkret was du tun möchtest, nicht so abstrakt. :-)
Abstrakt?
Ich habe versucht genau zu sein.... tztzztz ;-)

Also wie bereits gesagt:
Ich möchte die Pluginausgabe zB contactform mit einer html5 Semantik
<section id="section_xyz"> ...contactform... </section> umschließen.

Das kann ich natürlich in der plugin_contactform.tpl machen, doch ist mir das bezüglich Standort und Updates zu unsicher. Also habe ich sie in der entries.tpl (wie oben beschrieben) gesetzt.

Die Frage ist nun: Wie kann ich verhindern, dass sie leer ausgegeben wird, wenn keine plugin hook Ausgabe bzw wenn nur der normale Blogcontent ausgegeben wird. Die $entry_id abzufragen hilft da leider nicht.

Re: Hook Daten abfangen

Posted: Tue Jul 05, 2011 11:52 am
by garvinhicking
Timbalu wrote:
garvinhicking wrote:$entry_id kommt aus der serendipity_smarty_init() und enthält (falls gesetzt) die ID des Artikels, wenn nur ein einzelner angezeigt wird.
Das verstehe ich ja, aber wozu braucht man das da?
Damit Plugins die entries_header hooken auch direkt auf $addData zugreifen können, das der Entry-ID der aktuellen Seite entspricht.

Das was Du möchtest könnte mit {capture} von Smarty klappen, dazu musst du den hookteil damit umgeben und in eine variable packen, und die kannst du dann mit einem Smarty-Check umgeben um abzufragen ob sie leer ist oder Daten enthält.

Grüße,
Garvin

Re: Hook Daten abfangen

Posted: Tue Jul 05, 2011 2:41 pm
by Timbalu
Natürlich!
Warum kompliziert, wenns auch einfach geht..., Danke!