Smarty "append" Funktion nicht verfügbar?

ich versuche an die Attribute aller Artikel in der search.tpl zu kommen, da oxsearch kein getAtrributes() hat aber jeder Artikel diese Funktion unterstützt versuche ich diese in einen Array hinzuzufügen.
Dies klappt jedoch nicht da die Smarty “append” Funktion offensichtlich nicht zu Verfügung steht?

Ein simples

[{append var=‘name’ value=‘Meyer’ index=‘last’}]

schlägt mit der Fehlermeldung: "unrecognized tag ‘append’ " fehl.

Mache ich etwa falsch, hat vielleicht jemand eine andere Lösung?

Bin für jeden Ratschlag dankbar!

Ich würde es ehrlich gesagt eher mit einem Modul lösen als so - die append Funktion gibt es anscheinend in dieser Smarty Version nicht.

Hallo kritop,

das ist eine sehr gute Frage. In der Datei /core/smarty/Smarty.class.php ist die Funktion (zumindest bei mir) deklariert. Bei mir funktioniert es aber auch nicht (OXID CE 4.7.x)…
Ob das nun ein Bug ist kann ich nicht sagen, denn die Funktion die ich da gefunden habe, sollte eigentlich nur im PHP verwendet werden.

In der Doku von Smarty steht auch der berechtigte Hinweis:

Assignment of variables in-template is essentially placing application logic into the presentation that may be better handled in PHP. Use at your own discretion.

Capture append funktioniert
Aber ich würde es auch eher in PHP machen.

Danke für die Tipps, ja ich schick die Attribute jetzt per Funktion ans Modul und löse es dort!

@leofonic wie wäre da denn die Syntax?

und gibt es irgendwo eine Übersicht welche Smarty Funktionen in OXID implementiert sind damit man nicht immer erst nen Fehler bei sich sucht?

{capture append="foo"}hello{/capture}I say just {capture append="foo"}world{/capture}
{foreach $foo as $text}{$text} {/foreach}

The above example will output:
I say just hello world
http://www.smarty.net/docs/en/language.function.capture.tpl

@leofonic: Er möchte mit seinem “append” aber (glaube ich) was vollkommen anderes bewirken, nämlich einen Wert an ein Array “appenden”: http://www.smarty.net/docs/en/language.function.append.tpl

Macht wahrscheinlich so etwas wie die PHP-Funktion “array_push()”…

Genau das macht capture append doch.

[QUOTE=leofonic;122538]Genau das macht capture append doch.[/QUOTE]

Tatsache! :eek: Sorry, hast Recht! :wink: