Smarty assign array - Wie String und Variable zusammenfügen?
Ich möchte gerne ein Array im Smarty-Template erzeugen was auch so gut funktioniert. Nur kann ich keine Strings und Variablen zusammenfügen was ja bei PHP ein Punkt (.) und bei Javascript ein Plus (+) ist. Ich habe bereits die Hochkommas probiert die bei Variablen auch funktionieren aber nur nicht bei Array.
{assign var=breadcrumb value=['0'=>['title'=>$lang.brand.title.0, 'url'=>'/`$lang.main.url.6`/']]}
Geht eigentlich nur um die zuweisung von url
1 Antwort
Ich würde das, wenn irgendwie möglich, immer direkt in PHP machen und dann nur das fertige Array an Smarty übergeben.
Grundsätzlich sollte folgendes aber funktionieren:
{$var = ['foo' => 'bar', 'blubb' => [1, 2, 3]]}
oder auch
{$var.foo = 'bar'}
Was genau funktioniert bei deinem Code denn nicht? Kommt eine Fehlermeldung? Denn vom Prinzip her müsste das stimmen, man kann Strings und Variablen einfach nach folgendem Schema zusammenfügen:
{$varC="`$varA`blubb`$varB`"}
Wenn es nur um die "/" um die $url herum geht (kA ob man die vielleicht escapen muss, hab sowas noch nie versucht), die würde ich einfach nachher bei der Ausgabe einfügen (wenn es wie gesagt nicht sowieso möglich wäre, das ganze direkt in PHP "zusammenzubauen").
// Edit: Was ich oben benutzt habe ist übrigens einfach nur die "Kurzform" von "assign", die Variante mit assign sollte also genauso funktionieren, also da liegt der Fehler nicht.
Korrekt. Es geht letztendlich nur um die "/"
Eine Fehlermeldung wird nicht ausgegeben. Nur der Variablenname wird ausgegeben anstatt den Wert.
Hier habe ich nun aber die Lösung:
{assign var=breadcrumb value=['0'=>['title'=>$lang.brand.title.2, 'url'=>"/{$lang.main.url.6}/"]]}