2016-01-21 50 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)確保塊名稱或別名不重複。