通过自定义模块将块添加到产品页面,而无需编辑magento默认模板

时间:2018-01-29 12:55:43

标签: magento-1.9

我正在尝试使用自定义模块向产品页面添加块。 我不想为此修改任何magento默认文件。我知道可以通过修改view.phtml模板中的代码来实现。以下是我到目前为止所尝试的内容。我已经在所有模块模板文件夹中复制了默认的magento view.phtml文件,如下所示。我在我的模块的config.xml中包含了布局文件,并为块编写了代码。

view.phtml文件我放在模块文件夹的每个模板下。 应用程序/ desifn /前端/默认/默认/模板/ MyModule的/ view.phtml

模块的config.xml文件 -

 <frontend>
    <routers>
        <modulename>
            <use>standard</use>
            <args>
                <module>Module_name</module>
                <frontName>modulefrontname</ntNafrome>
            </args>
        </modulename>
    </routers>
    <layout>
        <updates>
            <modulename module="module_name">
                <file>module.xml</file>         
            </modulename>
        </updates>
    </layout>
</frontend>

此文件位于 - 应用/ desifn /前端/默认/默认/布局/ modulename.xml

<reference name="product.info">
                <block type="module_name/product_view" name="product_list">
                    <action method="setTemplate" ifconfig="module_name/sp_category/status">
                        <template>modulename/product/view.phtml</template>
                    </action>
                </block>
            </reference>

1 个答案:

答案 0 :(得分:0)

节点模块名无效(错误的结束标记)

    <updates>
        <modulename module="module_name">
            <file>module.xml</file>         
        </module>
    </updates>

并且模板路径也不匹配

/mymodule/view.phtml

modulename/product/view.phtml

但回到最初的问题:

默认模板的view.phtml不包含任何参数的getChildHtml。因此,注入自定义内容的唯一方法是使用core / text_list类型的块,即“product.info.simple.extra”。您所需要的只是在xml布局中使用beforeafter属性。