Template Anpassungen über Blöcke

Der richtige Weg! (block.parent-Methode)

Eigentlich ist es Standard, Smarty Blöcke über folgene Form zu erweitern:

{extends file='parent:dir/dir2/templatename.tpl'} 
{block name='blockname' append}
<small>Erweiterung des Blocks um einen kleingeschrieben Text</small>
{/block}

Das sollte aber so nicht mehr realisiert werden.

Daher jetzt „the right way“

{extends file='parent:dir/dir2/templatename.tpl'} 

{block name='blockname'}
    {$smarty.block.parent}
    <small>Erweiterung des Blocks um einen kleingeschrieben Text</small>
{/block}

Das Ergebnis ist dasselbe wie oben, nur ohne mögliche Probleme in der Zukunft.

CMSms Minify richtig und einfach nutzen

Das Minify Modul für CMS made Simple muss installiert sein.

Nach diesem Muster könnt Ihr Testweise eine URL bilden:

https://domain.tld/unterverzeichnis_falls_vorhanden/modules/Minify/min/builder/

Eine Schleife lädt alle Javascriptdateien die sich im Ordner „uploads/ORDNERNAME/js/“ befinden  in die Minify URL


{* lädt alle js scripts aus dem template ordner *}
{assign var='js_template_scripts_array' value="uploads/ORDNERNAME/js/*.js"|glob}
< s c r i p t type="text/javascript" src="/min/?f={foreach from=$js_template_scripts_array item='scriptname' name=oneitem}cms/{$scriptname}{if $smarty.foreach.oneitem.last}{else},{/if}{/foreach}">



Bitte beim Copy/Paste darauf achten, das ich die Script Tags mit Leerzeichen aufgefüllt habe. Sonst wird der CdeSchnipsel nicht vollständig hier angezeigt.

That´s it

Doppelte Einträge aus Smarty Foreach Schleife nicht ausgeben

Lange habe ich nach einer vernünftigen Lösung gesucht, um doppelte Werte aus einer Smarty Foreach-Schleife zu entfernen.
So wie bei der PHP Funktion: array_unique.
Und so funktioniert es unter der Smarty Template Engine:

{foreach from=$items item=item}
    {* gibt es den Eintrag bereits im Array? *}
    {if !in_array($item, $array)}
    {* wenn nein, dann Ausgabe *}
    • {$item}

{* bei jeder Iteration wird das Array gefuellt *}
{append var='array' value=$item}
{/if}
{/foreach}