Здравствуйте! Подскажите, пожалуйста, новичку в CS-Cart.
Изучаю применение хуков, задача - перехватить вывод движка (весь html код ответа сервера) и добавит к нему свою обертку.
Смотрю сюда:
- файл: fn.control.php
- код:
> $template = Tygh::$app['view']->fetch(Registry::get('runtime.root_template'));
> fn_set_hook('dispatch_before_send_response', $status, $area, $controller, $mode, $action);
> echo $template;
> exit; // stop execution
- вопрос: как я могу модифицировать содержимое переменной $template перед её выводом? в хук эти данные не передаются.
Или мою задачу следует решать другим способом?
Заранее спасибо за помощь откликнувшимся! :)
Здравствуйте! Подскажите, пожалуйста, новичку в CS-Cart.
Изучаю применение хуков, задача - перехватить вывод движка (весь html код ответа сервера) и добавит к нему свою обертку.
Смотрю сюда:
- файл: fn.control.php
- код:
> $template = Tygh::$app['view']->fetch(Registry::get('runtime.root_template'));
> fn_set_hook('dispatch_before_send_response', $status, $area, $controller, $mode, $action);
> echo $template;
> exit; // stop execution
- вопрос: как я могу модифицировать содержимое переменной $template перед её выводом? в хук эти данные не передаются.
Или мою задачу следует решать другим способом?
Заранее спасибо за помощь откликнувшимся! :)
Да, этот хук вам не поможет. Какого рода обертка должна быть? Возможно, получится через хук в шаблонах подключиться
Да, этот хук вам не поможет. Какого рода обертка должна быть? Возможно, получится через хук в шаблонах подключиться
Динамическая замена контента. Для примера:
> $template = srt_replace('
', '
', $template); // быстрая правка ошибки валидности на всех страницах сайта
>if (condition) $template = srt_replace('старый номер телефона', 'новый номер телефона', $template); // своя система колтрекинга
> $template = preg_replace('~a href="(.*)"~', 'a href="http://$_SERVER['SERVER_NAME']$1', $template); // сделать все ссылки с указанием домена
Наверное, необходимую логику можно и на Smarty реализовать, но для php уже есть готовый код обертки, который только нужно применить к буферу вывода.
Если это возможно, был бы благодарен за подсказку, как это сделать!
Динамическая замена контента. Для примера:
> $template = srt_replace('
', '
', $template); // быстрая правка ошибки валидности на всех страницах сайта
>if (condition) $template = srt_replace('старый номер телефона', 'новый номер телефона', $template); // своя система колтрекинга
> $template = preg_replace('~a href="(.*)"~', 'a href="http://$_SERVER['SERVER_NAME']$1', $template); // сделать все ссылки с указанием домена
Наверное, необходимую логику можно и на Smarty реализовать, но для php уже есть готовый код обертки, который только нужно применить к буферу вывода.
Если это возможно, был бы благодарен за подсказку, как это сделать!
Боюсь, что простого пути получить весь контент нет. Попробуйте использовать хук render_block_post в файле app/Tygh/BlockManager/RenderManager.php, работая с переменной block_content
Большое спасибо, получилось.