Magento использует объект ответа для отправки всего вывода.
Весь вывод добавляется к этому объекту, а затем вызывается его метод sendResponse
.
Если вы хотите изменить вывод, настройте прослушиватель для события http_response_send_before
<!-- in your module's config.xml -->
<http_response_send_before>
<observers>
<unique_name>
<type>singleton</type>
<class>group/observer</class>
<method>alterOutput</method>
</unique_name>
</observers>
</http_response_send_before>
И тогда в вашем обозревателе вы можете получить и установить тело
class Packagename_Modulename_Model_Observer
{
public function alterOutput($observer)
{
$response = $observer->getResponse();
$html = $response->getBody();
//modify html here
$response->setBody($html);
}
}
Если вам интересно, это событие вызывается в методе sendResponse
следующего класса
app/code/core/Mage/Core/Controller/Response/Http.php
, а сам вывод отправляется в методах sendResponse
и outputBody
lib/Zend/Controller/Response/Abstract.php