Перехват Вывода Содержимого В Хуке

Здравствуйте! Подскажите, пожалуйста, новичку в 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

Большое спасибо, получилось.

Рад был помочь