Василий Наумкин

Василий Наумкин

Был в сети 10 июня 2026, 17:44
Заказы не принимаю
Сделать поддержку default_text просили уже давно, о чём говорит самый первый комментарий.

А твой комментарий просто заставил меня уже этим заняться, раз начали писать свои решения. Код отличается, и на мой взгляд серьёзно:

Ты сначала присоединяешь все ТВ к ресурсу, а потом уже фильтруешь по id и имени. Мне кажется, что мой вариант быстрее, ибо присоединяются только нужные ТВ.

Твоё негодование мне непонятно. Никто тебя ни о чём не просил, ничего не обещал и ничего у тебя не брал. Ты сам решил проблему, поделился своим решением и подопнул меня заняться этим вопросом. Я решил его самостоятельно и включил свой вариант в основной код.

Казалось бы, все должны быть рады, но нет, нужно прибежать с разоблачениями.
Извини, но твоего кода в mSearch2 нет, можешь сравнить:

На написание правильного присоединения таблиц, чтобы это нормально работало при больших объёмах, ушло более 3х секунд.

А твой комментарий я убрал просто потому, что он не нужен.
Парсер MODX работает в цикле до 10 раз, чтобы разобрать все плейсхолдеры. То есть:
1. Видим [[+totalMy]], значения нет
2. Видим [[!getTickets]], запускаем, он выставляет значение
3. Проверяем, что у нас осталось необработанного
4. Запускаемся еще раз и вот теперь только обрабатываем [[+totalMy]]
5. Ой, а чего это у меня так всё тормозит?

Fenom работает один раз и позволяет сохранять работу сниппетов в переменные:
{set $tickets = $_modx->runSnippet('!getTickets', [
    'parents' => 0,
    'totalVar' => 'totalMy',
])}

{$_modx->getPlaceholder('totalMy')}

{$tickets}