anbei eine kurze Smarty Notiz. Ein Smarty Feature, dass ich oft und gerne nutze. Im Grunde wird alles zwischen den {capture} Tags aufgezeichnet. Über eine Variable kann ich den Inhalt (die Aufnahme) dann an beliebiger Stelle ausgeben (oder an Plug-ins oder Module weiterreichen). Der Inhalt zwischen den Tags wird über die Variable ausgegeben und erscheint nicht direkt.
Code: Select all
{capture assign=VAR_NAME}{some_plug_in}{/capture}
Oder aber auch sowas:
{capture assign=VAR_NAME}
HTML, Text, JS, ...
{/capture}
Das ist ganz praktisch, wenn man z.B. ein DIV um ein Element setzen möchte, und ansonsten nichts erscheinen soll.
Code: Select all
Problem:
<div>
{some_plug_in}
</div>
Erzeugt Folgendes, wenn keine Rückgabe bzw. leer:
<div>
</div>
Code: Select all
{capture assign=banner}{some_plug_in}{/capture}
{if $banner != ''}
<div id="banner">{$banner}</div>
{/if}
Wer lieber über das Name-Attribute an den Content ran möchte, ändert die Nutzung wie folgt:
Code: Select all
{capture name=banner}
Irgendwas...
{/capture}
{$smarty.capture.banner}
Nils