Magento小部件不显示自定义模板

时间:2013-04-13 19:08:42

标签: magento templates widget

我在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?

感谢您的任何提示! 亚历

1 个答案:

答案 0 :(得分:10)

它可能有太多可能的东西,但这里有一些东西要尝试。

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

您为窗口小部件创建了_toHtml方法 - 此窗口小部件仍会调用parent::_toHtml();。如果不是,则永远不会运行模板渲染代码。

什么是

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

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