1

私はちょうどmagentoを学び始めました。サンプルの helloworld モジュール コードをここで見つけました。

http://www.engineer-ing.com/writing-magento-extension-part1/part2

ここで使用したコントローラーコードは次のとおりです。

 //app/code/local/Magentotutorial/Helloworld/controllers/IndexController.php
class Magentotutorial_Helloworld_IndexController extends Mage_Core_Controller_Front_Action {        

    public function indexAction() {
        $this->loadLayout();
        $this->renderLayout();
        echo 'Hello Index!';
    }

config.xml コード:

//app/code/local/Magentotutorial/Helloworld/etc/config.xml
<config>    
    <modules>
        <Magentotutorial_Helloworld>
            <version>0.1.0</version>
        </Magentotutorial_Helloworld>
    </modules>
    <frontend>
        <routers>
            <helloworld>
                <use>standard</use>
                <args>
                    <module>Magentotutorial_Helloworld</module>
                    <frontName>helloworld</frontName>
                </args>
            </helloworld>
        </routers>  
        <layout>
            <updates>
                <helloworld>
                      <file>helloworld.xml</file>
                </helloworld>
            </updates>
        </layout>
     </frontend>
</config>

helloworld.xml コード

//app/design/frontend/default/default/layout/helloworld.xml
<?xml version="1.0"?>
    <layout version="0.1.0">
        <helloworld_index_index>
            <default>
                <reference name="content">
                     <block type="page/html" name="helloworld" output="toHtml" template="helloworld/helloworld.phtml"/>
                </reference>
            </default>
        </helloworld_index_index>
    </layout>

HelloWorld.php

class Magentotutorial_HelloWorld_Block_HelloWorld extends Mage_Core_Block_Template
{
  public function getContent()
     {
         return ‘informations about my block !!’ ;
     }
}

helloworld.phtml で、「hello world to all of u」のような文字列を入力するだけです。

エラーは表示されません。ただし、ページには何も表示されません。

どこが間違っているのかわかりません。誰かがページを表示する問題を解決するのを手伝ってくれますか

4

1 に答える 1

2

レイアウト XML のエラー。<default>以下のノードは必要ありません

<?xml version="1.0"?>
<layout version="0.1.0">
    <helloworld_index_index>
        <reference name="content">
             <block type="page/html" name="helloworld" output="toHtml" template="helloworld/helloworld.phtml"/>
        </reference>
    </helloworld_index_index>
</layout>

ブロックについて、あなたの構築が機能するかどうかわかりません。そうでない場合は、次のように置き換えてみてください。

<block type="core/template" name="helloworld" template="helloworld/helloworld.phtml"/>

また、config.xml でブロックを宣言するのを忘れていました。以下を参照してください。

<global>
    <blocks>
        <helloworld>
            <class>Magentotutorial_HelloWorld_Block</class>
        </helloworld>
    </blocks>
</global>

この後、次のブロック宣言を使用できます。

<block type="helloworld/helloworld" name="helloworld" template="helloworld/helloworld.phtml"/>

これが役立つことを願っています

于 2012-05-22T12:11:31.153 に答える