Magento - внедрить пользовательский модуль на странице информации о продукте - PullRequest
0 голосов
/ 04 января 2012

Я искал в Интернете, как добавить «блок» с моим шаблоном на странице продукта.Я создаю свой пользовательский модуль, который отображает некоторую информацию, и я хотел бы показать, что, скажем, под длинным описанием моего продукта.

Я пытался отформатировать XML-макет моего модуля, но безудачи.

После некоторого поиска я нашел это: Программно создайте блоки Magento и вставьте их в макет , что я не могу заставить его работать на меня.Но это, вероятно, потому, что я что-то упустил.

Мой модуль структурирован так:

КОД: app / code / local / deveti / Countrypurchase

ДИЗАЙН: приложение/design/frontend/default/default/template/Countrypurchase/index.phtml

LAYOUT: app / design / frontend / default / default / layout / countrypurchase.xml

Я знаю правильный путьэто редактировать основной файл макета, вручную добавить блок, но я бы хотел сделать это на лету.

РЕДАКТИРОВАТЬ: это работает!

Так что я бы сделал в моем модуле макет XMLcountrypurchase.xml примерно так:

<?xml version="1.0"?>   
<layout version="1.0">
    <catalog_product_view>
        <reference name="product.info">
            <block type="core/template" name="product.countrypurchase" as="countrypurchase" template="countrypurchase/index.phtml" />
        </reference>
    </catalog_product_view>    
</layout>

И я добавил вызов в каталог / product / view.phtml:

<?php echo $this->getChildHtml('countrypurchase'); ?>

И это работает;)

Спасибо за помощь!

1 Ответ

1 голос
/ 05 января 2012

Проблема со страницей представления продукта заключается в том, что ее вывод в основном контролируется кодом PHP в шаблоне catalog/product/view.phtml. Magento не предлагает много точек расширения из коробки. Вы можете добавить его в блок content, но это приведет к тому, что ваш пользовательский контент будет либо полностью вверху, либо полностью внизу.

Я думаю, что вам необходимо изменить шаблон и добавить код PHP для визуализации вашего пользовательского блока в нужной позиции, например:

<?php
    echo $this->getChildHtml('product.countrypurchase');
?>

С этим вы можете добавить свой блок с именем product.countrypurchase через макет XML или программно.

...