Zusammengesetzte Variablen in Smarty

Die Ausgangslage: Ich habe ein Produkt, dem in der Datenbank eine Statusvariable zugewiesen wird (0=normal, 1=abgelaufen, 2=ausverkauft, usw). Beim Ansehen des Produkts möchte ich jetzt den entsprechenden Text ausgeben über den Status des Produkts. Da meine Seite mehrsprachig ist, sind meine Texte alle in einem großen $trans Array gespeichert. Heißt, wenn ich den jeweiligen Status ausgeben will, muss ich

{if $product.status == 0} 
  {$trans.statusmeldung0}
{elseif $product.status == 1} 
  {$trans.statusmeldung1} 
{elseif $product.status == 2}
  {$trans.statusmeldung2}
{elseif $product.status == 3}
  {$trans.statusmeldung3}
{/if}

schreiben. Da noch nicht feststeht, ob nicht weitere Zustände für den Status hinzukommen, hab ich mir in den Kopf gesetzt, das mit zusammengesetzten Variablen zu machen. Und siehe da, im Gegensatz zu Typo3 und seiner stinkenden Community wurde ich binnen kürzester Zeit fündig und gebe meine Statusmeldung jetzt so aus:

{assign var=thestatus value="statusmeldung%s"|sprintf:$product.status}
{$trans.$thestatus}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.