Павел Романов

Павел Романов

Был в сети 30 июля 2026, 15:23
Заказы принимаю
А Вам нужно, чтобы был редирект?
Тогда добавьте соответствующий хук и параметр с указанием куда редиректить:
[[!FormIt?
&hooks=`email,FormItSaveForm,redirect`
&redirectTo=`***`
...
]]

А чтобы заработало сообщение без редиректа, плейсхолдер должен быть некешируемым:
[[!+fi.successMessage]]
Смотрите лог не pdoResources, а лог MODX (...../core/cache/logs/error.log).
Там будет что-нибудь типа:
[2016-07-24 23:23:54] (ERROR @ .........../core/components/pdotools/model/pdotools/pdotools.class.php : 940) 
Unexpected tag '******' in a0c869550ea492457a960cab7e3b434a line 81, 
near '{******' <- there

Найдите этот самый {****** и просто добавьте пробел после первой фигурной скобки.
Парсер MODX работает таким образом, что сначала рендерит чанки, TV, сниппеты, в общем, всё, что есть на странице, а только потом выполняет условия и оставляет нужное.
Соответственно, если Вы делаете так:
[[*tv:!empty=`[[$chunk]]`]]
то MODX сначала выполнит все, что в чанке, а только потом решит выводить его на страницу или нет.
В любом случае ресурсы уже потрачены. А если таких условий в шаблоне несколько. то тромоза все более и более ощутимы.

Если же сделать так:
[[$[[*tv:!empty=`chunk`]]]]
то MODX отрендерит просто текст «chunk» и потом, если условие выполнено, оставит его, а тут уже получится тег, который обработается:
[[$chunk]]

В случае невыполнения условия выведется просто
[[$]]

Fenom же работает по-другому. Он изначально рендерит только то, что соответствует условию.
В Вашем случае будет так:
{if $_modx->resource.tags != ''}
    {$_modx->runSnippet('pdoResources', [
    'parents' => 2,
    'limit' => 5,
    'tpl' => 'tplArticleSim'
    ])}
{/if}

Ну или так, если угодно:
{if $_modx->resource.tags != ''}
    {$_modx->getChunk('similarArticles')}
{/if}

Или вообще так ):
{if $_modx->resource.tags != ''}
    [[pdoResources?
    &parents=`2`
    &limit=`5`
    &tpl=`tplArticleSim`
    ]]
{/if}
В этом случае у Вас вызов будет работать даже при отсутствии тегов (MODX сделает выборку, а потом только выполнит условие).
Действительно, лучше Fenom или на худой конец так:
[[$[[*tags:!empty=`similarArticles`]]]]

И кстати, в Вашем случае можете кешировать вызов pdoResources в чанке.
Проверил на нескольких сайтах и хостингах.
Действительно где-то работает нормально, где-то нет. Связано с тем, что чтение из базы в 53 строке не везде отдает дату в UNIX-формате.
В качестве костыля попробуйте заменить эту строку:
$lmimsDate = $lmims->get('date');
на эту:
$lmimsDate = strtotime($lmims->get('date'));
У Вас уже эта дата прописалась в таблицу плагина.
Откройте эту страницу в браузере и проверьте потом ответ сервера.

А лучше всего просто через phpMyAdmin очистить все записи в таблице modx_lmims и потом уже они сами туда добавятся по мере открывания страниц сайта.