Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #3
Сергей Шлоков
17 апреля 2020, 10:46
+2
Опытный разработчик найдёт много вариантов. Вот первые три
1. Использовать фильтр для тега link с заменой «glavnaja» на /. Только предварительно почитав документацию по инлайн чанкам.
2. Использовать отдельный шаблон для первой страницы
[[pdoResources?
    &useWebLink=`1`
    &resources=`-1`
    &tplFirst=`@INLINE <a href="/">1</a>`
    &tpl=`@INLINE <a href="[[+link]]">[[+id]]</a>`
]]
3. Почти тоже самое
<a href="/">1</a>
[[pdoResources?
    &useWebLink=`1`
    &resources=`-1`
    &tpl=`@INLINE <a href="[[+link]]">[[+id]]</a>`
]]
Сергей Шлоков
14 апреля 2020, 07:17
0
Расширить класс pdoFetch, исправить как нужно (заменить | на какой-нибудь неиспользуемый символ, например, #), указать в системной настройке новый класс.
Сергей Шлоков
12 апреля 2020, 08:45
0
Вполне возможен ещё один вариант. В админке у тикетов отключить Jevix, а в нужных шаблонах добавить вывод контента через сниппет Jevix. В этом случае тег [[~88]] должен распарситься до обработки Jevix и всё отработает как положено. Чисто в теории.
В этом случае, кстати, ты можешь динамически управлять поведением Jevix через параметры сниппета, в отличие от наборов параметров.
Сергей Шлоков
12 апреля 2020, 08:28
+2
Небольшое уточнение. Согласно документации коду достаточно написать так
"a":{"title":"#text","href":"#text"}
Ибо по-умолчанию атрибуту href присваивается тип #link. А при указании в атрибуте тега MODX, он фильтрацию не проходит и тег a вырезается. Поэтому нужно указать другой тип. А чтобы foreach не сломался, нужно указать типы для всех атрибутов. Иначе выпадает ошибка, о которой ты писал выше.

Самое интересное, что ты можешь указать практически любое значение
"a":{"title":"#text","href":"#modx"}
"a":{"title":"#text","href":"#fuck"}
В этом случае Jevix не найдёт соответствующего фильтра и оставит значение без обработки. В случае же с типом #text, значение прогонится через функцию htmlspecialchars().

П.С. Вообще, у Jevix самый большой минус — это отсутствие документации. Не программисту разобраться тяжело.
Сергей Шлоков
11 апреля 2020, 13:30
0
Делаешь свой парсер по аналогии с pdoParser.
Сергей Шлоков
11 апреля 2020, 12:43
0
Всё зависит от задачи. Подключить на один сайт или сделать пакет? Оставить принцип парсера MODX (как в случае с Fenom) или сделать ближе к фреймворкам?
Сергей Шлоков
10 апреля 2020, 22:14
0
Думаю, ты найдешь куда потратить это «спасибо». Мне хватит благодарности. :) Редкое по нынешним временам явление.
Сергей Шлоков
10 апреля 2020, 20:51
0
Забавный баг. Остальные теги MODX нормально работают.

Тикеты сейчас поддерживает не Василий, а чел из этого сообщества. Попробуй обратиться к нему. У меня с ним контакта не получилось.
Сергей Шлоков
10 апреля 2020, 20:05
0
Честно, не знаю. Проверил у себя — всё норм. Где-то у тебя накосячено возможно.
Сергей Шлоков
10 апреля 2020, 19:56
0
"a":{"title","href"}
А что, href вырезается даже если указать готовую ссылку?
Сергей Шлоков
10 апреля 2020, 19:41
0
Насколько я знаю, вроде не должен резать. Может как-то параметр cfgSetAutoLinkMode влияет?
Сергей Шлоков
10 апреля 2020, 17:03
0
Олá. А ты уверен, что это Jevix вырезает? Отключал его?
Сергей Шлоков
08 апреля 2020, 08:17
+5
Ну уж тогда так
— cssToHead — регистрация CSS кода в шапке страницы
— htmlToHead — регистрация произвольного HTML в шапке страницы
— htmlToBottom — регистрация произвольного HTML в подвале страницы
— jsToHead — регистрация javascript файла в шапке страницы. Если передать параметром true, то можно регистрировать сразу код.
— jsToBottom — регистрация javascript в подвале страницы. Если передать параметром true, то можно регистрировать сразу код.

{'<script>alert();</script>' | jsToBottom: true} // При загрузке страницы будет javascript alert
Сергей Шлоков
08 апреля 2020, 06:37
1
+3
Анонимные функции. Внимание на пример 3.
Сергей Шлоков
05 апреля 2020, 20:40
+2
Ну а как Павел выше писал не работает?
{'!AjaxForm' | snippet : [
   ...
   'emailFromName' => '[[+name]]',
   ...
}
Сергей Шлоков
05 апреля 2020, 19:56
0
А разве хуки не стандартное средство?
Кроме того, какая-то странная задача — динамически менять имя отправителя?
Сергей Шлоков
05 апреля 2020, 18:44
0
Разве можно в параметры сниппета подставлять данные из формы? Они обрабатываются при просмотре страницы и сохраняются то ли в кэше, то ли в сессии. Т.е. повлиять на них уже нельзя. Наверно, только свой хук писать.
Сергей Шлоков
05 апреля 2020, 15:25
+1
Может здесь собака порылась?
Конечно здесь. Память уже подводить стала :(
Метод modX::getChunk() работает только с кэшированными плейсхолдерами. Оно и понятно. Ибо смысла делить их на кэшированные и некэшированные нет в отличие от ресурса или шаблона.

Читатели моего блога знают, что в случае обработки кэшированных плейсхолдеров Fenom не запускается. (Так как я давно уже MODX активно не занимаюсь, начал подзабывать такие тонкости.) Как я уже не однократно говорил, в MODX ни один шаблонизатор не будет работать нормально, так как отличаются концепции парсинга.
Сергей Шлоков
05 апреля 2020, 15:14
0
Учим матчасть. Самый простой способ — изучать код. Для начала смотрим Chunk::process().