Globale Variablen im Template

Liebes Forum :slight_smile: :slight_smile:

gibt es eine Möglichkeit in einem Template (.tpl) trotz des Blocksystems globale Variablen zu definieren ?

Mit php geht das natrürlich, möchte das aber im Theme machen. Ich denke daran, irgendwo im Kopf der .tpl Datei Variablen zu definieren, die dann innerhalb der Blöcke verwendet werden können. Geht das irgendwie ?
Vielleicht auch in einem extra Block ?

Liebe Grüße

Kerstin

Hallo Kerstin,

wenn ich dich richtig verstehe sollte es ja reichen, wenn du in der Datei /frontend/index/index.tpl eine Variable erstellst mit 

 {assign var="name" value="value"}

Hier sollte die Variable dann ja auf überall zur Verfügung stehen. 

LG

 

Danke für die Antwort.

Das ist allerdings etwas zu global. Ich dachte, dass die Variable in der Templatedatei und ggf. in den includeten Templatedateien sichtbar sein soll.

Ich habe in der index.tpl ein Variable definiert

 {assign var=“Kundennummer” value=“D80043” scope=“global”}
 {assign “Kundennummer” “D80043” scope=“global”} {* short-hand *}

Ich kann die aber auf anderen tpl’s nicht abrufen

das scope brauchst du gar nicht, wenn du sie so wie oben erwähnt in der  /frontend/index/index.tpl definierst. Dann ist sie global. Ein bisschen zu global für meinen Geschmack.

In der short-Hand Version fehlt das = - Zeichen. Aber das ist wohl nicht der Originalcode, sonst wäre das beim Kompilieren aufgefallen.

Ist der Originalcode, der Wert soll sich natürlich je nach Login ändern.

Ich brauche einfach eine Variable mit Kundennummer und LOG-Status die ich überall im Shop benutzen kann.

Allerdings funktioniert ja die Version von oben sowieso nicht, da ich die Variable in meiner TPL nicht abrufen kann.

 Die Daten stehen ohnehin zur Verfügung. Eingelogged: sUserLoggedIn = True/False

 und alle Userdaten sind in dem Array sUserData zu finden (auch Adresse etc.)

Dann bitte nochmal für Dummys.

Ich habe unter frontend/custom eine eigene tpl Datei.

Hier möchte ich Felder mit den Login-Daten vorbelegen

also z.B. {$sUserData.additional.user.customernumber} bei Kundennummer

Das Feld ist aber leer es wird keine Kundennummer ausgegeben

ja, stimmt, sehe ich jetzt auch. Sonst sind diese Daten in (fast?) allen Templates vorhanden. Besonders irreführend ist, dass 

 sUserLoggedIn = False

übergeben wird.

Dann ist in dieser Situation diese Variable aber gar nicht bekannt, und da hilft es nicht, wenn du in der frontend/index/index.tpl die Userdaten einträgst. Da musst du dir wohl ein kleines Plugin schreiben, das diese Werte zur Verfügung stellt.

(Meine Fragestellung war eine ganz andere. Da ging es um eine statische Variable, die immer gleich bleibt. Etwa so wie die Variablen in less).

Zum Beispiel könntest du über die Session gehen und die Cookies auslesen.

Als richtig globale Variable kann es nicht gehen, da es ja verschiedene User gibt. Hoffe ich zumindest für dich :slight_smile:

Sorry aber bei Plugin schreiben bin ich raus…