0

我对 Magento 很陌生,我已经开始学习为前端开发自定义模块。我已经遵循了几个指南,但由于某种原因,它们都没有工作。似乎 loadLayout 和 renderLayout 正在引起问题。我不确定这是否是因为我的文件位于错误的位置,或者问题是什么。我已经尝试加载页面 magento.x/helloworld magento.x/helloworld/index magento.x/index.php/helloworld。我得到了默认站点的损坏版本。如果我用 echo 替换 lLayout 和 rLayout 就可以了。这就是我所拥有的:

应用程序/代码/本地/Wrapids/Helloworld/etc/config.xml

<config>
<modules>
    <Wrapids_Helloworld>
        <version>0.1.0</version>
    </Wrapids_Helloworld>
</modules>
<frontend>
    <routers>
        <helloworld>
            <use>standard</use>
            <args>
                <module>Wrapids_Helloworld</module>
                <frontName>helloworld</frontName>
            </args>
        </helloworld>
    </routers>
    <layout>
        <updates>
            <helloworld>
                <file>helloworld.xml</file>
            </helloworld>
        </updates>
    </layout>
</frontend>
</config>

应用程序/代码/本地/Wrapids/Helloworld/controllers/IndexController.php

<?php 
class Wrapids_Helloworld_IndexController extends Mage_Core_Controller_Front_Action 
    {
     public function indexAction() 
     {
      $this->loadLayout();
      $this->renderLayout();
     }
    }
?>

/app/design/frontend/default/default/template/helloworld/page.phtml

text

应用程序/设计/前端/默认/默认/布局/helloworld.xml

<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">
    <default>
        <reference name="content">
            <block type="helloworld/helloworld" name="hello" template="helloworld/page.phtml">
        </reference>
    </default>
</layout>

应用程序/代码/本地/Wrapids/Helloworld/Block/Helloworld.php

<?php
    class Wrapids_Helloworld_Block_Helloworld extends Mage_Core_Block_Template
    {
    }
?>
4

3 回答 3

2

我不太了解您的目标,但您可以尝试一下:
app/design/frontend/default/default/layout/helloworld.xml

<layout version="0.1.0">
    <default>
        <reference name="root"> 
            <action method="setTemplate"><template>helloworld/page.phtml</template></action> 
        </reference>
    </default>
</layout> 
于 2012-06-13T22:50:21.163 回答
1

将模板和布局文件移动到 [your_package]/default 或 [your_package]/[your_theme]

于 2012-06-13T22:44:25.377 回答
0

您是否使用以下代码将 Wrapids_Helloworld.xml 文件添加到 app/etc/modules?这必须存在才能加载模块

<?xml version="1.0"?>
<config>
    <modules>
        <Wrapids_Helloworld>
            <active>true</active>
            <codePool>local</codePool>
        </Wrapids_Helloworld>
    </modules>
</config>
于 2012-06-13T21:26:43.140 回答