Smarty Variable in Freitextfeld benutzen

Hey Leute,

leider finde ich hier im Forum keine entsprechende Antwort. Ich versuche in einem Freitextfeld eines Produktes ein anderes Freitextfeld auszugeben. Hintergrund ist, dass ich x Freitextfelder habe, die ich zur Filterung und Sortierung nutze. In einem weiteren Freitextfeld möchte ich nun all diese Freitextfelder ausgeben lassen.

Ich befülle also mein Freitextfeld mit dem Namen “attr11” mit z.B. diesem Inhalt:

{$sArticle.attr1}{$sArticle.attr2}{$sArticle.attr3}

Schön wäre es, wenn dann bei Ausgabe des Freitextfeld attr11 die Inhalt der anderen Freitextfelder ausgegeben werden. Ist das irgendwie machbar?

Vielen Dank für eure Hilfe.

Wo möchtest Du die Felder ausgeben? Und warum nicht einzeln?

Die Ausgabe soll einfach im Template erfolgen. In der Detail.tpl z.B. Dort möchte ich jedoch attr11 ausgeben und eben nicht attr1,2 und 3. Es hat verschiedene Gründe, vor allem aber wegen einer Plugin-Kompatibilität. 

Und welche Probleme hast Du bei der Umsetzung?

@nnwebdesign Man kann zwar mit  {eval $sArticle.attr11}; das erreichen, was du möchtest. Aber es ist audrücklich(!!!)nicht empfohlen. 

1 „Gefällt mir“

leider funktioniert dies nicht. Ich trage nun in Freitextfeld 11 {eval $sArticle.attr1} {eval $sArticle.attr2} ein, jedoch wird dies genau so wieder im Frontend ausgegeben.

Nein, das muss im Template stehen, nicht im Backend (denn irgendwo im Template muss Du ja attr1 ausgeben). Aber nochmal: damit machst Du ein Sicherheitsloch in deinem Shop.

1 „Gefällt mir“

In diesem Moment habe ich es getestet und auch festgestellt. Vielen Dank für die Hilfe - damit kann ich mein Vorhaben umsetzen.

„Shopware“ jagt Textfragmente ja auch gesondert durch den Smarty-Parser. Auch wenn es mit val wohl geht, versuch es doch auch mal dieser Variante:
{include file=„string:$sArticle.attr1“} {include file=„string:$sArticle.attr2“}

Das funktioniert nicht - oder ich verstehe es nicht. Ich muss wohl noch konkreter werden:

Freitextfeld attr1:

Ich bin ein Beispieltext.

Freitextfeld attr2:

Ich bin ein weiterer Text.

Freitextfeld attr3:

{$sArticle.attr1} {$sArticle.attr2}

In der details.tpl steht nun

{eval $sArticle.attr3}

An welcher Stelle soll ich also nun dein include einsetzen?

detail.tpl nicht „eval“ sondern:
 {include file=„string:$sArticle.attr3“}
„string“ jagt $sArticle.attr3 durch den smarty-Parser. Dieser legt im Template-cache dann eine Datei mit dem endgültigen Inhalt ab - der Dateiname ist ein Hash aus dem Inhalt vom Text. Der Dateiname wird auch an das include zurückgegeben und die Datei dann includet. Sofern also $sArticle.attr1 und $sArticle.attr2 existieren, sollten sie eingefügt werden… sollten