我是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;)没有返回任何内容?
答案 0 :(得分:0)
检查解决方案的选项很少:
1)检查参考块名称=“userdropdown.menu”与哪个模板相关。它应该是app / design / frontend / muster / default / template / page / html / header / header4.phtml,因为你在里面调用了getChildHtml。
2)确保所有模板文件都具有适当的权限和所有者分配。
3)尝试使用别名(as)获取如下所示的childhtml:
直到最底层( 'userdropdown'); ?&GT;4)确保不重复块名称或别名。