【问题标题】:Magento block not showingMagento 块不显示
【发布时间】:2016-01-21 13:50:11
【问题描述】:

我是 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('userdropdown_menu_dropdown') 没有返回任何内容,出了什么问题?

【问题讨论】:

    标签: php xml magento


    【解决方案1】:

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

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

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

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

    getChildHtml('userdropdown'); ?>

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多