在Magento中添加模块时出现问题

时间:2014-09-08 16:39:29

标签: php magento module magento-1.7

我已经完成了几个教程,在Magento中添加自定义模块。我对Magento不是很熟悉,但我尝试在线跟踪这些步骤。 我正在使用Magento 1.7.0.2。 因此,为了添加客户模块,我将文件夹 Mehul / Helloworld 创建到 app / core / local

我的 Helloworld / etc / config.xml 是,

<?xml version="1.0" encoding="UTF-8"?>
<!-- The root node for Magento module configuration -->
<config>

    <!--
        The module's node contains basic
        information about each Magento module
    -->
    <modules>

        <!--
            This must exactly match the namespace and module's folder
            names, with directory separators replaced by underscores
        -->
        <Mehul_Helloworld>

            <!-- The version of our module, starting at 0.0.1 -->
            <version>0.0.1</version>

        </Mehul_Helloworld>

    </modules>

      <!-- This node contains parameters, available on frontend --> 
    <frontend> 
        <!-- Module aliases are located in this block --> 
        <routers> 
            <!-- This node's name should be the same as our alias --> 
            <helloworld> 
                <!-- use parameter specifies which of basic routers needs to be used. 
                This can be "standard" for frontend or "admin" for backend --> 
                <use>standard</use> 
                <!-- router arguments block --> 
                <args> 
                    <!-- This parameter specifies the full name of out module --> 
                    <module>Mehul_Helloworld</module> 
                    <!-- This parameter sets module alias --> 
                    <frontName>helloworld</frontName> 
                </args> 
            </helloworld> 
        </routers> 
    </frontend>

</config>

我的 app / etc / Mehul_Helloworld.xml 是,

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Mehul_Helloworld>

            <!-- Whether our module is active: true or false -->
            <active>true</active>

            <!-- Which code pool to use: core, community or local -->
            <codePool>local</codePool>

        </Mehul_Helloworld>
    </modules>
</config>

我的控制器文件&#39; IndexController.php&#39; 进入 Helloworld / controllers 目录,

<?php 

    class Mehul_Helloworld_IndexController extends Mage_Core_Controller_Front_Action {

        public function indexAction()
        {
            echo "Hello tuts+ World";
        }
        public function testAction()
        {
            echo "test action";
        }
    }
?>

我通过管理面板禁用了所有 catch ,我也刷新了它。 当我转到 System / Configuration / Advance 时,我可以看到我的模块已启用 但我试着看到我的控制器,

mysite.com/helloworld/index/index mysite.com/helloworld/index/test 然后我收到一条404错误消息,说明找不到页面!

我现在该怎么办?

  • 本地
    • MEHUL
      • 的Helloworld
        • 控制器
          • IndexController.php
          • config.xml中
    • Mehul_Helloworld.xml

5 个答案:

答案 0 :(得分:0)

嗨,有一个模块创建的在线工具对新人来说非常好。此工具将为您提供压缩文件。你可以尝试这个,看看你在做什么错误。

工具网址:http://www.silksoftware.com/magento-module-creator/

答案 1 :(得分:0)

你的文件结构看起来很奇怪。 它应该是app&gt;代码&gt;本地和应用&gt;等等&gt;模块。从任务描述我可以看到本地文件夹与etc文件夹在同一级别。请检查并修复。也尝试在&#34; local&#34;中使用小写。文件夹名称。

答案 2 :(得分:0)

我认为每件事都是正确的,但你输入的结构不正确。但是&#34; Mehul_Helloworld.xml&#34;文件应该在

  

&#34;应用程序的/ etc /模块/ Mehul_Helloworld.xml&#34;

而不是

  

&#34;应用程序的/ etc / Mehul_Helloworld.xml&#34;

。这可能是您的模块未注册的原因。

答案 3 :(得分:0)

app / etc / Mehul_Helloworld.xml 应为 app / etc / modules / Mehul_Helloworld.xml

您的代码必须进入

/应用程序/代码/本地/ MEHUL /的Helloworld /

答案 4 :(得分:0)

对不起伙计!!它工作正常,我输入错误的URL! 该URL应该是&#39; mysite.com/store/helloworld',因为我的magento安装在saperate商店目录而不是根目录。 我试图访问mysite.com/Helloworld。 我仔细查看了我的目录结构后才意识到这一点! 无论如何,谢谢你们的回复!