【问题标题】:Magento template not loaded properlyMagento 模板未正确加载
【发布时间】:2011-12-27 09:30:42
【问题描述】:

我创建了一个新模块,并尝试在 indexcontroller 下的操作中加载模板。该模板已正确加载,但未加载基本/根模板。 Magento 只加载了我在 XML 中指定的模板文件。我解释了我遵循的以下步骤。

  • 创建一个名为“Sample”的模块。
  • 使用索引操作创建一个 IndexController。
  • 在目录app/design/frontend/default/default/layout/下创建local.xml文件
  • 在目录 app/design/frontend/default/default/template/sample/sample_page.phtml 下创建 sample_page.phtml。

索引控制器:

public function indexAction() {
    $this->loadLayout();
    $this->renderLayout();
}

local.xml:

<layout version="0.1.0">
<default>
</default>
<sample_index_index>
    <reference name="root">
        <block type="page/html" name="root" output="toHtml" template="sample/sample_page.phtml">
        </block>
    </reference>
</sample_index_index>

有人能找到我所做的问题吗?

【问题讨论】:

    标签: magento


    【解决方案1】:

    这里的问题是您引用了错误的布局块(在您的示例中为“root”)。这样做会将整个页面块替换为您指定的块。
    要显示所有块(包括您的块),只需引用除“root”之外的另一个布局块,例如“content”。

    您可能还想修改模块页面的根布局块,如果是这种情况,请在默认句柄中引用根块并设置不同的模板。

    这是一个例子:

    <layout version="0.1.0">
        <default>
            <reference name="root"> 
                <action method="setTemplate">
                    <template>page/1column.phtml</template>
                </action>
            </reference>
        </default>
        <sample_index_index>
            <reference name="content">
                <block type="page/html" name="the_name_you_like" output="toHtml" template="sample/sample_page.phtml">
                </block>
            </reference>
        </sample_index_index>
    </layout>
    

    【讨论】:

    • 和块名称有所不同。
    • 请注意,您可能希望将另一个 tpl 设置为 root,而不是默认设置。有3或4个泛型,“page/1column.phtml”,“page/3columns.phtml”....
    猜你喜欢
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 2015-01-10
    • 1970-01-01
    相关资源
    最近更新 更多