无法在Magento中创建自定义模块

时间:2012-06-13 20:25:29

标签: php xml magento

我对Magento很新,我开始学习为前端开发自定义模块。我跟随了几位导游,出于某种原因,他们都没有工作。似乎loadLayout和renderLayout导致问题。我不确定这是因为我的文件位置错误,或问题是什么。我已经尝试加载页面magento.x / helloworld magento.x / helloworld / index magento.x / index.php / helloworld。我得到了默认网站的破解版本。如果我用回声替换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 /控制器/ 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 /砌块/ Helloworld.php

<?php
    class Wrapids_Helloworld_Block_Helloworld extends Mage_Core_Block_Template
    {
    }
?>

3 个答案:

答案 0 :(得分:2)

我不太了解你的目标,但你可以尝试一下:
应用程序/设计/前端/默认/默认/布局/ helloworld.xml

<layout version="0.1.0">
    <default>
        <reference name="root"> 
            <action method="setTemplate"><template>helloworld/page.phtml</template></action> 
        </reference>
    </default>
</layout> 

答案 1 :(得分:1)

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

答案 2 :(得分: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>