Собственно, сабж. Можно ли получить html страницы в одной строковой переменной и изменить ее.
На первый вопрос ответ точно "Да" - можно повесить обсервер на событие controller_front_send_response_before и получить код страницы как $observer->getEvent()->getFront()->getResponse(). Но метода setResponse у этого объекта нет, поэтому внесенные изменения сохранить не получится. Есть еще варианты?
Можно ли программно изменить html-код страницы перед ее выводом в браузер?
30.07.2012 18:12
Метод getResponse() возвращает объект класса Zend_Controller_Response_Http, у которого имеются методы getBody и setBody.
Метод getBody возвращает тело ответа HTTP, а метод setBody позволяет изменить тело ответа HTTP.
Метод getBody возвращает тело ответа HTTP, а метод setBody позволяет изменить тело ответа HTTP.
30.07.2012 18:41
Спасибо большое, коротко и по делу!
Кстати, еще с той же целью можно повесить обсервер на событие http_response_send_before, оно даже и правильней.
Попутно нашелся еще один способ: можно унаследовать класс Mage_Page_Block_Html и переопределить в нем
Кстати, еще с той же целью можно повесить обсервер на событие http_response_send_before, оно даже и правильней.
Попутно нашелся еще один способ: можно унаследовать класс Mage_Page_Block_Html и переопределить в нем
protected function _toHtml() { $html = parent::_toHtml(); // тут внести свои изменения return $html; }