第一个Magento模块开发


First Magento Module Development

我是马根托的新手。我正在尝试开发一个自定义模块。我的代码如下

位置:D:''php''htdocs''magento''app''etc''modules

Remote_Mouse.xml

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

位置:D:''php''htdocs''magento''app''code''local''Remote''Mouse''etcconfig.xml

<?xml version="1.0"?>
<config>
    <global>
        <modules>
            <Remote_Mouse>
                <version>0.1.0</version>
            </Remote_Mouse>
        </modules>
        <blocks>
            <mouse>
                <class>Remote_Mouse_Block</class>
            </mouse>
        </blocks>
    </global>
    <frontend>
        <layout>
            <updates>
                <mouse module="Remote_Mouse">
                    <file>Remote_Mouse.xml</file> 
                </mouse>
            </updates>
        </layout>
        <routers>
            <mouse>
                <use>standard</use>
                <args>
                    <module>Remote_Mouse</module>
                    <frontName>remote</frontName>
                </args>
            </mouse>
        </routers>        
    </frontend>
</config>

位置:

D:'php'htdocs'magento'app'design'frontend'my_theme'default'layout
mouse.xml

<?xml version="1.0"?>
<layout version="0.1.0">
    <reference name="root">
        <action method="setTemplate">
            <template>page/1column.phtml</template>
        </action>
    </reference>
    <mouse_index_index>
        <reference name="content">
            <block type="remote/brush" template="remote/mouse.phtml" />
        </reference>
    </mouse_index_index>
</layout>

位置:D:'php'htdocs'magento'app'code'local'Remote'Mouse'Block

Brush.php

<?php
    class Remote_Mouse_Block_Brush extends Mage_Core_Block_Template
    {
        public function myfunction()
        {
            echo 'mouse';
        }
    }

位置:D:'php'htdocs'magento'app'code'local'Remote'Mouse'controllers

IndexController.php

<?php
class Remote_Mouse_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        $this->loadLayout(array('default'));
        $this->renderLayout();       
    }
    public function sayHelloAction()
    {
        echo 'Hello one more time...';
    }
}
?>

位置:

D: ''php''htdocs''magento''app''design''frontend''my_theme''default''template''remote

鼠标.phtml

<?php
    echo $this->myfunction();
?>

我看不到任何输出。我的代码有错吗??

您定义的块类型存在问题,如下所示。

<block type="remote/brush" template="remote/mouse.phtml" />

应该如下所示。

<block type="mouse/brush" template="remote/mouse.phtml" />

如果您试图运行/remote/index/index操作,则应该会出现类似myfunction function does not exists的错误。在布局文件中,您使用了

<block type="core/template" name="remote_mouse" template="remote/mouse.phtml" />

代码,而应该有:

<block type="mouse/mouse" name="remote_mouse" template="remote/mouse.phtml" />

还要确保您根据文件的位置放置了所有文件。如果您没有错误,那么您的模板或布局文件可能不在正确的主题模板/布局目录中。因此,系统没有找到它,系统没有尝试渲染它并调用myfunction方法,因此没有错误。

还要确保本地模块的输出没有被禁用。