Magento:为静态块小部件注册自定义模板文件

时间:2015-02-04 15:45:13

标签: php magento templates widget themes

我开始学习如何使用Magento。我喜欢静态块的概念,并且使用静态块小部件将它们添加到cms页面非常容易。 小部件给我一个下拉列表,我可以选择它应该使用的模板文件。默认情况下,只有cms/widget/static_block/default.phtml

中的默认模板文件

这是对话框: Magento CMS static block widget

如何将自己的模板文件添加到下拉列表中?

我知道小部件只会创建以下行:

{{widget type="cms/widget_block" template="cms/widget/static_block/default.phtml" block_id="8"}}

而且我知道我可以轻松更改"模板"属性。但我认为这不是一种干净的方式,因为将来,用户不知道正确的文件名,只是使用下拉列表会更容易。

我希望我能解释一下这个问题并感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

出于本回答的目的,我将假设您了解Magento扩展如何工作,但如果没有,那么就这个主题有很多好的答案。

窗口小部件由widget.xml文件定义,因此您需要将widget.xml文件添加到新扩展或现有扩展的etc子目录(即app/code/local/My/MyExtension/etc)。由于CMS静态块小部件已在<cms_static_block>中定义为app/code/core/Mage/Cms/etc/widget.xml,因此您的新widget.xml文件将仅将新模板节点注入此小组件的现有XML配置中。以下是您的新widget.xml的外观:

<?xml version="1.0"?>
<widgets>
    <cms_static_block>
        <parameters>
            <template>
                <values>
                    <custom translate="label">
                        <value>cms/widget/static_block/custom.phtml</value>
                        <label>My Extension - Custom CMS Block Template</label>
                    </custom>
                </values>
            </template>
        </parameters>
    </cms_static_block>
</widgets>

您可能已经知道,<value>节点是指您的自定义模板的相对位置。所以在上面的例子中,它引用了一个模板文件(无论你的自定义包/主题目录是什么):app/design/frontend/my_package/my_theme/template/cms/widget/static_block/custom.phtml