PHx-Modifier: multi_and und multi_or
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 lassen sich mit folgenden beiden Modifiern alle Werte in einer kommaseparierten Liste mit einem Boolschen OR oder AND miteinander verknüpfen.
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: the values in a comma separated list are joined by a boolean OR * usage: [+phx:multi_or=`[+value1+],[+value2+]`:then=`one is true`+] */ $options = explode(',', $options); $ok = '0'; foreach ($options as $option) { if ($option) { $ok = '1'; } } $condition [] = $ok; return;
<?php /* * description: the values in a comma separated list are joined by a boolean AND * usage: [+phx:multi_and=`[+value1+],[+value2+]`:then=`one is true`+] */ $options = explode(',', $options); $ok = '1'; if (count($options) == 0) { $ok = '0'; } foreach ($options as $option) { if (!$option) { $ok = '0'; } } $condition [] = $ok; return;
Danke an Stefan und Bruno aus dem MODx-Forum für die Anregung zu dem Modifier.
Nun lässt sich z.B. mit
[[+phx:multi_or=`[[+value1]],[[+value2]]`:then=`Ein Platzhalter ist wahr`]]
überprüfen, ob ein Wert in der kommaseparierten Liste wahr ist.
Viel Erfolg
Bislang habe ich folgende PHx Modifier veröffentlicht: