Template Setting korrekt als Template Attribute setzen

image

Unsere Templates sind lange nicht mehr eine einzige index.html Datei, wo alles abläuft. Oben sieht man die Unterteilung den einzelnen Abschnitten in separate Dateien.

Wenn ich in der Datei template/page.html eine Variable $showHeader abfragen möchte, muss ich diese in index.html weitergeben:

{fetch template="template/page.html" showHeader=$showHeader}

Wir haben darüber diskutiert, wie man das Vorgehen umgehen könnte. Hier ist der Vorschlag von Hen:

/**
 * Own object container for template settings
 * Smarty example: {$Template->getAttribute('TemplateSetting')->getAttribute('navPos')}
 */
$Setting = new \QUI\QDOM();
$Setting->setAttributes($templateSettings);
$Template->setAttribute('TemplateSetting', $Setting);

So kann man das in Smarty verwenden:

{$Template->getAttribute('TemplateSetting')->getAttribute('navPos')}

<!-- oder oben zuweisen, wenn es mehrere gibt, und dann abfragen -->
{assign var=Setting value=$Template->getAttribute('TemplateSetting')}

<!-- ... -->

{$Setting->->getAttribute('navPos')}
von Michael Danielczok bearbeitet