Magento块没有显示

时间:2016-01-21 13:50:11

标签: php xml magento

我是Magento的新手并且一直在尝试创建一个模块,使用getChildHtml()显示块内容。 但是,它无法正常工作。

在app / design / frontend / muster / default / template / page / html / header / header4.phtml中,我有以下代码:

<div class="grid_10 v-grid">
    <?php echo $this->getChildHtml('userdropdown_menu_dropdown'); ?>
</div>

在app / design / frontend / muster / default / layout / muster / userdropdown.xml中,我有以下结构:

<?xml version="1.0"?>
    <layout version="0.1.0">
        <default>
            <reference name="userdropdown.menu">
                <block type="bb_userdropdown/userdropdown_menu_dropdown" name="userdropdown_menu_dropdown" as="userdropdown" template="muster/userdropdown/userdropdown/menu/dropdown.phtml"/>
            </reference>
        </default>
    </layout>

在app / design / frontend / muster / default / template / muster / userdropdown / userdropdown / menu / dropdown.phtml中,我有以下代码:

<?php
    $test = $this->helloWorld(); 
    echo $test;
?>

在app / etc / modules中我创建了Muster_UserDropdown.xml,其中我有以下代码:

<?xml version="1.0"?>
    <config>
      <modules>
        <Muster_UserDropdown>
          <active>true</active>
          <codePool>community</codePool>
          <version>0.1.0</version>
        </Muster_UserDropdown>
      </modules>
    </config>

我创建了文件夹app / code / community / Muster / UserDropdown,其中包含以下子文件夹:

Block
Helper
controllers
etc
sql

以下是空的:

Helper
Model
controllers
sql

在app / code / community / Muster / UserDropdown / Block中,我有以下文件:

app/code/community/Muster/UserDropdown/Block/Userdropdown/Menu/Dropdown.php

app / code / community / Muster / UserDropdown / Block / Userdropdown / Menu / Dropdown.php中的代码如下:

<?php
    class Muster_UserDropdown_Block_Userdropdown_Menu_Dropdown extends Mage_Core_Block_Template
    {
        /**
         * TESTING
         */
        public function helloWorld()
        {
            return 'Hello world!';
        }
    }

在app / code / community / Muster / UserDropdown / etc中,我有以下文件:

app/code/community/Muster/UserDropdown/etc/config.xml

app / code / community / Muster / UserDropdown / etc / config.xml中的代码如下:

<?xml version="1.0"?>
<config>
    <modules>
        <Muster_UserDropdown>
            <version>0.1.0</version>
        </Muster_UserDropdown>
    </modules>
    <frontend>
        <routers>
            <bbuserdropdown>
                <use>standard</use>
                <args>
                    <module>Muster_UserDropdown</module>
                    <frontName>bbuserdropdown</frontName>
                </args>
            </bbuserdropdown>
        </routers>
        <translate>
            <modules>
                <bb_userdropdown>
                    <files>
                        <default>BB_UserDropdown.csv</default>
                    </files>
                </bb_userdropdown>
            </modules>
        </translate>
        <layout>
            <updates>
                <bb_punchcard>
                    <file>muster/userdropdown.xml</file>
                </bb_punchcard>
            </updates>
        </layout>
    </frontend>
</config>   

有什么问题,因为getChildHtml(&#39; userdropdown_menu_dropdown&#39;)没有返回任何内容?

1 个答案:

答案 0 :(得分:0)

检查解决方案的选项很少:

1)检查参考块名称=“userdropdown.menu”与哪个模板相关。它应该是app / design / frontend / muster / default / template / page / html / header / header4.phtml,因为你在里面调用了getChildHtml。

2)确保所有模板文件都具有适当的权限和所有者分配。

3)尝试使用别名(as)获取如下所示的childhtml:

直到最底层( 'userdropdown'); ?&GT;

4)确保不重复块名称或别名。