Разработка первого модуля Magento

1

Я новичок в Magento. Я пытаюсь разработать собственный модуль. Мои коды - как belows

Местоположение: 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\etc config.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\приложение\дизайн\\ фронтенд my_theme\умолчанию\шаблон\дистанционного управления

mouse.phtml

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

Я не видел выхода. Есть ли ошибка в моем коде?

  • 0
    должны быть включены полные пути ко всем вашим файлам, особенно ваш XML
  • 0
    @RobbieAverill Спасибо за ваш ответ. Я добавил расположение файлов. Спасибо
Теги:
magento

2 ответа

1
Лучший ответ

Существует проблема с типом вашего блока, который вы определили следующим образом.

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

Это должно быть следующим.

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

Если вы пытаетесь запустить /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 и поэтому нет ошибки.

Также убедитесь, что выход для локальных модулей не отключен.

  • 0
    Спасибо за ваш ответ. Я пытался с вашим решением, но оно не работает. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню