PHx-Modifier: inlist und notinlist

von Thomas Jakobi am Mittwoch, 16. Juli 2008 um 14:09 Uhr.

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

 

Bislang habe ich folgende PHx Modifier veröffentlicht: