Tramp1357 18 января 2014 0 1
Добрый день. Мне нужно обработать вывод с помощью Smarty в сниппете, который вызывается из cronmanager. Как это можно сделать?
1 комментарий
Fi1osof1
Fi1osof 18 января 2014г в 15:07 #
Саша, привет!
У тебя скорее всего вызов выполняется через коннектор или урезанный функционал. Проще всего в сниппете тогда вызвать соответствующее событие MODX-а, чтобы плагины сработали. Вот так пропиши:
$modx->switchContext('web');
$modx->invokeEvent('OnHandleRequest');


Должно помочь. Если не поможет, кидай мне в личку данные доступа и сниппет где происходит вызов.
Tramp13571
Tramp1357 18 января 2014г в 15:34 #
Ясно. Про switchContext не знал, но догадался, что дело в контексте. Я решил проблему тем, что просто скопировал код из плагина modxsmarty по событию onHandleRequest. Тоже работает. :)
Fi1osof1
Fi1osof 18 января 2014г в 15:47 #
Тоже работает. :)
Ну, тоже вариант :)
А про контекст все очень просто: в админке OnHandleRequest тоже срабатывает, а там свой инстанс Smarty. Поэтому в плагине прописано условие игнорить mgr. А большинство коннектор- и т.п. запросов выполняются с инициализацией контекста mgr, так что просто вызов события не достаточно.
Tramp13571
Tramp1357 18 января 2014г в 15:58 #
Да, я поэтому так и поступил. Спасибо за помощь.
Fi1osof1
Fi1osof 18 января 2014г в 18:07 #
Не за что
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.