PHx-Modifier: inlist und notinlist

von Thomas Jakobi am Mittwoch, 16. Juli 2008 um 16:09 Uhr. Kommentare (0)

PHx ist eine sehr mächtige Erweiterung für MODx. Mit diesem Plugin lassen sich Platzhalter, Template-Variablen und auch Snippet-Ausgaben mittels einer einfachen Syntax verändern, mit einem Wert vergleichen etc. Eigene PHx-Modifier können sehr einfach in PHP hinzugefügt werden.

So lässt sich mit folgenden beiden Modifiern überprüfen, ob der Inhalt eines Platzhalters in einer kommaseparierten Liste vorkommt oder nicht.

Voraussetzungen

Folgende Plugins/Snippets müssen installiert und funktionsfähig sein:

PHx

Es werden zwei Dateien im Verzeichnis assets/plugins/phx/modifiers angelegt und mit folgendem Inhalt bestückt:

inlist.phx.php
<?php
/*
 * description: compares input with the members of a comma separated list
 * usage: [+string:inlist=`text1,text2`:then=`contained`+]
 */
$list = explode(",", $options);
$condition[] = intval(in_array($output, $list));
return;
?>
notinlist.phx.php
<?php
/*
 * description: compares input with the members of a comma separated list
 * usage: [+string:notinlist=`text1,text2`:then=`not contained`+]
 */
$list = explode(",", $options);
$condition[] = intval(!in_array($output, $list));
return;
?>

 

Nun lässt sich mit

[+string:inlist=`text1,text2`:then=`Enthalten!`+]

überprüfen, ob der Inhalt des Platzhalters 'string' in der Kommaseparierten Liste 'text1,text2' enthalten ist. Da die Liste im Modifier-Parameter auch durch ein Snippet (z.B. mit einem passenden Template durch Ditto) generiert werden kann, muss sie noch nicht einmal statisch sein.

Viel Erfolg

 


Speichern auf digg Speichern auf slashdot Speichern auf del.icio.us Speichern auf technorati Save to furl Speichern auf Google Speichern auf Yahoo Speichern auf Mister Wong

Kommentar schreiben

  • Benötigte Felder sind mit einem Stern (*) markiert.
Sollte der Sicherheitscode unleserlich sein, kann durch einen Klick auf das Bild ein neuer Sicherheitscode erzeugt werden.

Sicherheitscode: