Есть исходный код приложения, который крайне нежелательно трогать.
Мне нужно, используя новый модуль, с помощью события изменять текст внутри шаблонов. Например, по всему сайту есть фраза "Старый текст", которую мне нужно заменять на "Новый текст".
Я создала новый модуль. Предположительно, с помощью обработчика события EVENT_BEFORE_RENDER осуществить замену в шаблоне.
Я предполагаю так, что мне нужно подцепить с помощью события момент, когда рендерится шаблон, а потом уже из своего модуля прописать функцию замены необходимой мне строки.
Я до конца не могу понять, как прописывать события. Нашла функцию в контроллере, которая рендерит один из нужных мне шаблонов, но что делать дальше понять не могу.
Заранее спасибо за помощь!
В контроллере своего модуля написала функцию, которую нужно выполнить
public static function rename($event) {
$new = str_replace("Какой-то текст", "Тестирование события", $event->output);
$event -> output = $new;
}
В идеале нужно сделать так, чтобы вообще не трогать контроллер основного сайта. Есть какой-то способ из контроллера моего модуля подцепить момент, когда нужно вызывать событие? То есть в контроллере моего модуля подцепить функцию контроллера основного сайта и привязать к ней обработчик события.
Дмитрий, конкретный случай был взят для примера, чтобы понять механизм. Я имею дело с сайтом, который поставляет другая организация. Мне нужно дорабатывать некоторые моменты, но не затрагивая исходный код. Иначе все мои доработки пойдут коту под хвост со следующим обновлением. То есть дорабатывать нужно модульно, но при этом я делаю не что-то новое, а изменяю существующее. Изменение шаблона - ситуация взятая для примера.
Дмитрий, я создаю новый модуль, чтобы из него влиять на работу основного сайта, так как исходный код трогать крайне нежелательно, но есть необходимость его дорабатывать.