Во избежание перезаписи основных файлов и нарушения совместимости обновлений, я перегружал контроллер, как описано здесь: Учебник. Перегрузка контроллера
<frontend>
<routers>
<contacts>
<args>
<modules>
<My_Module_Contacts before="Mage_Contacts">My_Module_Contacts</My_Module_Contacts>
</modules>
</args>
</contacts>
</routers>
</frontend>
И переписали $this->_redirect('*/*/')
на $this->_redirectReferer('contacts/index')
, чтобы вы были перенаправлены на предыдущую страницу, и, если ни один реферер не был установлен, на / contacts / index как запасной вариант.
Также я изменил form.phtml с
<div id="messages_product_view">
<?php echo $this->getMessagesBlock()->getGroupedHtml(); ?>
</div>
до
<div id="messages_product_view">
<?php Mage::app()->getLayout()->getMessagesBlock()->setMessages(Mage::getSingleton('customer/session')->getMessages(true)); ?>
<?php echo $this->getMessagesBlock()->getGroupedHtml(); ?>
</div>
для отображения сообщений об ошибках.