Globale Variablen

Ich habe gerade das gleiche Problem und suche nach einer Lösung - vielleicht hat sich ja in den letzten Jahren etwas geändert?

Konkretes Problem: Ich möchte die Variable $sidebar global anschalten. Wenn ich das in der page.tpl mache, funktioniert das, aber die widget/product/list.tpl kennt ihren Wert nicht. Das ist soweit logisch, weil die zuerst einen Capture-Block ausführt und dann erst die page.tpl inkludiert, so dass mein Wert erst gesetzt ist, wenn das Listing bereits erzeugt wurde. Diesem Listing möchte ich aber mitgeben, dass es nur drei statt vier Spalten erzeugen soll, wenn ein Sidebar da ist und Platz in der Breite beansprucht.

Ich kann die Variable natürlich in der list.tpl selbst setzen - aber dann wird sie natürlich nur auf Listing-Seiten gesetzt und nicht in allen anderen Seitentypen.

Deshalb aktuell nochmal die Frage: Kann ich so einen Wert irgendwo zentral so setzen, dass alle TPLs ihn kennen, wenn sie ausgeführt werden?

Was ist denn die Ursache dafür, ob $sidebar gesetzt wird oder nicht?

Die Ursache bin ich :slight_smile: D.h. ich suche eine Stelle, an der ich $sidebar im Template z.b. auf den Wert “Left” setzen kann, so dass sich das auf allen Seiten auswirkt.

Dann schreibe ein kleines Modul, erweitere oxviewconfig um eine Methode (deinemethode()) und rufe den Wert ab. Fertig.

Bsp:`
[{assign var=“position” value=left}]
[{if$oViewConf->deinemethode()}][{assign var=“position” value=$oViewConf->deinemethode()}] [{/if}]

[{include file=“layout/page.tpl” sidebar=position}]

So ähnlich habe ich das aktuelle Problem gelöst. In dem Fall mit einem Template-Parameter, den ich dann per $oViewConf->getViewThemeParam() auslese; das geht dann überall.

Da ich aber zur Zeit auch einige merge requests für die Verbesserung von Wave mache, kam dabei die Frage auf, ob es dafür nicht auch einen Mechanismus gibt, der allein innerhalb der TPL-Dateien möglich ist. So eine Art ini.tpl oder config.tpl …

Dann direkt über setGlobalParameter oder erweitere Smarty um ein Plugin.-> _fillCommonSmartyProperties