Scriptindex.de

[ Menü ]

Home
News
Scripts
Neuzugänge
Suchen
Bücher
Manuals

[ Inhalt ]

Script eintragen
Tutorial eintragen
Newsletter
Umfragen
Link zu uns
Werbung bei uns
Kontakt
Impressum

[ Statistik ]

Hits gesamt: 5203895
Hits Heute: 552
max. Hits (10.07.07): 6964
User Online: 28
Scripts: 2828

[ Partner ]

CodeBase
I.S.U.M.
LUG Bayreuth
PEAR NEWS
PHP Classes

[ Facebook ]

[ Eigene Domain? ]

[ Buchtipp ]

Das HTML /XHTML Buch. mit Cascading Style Sheets und einer Einführung in XML
Das HTML /XHTML Buch. mit Cascading Style Sheets und einer Einführung in XML

Manuals > Smarty > Block-Funktionen

16.6. Block-Funktionen

void smarty_function_name(array $params, mixed $content, object &$smarty);

Block-Funktionen sind Funktionen, die in der Form .. notiert werden. Mit anderen Worten umschliessen sie einen Template-Abschnitt und arbeiten danach auf dessen Inhalt. Eine Block-Funktion .. kann nicht mir einer gleichnamigen Template-Funktion überschrieben werden.

Ihre Funktions-Implementation wird von Smarty zweimal aufgerufen: einmal für das öffnende und einmal für das schliessende Tag. (konsultieren Sie den Abschnitt zu &$repeat um zu erfahren wie Sie dies ändern können.)

Nur das Öffnungs-Tag kann Attribute enthalten. Alle so übergebenen Attribute werden als assoziatives Array $params der Template-Funktion übergeben. Sie können auf die Werte entweder direkt mit $params['start'] zugreifen oder sie mit extract($params) in die Symbol-Tabelle importieren. Die Attribute aus dem Öffnungs-Tag stehen auch beim Aufruf für das schliessende Tag zur Verfügung.

Der Inhalt der $content Variable hängt davon ab, ob die Funktion für das öffnende Tag oder für das schliessende Tag aufgerufen wird. Für das öffnende Tag ist der Wert null, für das schliessende Tag ist es der Inhalt des Template-Abschnitts. Achtung: Der Template-Abschnitt den Sie erhalten, wurde bereits von Smarty bearbeitet. Sie erhalten also die Template-Ausgabe, nicht den Template-Quelltext.

Der Parameter &$repeat wird als Referenz übergeben und kontrolliert wie oft ein Block dargestellt werden soll. Standardwert von $repeat ist beim ersten Aufruf (für das öffnende Tag) true, danach immer false. Jedes Mal wenn eine Funktion für &$repeat TRUE zurück gibt, wird der Inhalt zwischen .. erneut mit dem veränderten Inhalt als $content Parameter aufgerufen.

Wenn Sie verschachtelte Block-Funktionen haben, können Sie die Eltern-Block-Funktion mit der $smarty->_tag_stack Variable herausfinden. Lassen Sie sich ihren Inhalt mit 'var_dump()' ausgeben. Die Struktur sollte selbsterklärend sein.

Sehen Sie dazu: register_block(), unregister_block().

Beispiel 16-5. Block-Funktionen

<?php /* * Smarty plugin * ------------------------------------------------------------- * File: block.translate.php * Type: block * Name: translate * Purpose: translate a block of text * ------------------------------------------------------------- */ function smarty_block_translate($params, $content, &$smarty) { if (isset($content)) { $lang = $params['lang']; // den $content irgendwie intelligent übersetzuen return $translation; } }

Copyright 1998 - 2009 by I.S.U.M.