[pdoTools] 2.3.2 - автозагрузка модификаторов
Вот и подоспело очередное, уверен, горячо ожидаемое обновление pdoTools.
На этот раз я придумал, как можно иначе подключать Fenom, что дало возможность реализовать кучу встроенных модификаторов, а там где их не хватит — автозагрузку модификаторов из сниппетов.
Системная настройка pdotools_fenom_modifiers больше не нужна и удаляется при установке обновления. Если указанный модификатор не найден, то работа не останавливается, как раньше, и вы просто получаете ошибку в лог.
Следует учесть, что я реализовал не все фильтры MODX (но очень много), и не все из них работают точно так, как в MODX — поэтому потрудитесь прочитать документацию, прежде чем жаловаться, что у вас там опять что-то не того.
Ссылка на подробнейшую документацию отдельно, чтобы все заметили.
Итак, список всех модификаторов Fenom, чтобы вы могли оценить объём работы:
Отдельно хочу отметить просто замечательный модификатор print, который печатает, экранирует и выводит любую переменную в теге pre.
В общем, это крайне полезно для отладки при разработке сайта.
Обновляемся, пишем отзывы.
На этот раз я придумал, как можно иначе подключать Fenom, что дало возможность реализовать кучу встроенных модификаторов, а там где их не хватит — автозагрузку модификаторов из сниппетов.
Системная настройка pdotools_fenom_modifiers больше не нужна и удаляется при установке обновления. Если указанный модификатор не найден, то работа не останавливается, как раньше, и вы просто получаете ошибку в лог.
Следует учесть, что я реализовал не все фильтры MODX (но очень много), и не все из них работают точно так, как в MODX — поэтому потрудитесь прочитать документацию, прежде чем жаловаться, что у вас там опять что-то не того.
Ссылка на подробнейшую документацию отдельно, чтобы все заметили.
Итак, список всех модификаторов Fenom, чтобы вы могли оценить объём работы:
- upper, up, strtoupper, ucase, uppercase
- lower, low, strtolower, lcase, lowercase
- date_format
- date
- truncate
- escape, e
- unescape
- strip
- length, len, strlen
- iterable
- replace
- ereplace
- match
- ematch
- split
- esplit
- join
- in
- md5
- sha1
- crc32
- urldecode
- urlencode
- rawurldecode
- base64_decode
- base64_encode
- http_build_query
- print_r
- var_dump, dump
- nl2br
- ellipsis
- ucwords
- ucfirst
- htmlentities, htmlent
- limit
- esc, tag
- notags, strip_tags, stripTags, striptags
- stripmodxtags
- cdata
- reverse, strrev
- wordwrap
- wordwrapcut
- fuzzydate
- ismember, memberof, mo
- isloggedin
- isnotloggedin
- url
- lexicon
- user, userinfo
- resource
- setPlaceholder, toPlaceholder
- placeholder, fromPlaceholder
- cssToHead
- htmlToHead
- htmlToBottom
- jsToHead
- jsToBottom
- toJSON, json_encode
- fromJSON, json_decode
- option, setOption
- getOption
Отдельно хочу отметить просто замечательный модификатор print, который печатает, экранирует и выводит любую переменную в теге pre.
{15 | resource | print}
{15 | resource : 'properties' | print}
{10 | user : 'extended' | print}
и вы получаете полностью распечатанный массив ресурса 15, потом его поля properties и extended юзера 10. В общем, это крайне полезно для отладки при разработке сайта.
Обновляемся, пишем отзывы.
Комментарии: 13
Обновился! print — работает))) Теперь pre ручками писать не нужно, спасибо!
paypal понес тебе «Спасибо»!
Уже принёс, спасибо!
Василий, моё восхищение не передать словами!
Я однажды говорил тебе, что не могу уважать тебя из-за того, что ты употребляешь алкоголь, и помимо этого наговорил много других гадостей. Сейчас хочу публично попросить у тебя прощения! Я извиняюсь за те оскорбления, которые тебе высказал, и мне правда стыдно!
Во-истину говорят, что люди в нашей жизни не случайны. Ты, скорее всего сам того не подозревая, многое сделал для того, чтобы я переоценил своё отношение к разным вещам. В частности к отношениям с людьми, у которых несколько иное восприятие жизни, в отличие от меня. Не хорошее, и не плохое, а просто иное. Спасибо тебе за это! Я уважаю тебя, как человека, потому что ты хороший человек!
P.S.: Не этот пост всё поменял для меня, я уже давно вынашивал планы извиниться. Этот пост показался мне хорошим местом, где можно сделать это.
Я однажды говорил тебе, что не могу уважать тебя из-за того, что ты употребляешь алкоголь, и помимо этого наговорил много других гадостей. Сейчас хочу публично попросить у тебя прощения! Я извиняюсь за те оскорбления, которые тебе высказал, и мне правда стыдно!
Во-истину говорят, что люди в нашей жизни не случайны. Ты, скорее всего сам того не подозревая, многое сделал для того, чтобы я переоценил своё отношение к разным вещам. В частности к отношениям с людьми, у которых несколько иное восприятие жизни, в отличие от меня. Не хорошее, и не плохое, а просто иное. Спасибо тебе за это! Я уважаю тебя, как человека, потому что ты хороший человек!
P.S.: Не этот пост всё поменял для меня, я уже давно вынашивал планы извиниться. Этот пост показался мне хорошим местом, где можно сделать это.
Не хорошее, и не плохое, а просто иноеЗолотые слова, на здоровье!
Никаких проблем. Та учётная запись, что оставляла нехорошие комментарии, давно отключена. А это пишет другая, хорошая учётная запись =)
Sorry, промахнулся на смартфоне. Безусловно плюсовал.
Супер.
Вот тут опечатка
Вот тут опечатка
json_encode (fromJSON), json_decode (fromJSON)
Спасибо, поправил.
Нет слов передать всё моё восхищение проделанной работой — это то чего очень не хватало!
Теперь MODX превратился из сказки в утопию… =)
Теперь MODX превратился из сказки в утопию… =)
Василий
Вот что заметил. Помогите понять почему так
У меня на странице есть вызов
[[!FormIt?
&hooks=`subscribe,redirect`
&submitVar=`btnsubscribe`
&redirectTo=`35`]]
Есть сниппет subscribe, который вызывает функцию subscription с определенного класса. В функции происходит обработка введенных данных и отправляется письмо. Текст для письма берется из чанка
$message = $this->modx->getChunk('subcribe', $array);
В чанке subcribe есть следующий код:
{if $_modx->config.cultureKey == 'uk'}
текст на русском языке; {$name}
{else}
текст на английском языке; {$name}
{/if}
И эта вся конструкция работает. В зависимости от того в каком контексте я заполняю форму, такой текст и отправляется.
Но если вызов сниппета FormIt я делаю таким
{$_modx->runSnippet('!FormIt', [
'hooks' => 'subscribe,redirect',
'submitVar' => 'btnsubscribe',
'redirectTo' => 35
])}
То тогда этот синтаксис Fenom уже не срабатывает, {$name} приходится заменять на [[+name]] и чанк разделять на два варианта (рус. и англ.). Вот хочется понять почему так. Объясните, пожалуйста
Вот что заметил. Помогите понять почему так
У меня на странице есть вызов
[[!FormIt?
&hooks=`subscribe,redirect`
&submitVar=`btnsubscribe`
&redirectTo=`35`]]
Есть сниппет subscribe, который вызывает функцию subscription с определенного класса. В функции происходит обработка введенных данных и отправляется письмо. Текст для письма берется из чанка
$message = $this->modx->getChunk('subcribe', $array);
В чанке subcribe есть следующий код:
{if $_modx->config.cultureKey == 'uk'}
текст на русском языке; {$name}
{else}
текст на английском языке; {$name}
{/if}
И эта вся конструкция работает. В зависимости от того в каком контексте я заполняю форму, такой текст и отправляется.
Но если вызов сниппета FormIt я делаю таким
{$_modx->runSnippet('!FormIt', [
'hooks' => 'subscribe,redirect',
'submitVar' => 'btnsubscribe',
'redirectTo' => 35
])}
То тогда этот синтаксис Fenom уже не срабатывает, {$name} приходится заменять на [[+name]] и чанк разделять на два варианта (рус. и англ.). Вот хочется понять почему так. Объясните, пожалуйста
Очень приближенно нужно вместо
$message = $this->modx->getChunk('subcribe', $array);
Написать что-то такое:$pdoTools = $this->modx->getService('pdoTools');
$message = $pdoTools?$pdoTools->getChunk('subcribe', $array):$this->modx->getChunk('subcribe', $array);
спасибо
использую Jevix как модификатор, но по умолчанию он не вырезает переносы строки
к модификатору параметры &cfgSetAutoReplace=`[["±","©","©","®","©","©","®","
"],["±","©","©","®","©","©","®"," "]]`]]" добавить бы .., как бы это попроще сделать?
к модификатору параметры &cfgSetAutoReplace=`[["±","©","©","®","©","©","®","
"],["±","©","©","®","©","©","®"," "]]`]]" добавить бы .., как бы это попроще сделать?
{if $_modx->resource.description?}
{set $articledescription = $_modx->resource.description | jevix}
{else}
{set $articledescription = $_modx->runSnippet('!summary', [
'text' => $_modx->resource.content,
'len' => 150,
])}
<meta property="og:description" lang="{$_modx->config.cultureKey}" content="{$articledescription | jevix}" />
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.