Выход MODx Evolution 1.0.9
Сегодня вышел MODx Evolution 1.0.9.
Основная проблема которую решает данный релиз, это совместимость с php 5.4. Помимо исправления старых багов, добавление новых приколов которые уже давно всем были нужны. Более подробнее об изменениях можно прочитать в changelog. Хочется выделить некоторые из них.
Значительная переработка парсера:
[[SnippetA? ¶m1=`value` //можно оставлять комментарии
¶m2=value ¶m3='value'
¶m4="value" // любые кавычки или без кавычек а не только ``
¶m5=`[[SnippetB]]` // нет конфликтов при вызове сниппета в сниппете
¶m6=`A&B=C?` //используем любые символы в параметрах ]]
Появление бекап менеджера:
Добавлен Сниппет IF :
Сниппет для вывода информации по условию.
Логика работы: Если условие is выполняется, то выводим содержимое параметра then, если не выполняется, то выводим содержимое параметра else.
[[if? &is=`[*id*]:=:4:or:[*parent*]:in:5,6,5,7,8,9` &then=`[[if&is=`0||=||0` &then=`true` &else=`false` &separator=`||`]]` &else=`@TPL:else`]]
[[if? &is=`[*id*]:is:1:or:[*id*]:is:2:and:[*parent*]:is:5:or:[*parent*]:in:2,3,4` &then=`true` &else=`false`]]
//Все выражения обрабатываются по логике (....:or:is:.... ) :and: (...:!empty:.....)
//выражение and делит условие на 2 части, которые в конце в конце сравниваются к true
//Операторы:
// (is,=) , (not,!=) , (>,gt) , (<,lt) , (>=,gte) , (lte,<=) , (isempty,empty) , (not_empty,!empty)
// (null, is_null) , (in_array, inarray, in) , (not_in,!in)
//Выводить акцию только для товаров с ценой в диапазоне >300$ <=700$
[[if? &is=`[*price*]:>:300:and:[*price*]:<=:700` &then=`@TPL:akcia`]]
//Выводить при кратности записи дитто 3
[[if?is=`[+ditto_iteration+]:%:3` &then=`true` &else=`false`]]
В ближайших планах у разработчиков версия 1.0.10