PHx-Modifier: inlist und notinlist
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:
Es werden zwei Dateien im Verzeichnis assets/plugins/phx/modifiers angelegt und mit folgendem Inhalt bestückt:
<?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;
<?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: