2015-11-14 57 views
1

我是Magento的新手。我正在嘗試開發一個自定義模塊。我的代碼如下初級講座第一個Magento模塊開發

地點: d:\ PHP \ htdocs中\ Magento的\ APP \等\模塊

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 \代碼\本地\遠程\鼠標\等 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的\ APP \設計\前臺\ my_theme \ DEFAULT \模板\遠程

mouse.phtml

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

我看不到任何輸出。我的代碼中是否有任何錯誤?

+0

您的所有文件完整路徑應包括在內,尤其是你的回覆XML –

+0

@RobbieAverill感謝。我添加了文件的位置。謝謝 –

回答

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

感謝您的回覆。我試着用你的解決方案,但它不工作。謝謝 –