2016-01-21 52 views
1

我是Magento的新手,一直在尝试创建一个模块,使用getChildHtml()显示块内容。 但是,它不起作用。Magento块没有显示

在应用程序/设计/前端/鼓起/默认/模板/页/ HTML /头/ header4.phtml,我有以下代码:

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

在应用程序/设计/前端/鼓起/默认/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> 

在应用程序/设计/前端/鼓起/默认/模板/鼓起/ userdropdown/userdropdown /菜单/ dropdown.phtml,我有以下代码:

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

在应用程序/ 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> 

我已创建的文件夹应用程序/代码/小区/穆斯特尔/ UserDropdown,其具有下面的子文件夹:

Block 
Helper 
controllers 
etc 
sql 

以下的有空:

Helper 
Model 
controllers 
sql 

内部应用程序/代码/社区/必备ER/UserDropdown /块,我有以下文件:

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

在app /代码/社区/穆斯特/ UserDropdown /座/ Userdropdown /菜单代码/ Dropdown.php如下:

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

内部应用程序/代码/社区/穆斯特/ UserDropdown /等等,我有以下文件:

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

在app /代码/社区的代码/穆斯特/ 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('userdropdown_menu_dropdown')不返回任何内容后出现了什么问题?

回答

0

几个选项查询的解决方案:

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

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

3)尝试使用别名(如),以获得childhtml象下面这样:

,直到最底层( 'userdropdown'); ?>

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