Smarty-Plugin: Modifier für einfache Fallunterscheidung

Die Übergabe von Werten an includes in Smarty ist manchmal eher unflexibel: Wenn zum Beispiel von Bedingungen abhängt, welcher Wert übergeben werden soll, muss man dies außerhalb des includes erledigen. Ein Beispiel: An ein per include eingebundenes ...

Ziel: Kompaktere Schreibweise

Das Ziel ist es, den im ersten Schritt vorgestellten Code klar zu verkürzen. Statt   {if $qty_messages==1}     {assign value=1 neue Nachricht" var="text"} {else}     {assign value="`$qty_messages` neue Nachrichten" var="text"} {/if} {include file="st ...

Lösung: Modifier auf die Bedingung anwenden

Schauen wir uns an, was genau im folgenden Code-Abschnitt passiert:   "`$qty_messages`==1"|if_else:"1 neue Nachricht":"`$qty_messages` neue Nachrichten"   Im String "`$qty_messages`==1" wird durch den Backtick Operator der Inhalt der Variable $qty_me ...

Quellcode des Plugins

Der Quellcode für das Plugin if_else lautet:   function smarty_modifier_if_else($condition, $option_1, $option_2) {     return eval("return $condition;") ? $option_1 : $option_2; }   Hier wird die einfache entweder-oder Abfrage von PHP verwendet. Die ...

Plugin in Smarty einbinden

Um in Smarty verfügbar zu sein, muss die Funktion nun nur noch in einer Datei "modifier.if_else.php" abgespeichert werden. (Der Name der Datei folgt der Smarty Namenskonvention für eigene Plugins.) Die Datei wird einfach in den Ordner "plugins" unter ...

Weitere interessante Anleitungen
5 sinnvolle Erweiterungen für Firefox 3 von Koelly
Firefox ist ein kostenloser OpenSource Browser den es für viele Plattformen (Windows, Linux, ...
Über diese Anleitung
Diese Anleitung bewerten:
1 Bewertung, insg. 5 Punkte
Hendrik Sende mir eine private Nachricht
Mitglied seit: 07.08.2008
Anleitungen: 7
Kommentare: 11

Sie sind jetzt Fan von Hendrik

Views: 2054    Erstellt am: 14.11.2008
Kategorien: Computer & Elektronik
Kommentare zur Anleitung: 1
Mitmachen & gewinnen!
Balkon & Terrassen Wettbewerb Balkon & Terrassen Wettbewerb

Nimm jetzt an unserem Balkon Wettbewerb teil: Egal welche Anleitung, oder Idee du rund um den Balkon oder Terrasse hast, wir wollen sie sehen! ... mehr erfahren

Teilahme bis: 23.07.2012 Aktuelle Teilnehmerzahl: 2
Themenspecial des Monats
Luft-Entfeuchter Perfektes Raumklima - Luft-Entfeuchter Special!

Brauchbare Tipps, leichte Anleitungen sowie viele Anregungen finden Sie im Luft-Entfeuchter Special

Weitere Infos...
Kostenloser Newsletter
Kostenlosen Newsletter abonnieren
Letzte Besucher
Intro (gesamt: 4 Schritte)
Alle
Schritte
  • 1. Schritt
  • 2. Schritt
  • 3. Schritt
  • 4. Schritt

Anleitung an einen Freund senden

Bitte alle Pflichtfelder ausfüllen
Die Email wurde verschickt
Senden an *
Name *
Von *
Betreff
* Pflichtfelder

Smarty-Plugin: Modifier für einfache Fallunterscheidung

Intro

Die Übergabe von Werten an includes in Smarty ist manchmal eher unflexibel: Wenn zum Beispiel von Bedingungen abhängt, welcher Wert übergeben werden soll, muss man dies außerhalb des includes erledigen.

Ein Beispiel: An ein per include eingebundenes Template soll der Text "1 neue Nachricht" - bzw. "2 neue Nachrichten" - übergeben werden. Die Anzahl der Nachrichten ist in einer Variable $qty_messages enthalten. Von der Anzahl hängt ab, ob der Singular "Nachricht" oder der Plural "Nachrichten" verwendet werden soll.

Dies läßt sich - eher umständlich - so lösen:

 

{if $qty_messages==1}

    {assign value=1 neue Nachricht" var="text"}

{else}

    {assign value="`$qty_messages` neue Nachrichten" var="text"}

{/if}

{include file="status_bar.tpl" text=$text}

 

Einfacher geht es mit einem Plugin, welches ich in den nächsten Schritten vorstelle.

Melden Sie sich kostenlos an, um diese Werbung dauerhaft auszublenden.

Smarty-Plugin: Modifier für einfache Fallunterscheidung


Schritt 1: Ziel: Kompaktere Schreibweise

Das Ziel ist es, den im ersten Schritt vorgestellten Code klar zu verkürzen. Statt

 

{if $qty_messages==1}

    {assign value=1 neue Nachricht" var="text"}

{else}

    {assign value="`$qty_messages` neue Nachrichten" var="text"}

{/if}

{include file="status_bar.tpl" text=$text}

 

wollen wir folgendes verwenden können:

 

{include file="status_bar.tpl" text="`$qty_messages`==1"|if_else:"1 neue Nachricht":"`$qty_messages` neue Nachrichten"}

 

Wie das geht, erkläre ich im nächsten Schritt.

Smarty-Plugin: Modifier für einfache Fallunterscheidung


Schritt 2: Lösung: Modifier auf die Bedingung anwenden

Schauen wir uns an, was genau im folgenden Code-Abschnitt passiert:

 

"`$qty_messages`==1"|if_else:"1 neue Nachricht":"`$qty_messages` neue Nachrichten"

 

Im String "`$qty_messages`==1" wird durch den Backtick Operator der Inhalt der Variable $qty_messages eingefügt. Der String enthält damit die Bedingung.

Auf diesen String wird der Modifer if_else angewandt. Diesem werden als Parameter die beiden Textalternativen übergeben.

if_else ist ein selbstgeschriebener Modifier. Den Quellcode dafür stelle ich im nächsten Schritt vor.

Smarty-Plugin: Modifier für einfache Fallunterscheidung


Intro

Kosten: gering hoch

Schwierigkeit: gering hoch


Benötigte Materialien: Kenntnisse in PHP und Smarty
1 Kommentar
Schreiben auch Sie einen Kommentar zu dieser Anleitung
 

von Compu_Freak, am 25.11.2008 um 16:38 Uhr

Könnte man dies alternativ auch über die Variable Jsn STRNG lösen?