Дайте вашему модулю файл макета:
...
<frontend>
<layout>
<updates>
<YOUR_MODULE>
<file>YOURMODULE.xml</file>
</YOUR_MODULE>
</updates>
</layout>
</frontend>
...
В файле layout/YOURMODULE.xml
базовой темы:
<layout version="1.0">
<catalog_product_view>
<reference name="product.info">
<action method="setTemplate"><name>YOURMODULE/product/view.phtml</name></action>
</reference>
</catalog_product_view>
</layout>
Скопируйте измененный view.phtml
в новый каталог, template/YOURMODULE/product/
- При упаковке вашего модуля не забудьте включить все эти файлы, но не перезаписывайте
template/catalog/product/view.phtml
.
Любой, кто загружает ваш модуль, может захотеть внести свои изменения в этот шаблон, поэтому вы должны также включить инструкции, какой файл был изменен и где его найти. Так как view.phtml
часто изменяется как themers, так и другими модулями, было бы намного лучше заменить один из дочерних шаблонов - который зависит от того, где будет находиться ваша кнопка.
В качестве бонуса есть блок под названием extrahint
сразу после цены типа core/text_list
- у него нет шаблона, поэтому вы можете пропустить его при использовании подсказок пути шаблона . Вы можете безопасно добавлять в нее столько шаблонов, сколько захотите, без изменения существующих:
<layout version="1.0">
<catalog_product_view>
<reference name="product.info.extrahint">
<block type="core/template" name="YOUR.CUSTOM.BLOCK" template="YOUR/CUSTOM/TEMPLATE.phtml" />
</reference>
</catalog_product_view>
</layout>
Это помогает, только если цена полезна для вас. К другим блокам, которые можно безопасно добавлять, относятся области параметров и контейнеров, но они отображаются только для продуктов с параметрами.