2

我在 Magento 中设置了一个带有一个自定义小部件的自定义模块。小部件应该在前端呈现一些 HTML。因此,我创建了一个自定义 .phtml 文件并在 widget.xml 中进行了配置

<?xml version="1.0"?>
<widgets>
    <startslider_slider type="startslider/slider ">
        <name>Slider Startpage</name>
        <description type="desc">Adds a slider</description>
        <parameters>
            <the_text>
                <label>myTestText</label>
                <visible>1</visible>
                <required>1</required>
                <type>text</type>
            </the_text>
            <template translate="label">
                <label>Frontend Template</label>
                <visible>1</visible>
                <required>1</required>
                <type>select</type>
                <values>
                    <three translate="label">
                        <value>startslider/slider-3.phtml</value>
                        <label>Slider with three blocks</label>
                    </three>
                    <four translate="label">
                        <value>startslider/slider-4.phtml</value>
                        <label>Slider with four blocks</label>
                    </four>
                </values>
            </template>
        </parameters>       
    </startslider_slider>
</widgets>

我可以在后端()中插入和配置小部件,{widget type="startslider/slider" the_text="blabla" template="startslider/slider-3.phtml"}并在前端执行块类的 _toHtml() 方法并输出一些文本,仅用于测试。但是 .phtml 模板的内容从未显示。我想知道 Magento 是否无法找到 .phtml?

我将 .phtml 放在以下位置:

magento-vhost/app/design/frontend/default/myCustomTheme/template/startslider/slider-3.phtml
magento-vhost/app/design/frontend/default/default/template/startslider/slider-3.phtml
magento-vhost/app/design/frontend/base/default/template/startslider/slider-3.phtml 

我是不是忘记了什么?我必须配置某事吗?否则使用自定义.phtml?

4

1 回答 1

10

可能的事情太多了,但这里有一些东西可以尝试。

您的startslider/slider小部件继承自哪个类?如果不是,Mage_Core_Block_Template那么您没有模板小部件块。

你为你的小部件创建了一个_toHtml方法——这个小部件是否仍然调用 parent::_toHtml();. 如果不是,模板渲染代码将永远不会运行。

做什么

var_dump($this->getData());
var_dump($this->getTemplate());
var_dump($this->getTemplateFile());

_toHtml方法渲染?这些路径是否与文件系统完全匹配(包括字母大小写)?

于 2013-04-13T20:13:52.920 回答