Magento 1.9创建了新的Hello World模块

时间:2017-03-28 10:11:37

标签: php magento module magento-1.9

 大家好!

我真的希望有人会帮助我 我试图在magento 1.9.3.2中创建新模块,它显示“Hello world!”来自phtml文件。我按照这个规则逐步创建了它。模块已创建,但是当我在浏览器中打开模块(127.0.0.1/magento/helloworld)时,没有任何内容出现,只需清空此模板即可。 opened module in browser - screenshot

以下是我所指导的步骤:
1.模块声明:      在app / etc / modules / M4U_HelloWorld.xml中创建新的xml文件     <?xml version="1.0"?> <config> <modules> <M4U_HelloWorld> <active>true</active> <codePool>local</codePool> </M4U_HelloWorld> </modules> </config>

  1. 模块配置
        2.1。在app / code / local / M4U / HelloWorld / controllers / IndexController.php中创建控制器类

    class M4U_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action { public function indexAction() { $this->loadLayout(array('default')); $this->renderLayout(); } }

  2. 2.2。在app / code / local / M4U / HelloWorld / Block / HelloWorld.php中创建Block类

    class M4U_HelloWorld_Block_HelloWorld extends Mage_Core_Block_Template
                      {
                           // necessary methods
                      }
    

    2.3。在app / code / local / M4U / HelloWorld / etc / config.xml

    中创建配置xml
    <?xml version="1.0"?>
    <config>
    <global>
        <modules>
                <m4u_helloworld>
                        <version>0.1.0</version>
                </m4u_helloworld>
        </modules>
    <blocks>
            <helloworld>
                <rewrite>
         <helloworld>M4U_HelloWorld_Block_HelloWorld</helloworld>
        </rewrite>
            </helloworld>
     </blocks>
        </global>
       <frontend>
                <routers>
                        <helloworld>
                                <use>standard</use>
                                <args>
                                      <module>M4U_HelloWorld</module>
                                      <frontName>helloworld</frontName>
                                </args>
                        </helloworld>
                </routers>
        <layout>
            <updates>
                <helloworld>
                      <file>helloworld.xml</file>
                </helloworld>
            </updates>
            </layout>
        </frontend>
    

    1. 定义前端模板
      3.1。在app / design / frontend / default / default / layout / helloworld.xml中定义页面布局 <?xml version="1.0"?> <layout version="0.1.0"> <helloworld_index_index> <reference name="root"> <action method="setTemplate"> <template>page/1column.phtml</template></action> </reference> <reference name="content"> <block type="helloworld/helloworld" name="hello" template="helloworld/helloworld.phtml"/> </reference> </helloworld_index_index> </layout>

    2. 在app / design / frontend / default / default / template / helloworld / helloworld.phtml中创建模板文件

3 个答案:

答案 0 :(得分:3)

已经过测试

screenshot here

您可以在自定义模块中显示helloworld模板,对代码进行一些小修改。

  1. 模块声明:

    <?xml version="1.0"?>
     <config>
           <modules>
              <M4U_HelloWorld>
                   <active>true</active>
                   <codePool>local</codePool>
              </M4U_HelloWorld>
           </modules>
     </config>
    
  2. 创建文件夹结构并添加文件

  3.   

    一个。应用程序/代码/本地/ M4U /的HelloWorld的/ etc / config.xml中

    <config>
        <modules>
            <m4u_helloworld>
                <version>0.1.0</version>
            </m4u_helloworld>
        </modules>
        <frontend>
            <routers>
                <helloworld>
                    <use>standard</use>
                    <args>
                        <module>M4U_HelloWorld</module>
                        <frontName>helloworld</frontName>
                    </args>
                </helloworld>
            </routers>
            <layout>
                <updates>
                    <helloworld module="M4U_HelloWorld">
                        <file>M4U_HelloWorld.xml</file>
                    </helloworld>
                </updates>
            </layout>
        </frontend>
        <global>
            <blocks>
                <helloworld>
                    <class>M4U_HelloWorld_Block</class>
                </helloworld>
            </blocks>
        </global>
    </config>
    
      

    B中。应用程序/代码/本地/ M4U /的HelloWorld /块/ HelloWorld.php

    class M4U_HelloWorld_Block_HelloWorld extends Mage_Core_Block_Template {
    
    }
    
      

    ℃。应用程序/代码/本地/ M4U /的HelloWorld /控制器/ IndexController.php

    class M4U_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action {
    
        public function indexAction() {
            echo 'hello world';
            $this->loadLayout();  //This function read all layout files and loads them in memory
            $this->renderLayout();
        }
    
    }
    
      

    d。 app / design / frontend / * theme base * / * mytheme * /layout/M4U_HelloWorld.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <layout version="0.1.0">
        <helloworld_index_index>
            <reference name="root">
                <action method="setTemplate">                  
                    <template>page/1column.phtml</template>
                </action>
            </reference>
            <reference name="content">
                <block type="helloworld/helloworld" name="hello" template="helloworld/helloworld.phtml"/>
            </reference>
        </helloworld_index_index>
    </layout>
    
      

    电子。 app / design / frontend / *主题基础* / * mytheme * /template/helloworld/helloworld.php

    echo 'im a template block';
    

答案 1 :(得分:0)

按照Inchoo Article

  

我们将从创建一个简单的“Hello world”模块开始。但是,你   很快就会看到这个简单的东西带有Magento的新意义。创建一个   裸骨模块在Magento中至少需要两个文件。为您   您需要的模块/app/etc/modules/MyCompany_MyModule.xml,   应用程序/代码/本地/ MyCompany的/ MyModule中的/ etc / config.xml中。但是,准系统模块   不会给你一个“你好开发者” - 所以,我们需要添加更多   文件到游戏。

     

文件1:/app/etc/modules/Inchoo_HelloDeveloper.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Inchoo_HelloDeveloper>
            <active>true</active>
            <codePool>local</codePool>
        </Inchoo_HelloDeveloper>
    </modules>
</config>
     

文件2:app / code / local / Inchoo / HelloDeveloper / etc / config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Inchoo_HelloDeveloper>
            <version>0.1.0</version>
        </Inchoo_HelloDeveloper>
    </modules>    
    <frontend>
        <routers>
            <Inchoo_HelloDeveloper_SomeFreeRouterName1>
                <use>standard</use>
                <args>
                    <module>Inchoo_HelloDeveloper</module>
                    <frontName>inchoo-hellodeveloper</frontName>
                </args>
            </Inchoo_HelloDeveloper_SomeFreeRouterName1>
        </routers>
    </frontend>    
</config>
     

文件3:   应用程序/代码/本地/ Inchoo / HelloDeveloper /控制器/ IndexController.php

<?php

class Inchoo_HelloDeveloper_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        echo 'Hello developer...';
    }

    public function sayHelloAction()
    {
        echo 'Hello one more time...';
    }
}
?>
     

非常简单,文件3向我们展示了一件重要的事情:命名   connvention。注意类的名称。你的moudle课应该   以MyCompany_MyModule_FileName的形式保存名称,或者在阻止的情况下   和模块:MyCompany_MyModule_Block_FileName或   MyCompany_MyModule_Module_FileName。

答案 2 :(得分:0)

要在Magento 1.9中创建HelloWorld模块,请遵循以下教程URL。

网址:http://blog.iyngaran.info/create-custom-module-helloworld-in-magento