我真的希望有人会帮助我 我试图在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>
模块配置
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。在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>
定义前端模板
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>
在app / design / frontend / default / default / template / helloworld / helloworld.phtml中创建模板文件
答案 0 :(得分:3)
已经过测试
您可以在自定义模块中显示helloworld模板,对代码进行一些小修改。
模块声明:
<?xml version="1.0"?>
<config>
<modules>
<M4U_HelloWorld>
<active>true</active>
<codePool>local</codePool>
</M4U_HelloWorld>
</modules>
</config>
创建文件夹结构并添加文件
一个。应用程序/代码/本地/ 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)
我们将从创建一个简单的“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