Fenom не работает с некоторыми сниппетами?
Не могу понять, почему феном отказывается работать с некоторыми сниппетами наотрез.
Я столкнулся пока что с двумя нерабочими сниппетами, это BabelLinks для переключения языков и Personalize для вывода информации нужным группам.
BabelLinks
Бывший вызов
Для проверки сделал чанк tpl.babelLink.new простейшим, чтобы чисто вывести теги:
Personalize
Тут точно такая же история, один в один. Работает только если вызвать сниппет через MODX, а чанк через Fenom.
Но переписав на Fenom, пришлось убрать это в чанк yes, т.к. "@CODE:" (аналог @INLINE) не работал.
Как можно решить эту проблему? Оба сниппета мне нужны. И оба хочу переписать полностью на Fenom.
Может есть другой вариант сниппета? Или нужно будет копаться в коде сниппетов и переписать их?
Я столкнулся пока что с двумя нерабочими сниппетами, это BabelLinks для переключения языков и Personalize для вывода информации нужным группам.
BabelLinks
Бывший вызов
<ul class="lang">
[[!BabelLinks?
&tpl =`tpl.babelLink.new`
&showCurrent = `1`
&ignoreSiteStatus = `1`
]]
</ul>переделан на <ul class="lang">
{$_modx->runSnippet('!BabelLinks', [
'tpl' => 'tpl.babelLink.new',
'showCurrent' => 1,
'ignoreSiteStatus' => 1,
])}
</ul>где чанк tpl.babelLink.new переделан под свои нужды. Первый вариант рабочий, второй нет. Для проверки сделал чанк tpl.babelLink.new простейшим, чтобы чисто вывести теги:
{$url} - {$_modx->getPlaceholder('url')} - {$_pls['url']} // все 3 варианта выводят одно и то жеТак вот сниппет через MODX выводит правильные урлы, а через Fenom выводит пустоту.Personalize
Тут точно такая же история, один в один. Работает только если вызвать сниппет через MODX, а чанк через Fenom.
[[!Personalize?
&yesChunk=`yes`
&allowedGroups=`Administrator`
]]Раньше у меня было &yesChunk=`@CODE: код чанка`. Как можно решить эту проблему? Оба сниппета мне нужны. И оба хочу переписать полностью на Fenom.
Может есть другой вариант сниппета? Или нужно будет копаться в коде сниппетов и переписать их?
Комментарии: 41
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Думаю, заморочки в самих сниппетах. Возможно, они рассчитывают на рекурсивный парсер или что-то такое.
Не вижу проблем, в общем =)
А у меня весь сайт повязан жёстко на Babel и у каждого языка свои uri, в завсимости от языка (транслит на русском, а на других уже латиница, типа «o-nas.html» и «about-us.html»)…
Но ещё мне нужно выводить чётко по группам. Есть групп 6 пользователей, каждой из которых нужно выводить своё…
Постараюсь завтра сделать.
А можно пример использования?
А getPlaceholders возвращает массив со всеми текущими плейсхолдерами. Просто для коллекции, мало ли.
Fi1osofНа практике это доставляет не мало хлопот. Потому лучше написать свой небольшой запрос на проверку присутствия в группе, кешируемую, и при изменении прав просто сброс кеша актуализирует информацию.
Fi1osofЯ думаю, что можно использовать и isMember в некоторых ситуациях, особенно тогда, когда не планируется частая смена групп — допустим только пару менеджеров. Тогда isMember будет быстрее.
А уже в случае когда нужно более плотно работать с группами и перемещением в них пользователей, тогда да, лучше прямо в базу.
Спасибо за этот ньюанс!
Fi1osofFi1osofFi1osofЕще раз: нравится использовать isMember — используйте. У вас ведь, видимо, как минимум пятилетний опыт с MODX и вы уже все возможные шишки набили.
Вызов сниппета в голове документа:
Чанк шаблона для вывода результата:
Результат вывода:
Получилось что-то похожее:
Либо в сниппете подключите сервис pdotools и всю обработку чанков производите через него.
И все, теперь сниппет поддерживает fenom
Подскажите, пожалуйста, как исправить?