未在Magento的自定义模块中加载布局

时间:2015-08-04 06:45:37

标签: php xml magento

我的config.xml文件:config.xml

 <?xml version="1.0"?>
    <config>    
       <modules>
    <Tutorial_Product>
        <version>1.6.2.0.4</version>
    </Tutorial_Product>
</modules>
 <global>
     <blocks>
         <product>
              <class>Tutorial_Product_Block</class>
         </product>
      </blocks>
    </global>
 <frontend>
    <routers>
      <product>
          <use>standard</use>
          <args>
             <module>Tutorial_Product</module>
             <frontName>product</frontName>
          </args>
       </product>
   </routers>
   <layout>
        <updates>
            <product>
                 <file>product.xml</file>
            </product>
        </updates>
    </layout>
</frontend>

我的控制器文件:IndexController.php

 <?php

      class Tutorial_Product_IndexController extends Mage_Core_Controller_Front_Action {
    public function indexAction() {
        var_dump($this->getLayout()->getUpdate()->getHandles());
        $this->loadLayout();    
        $this->renderLayout(); 
    }

}

我的阻止文件:Monblock.php

            <?php 
        class Tutorial_Product_Block_Monblock extends Mage_Core_Block_Template
      {
        public function methodblock()
       {
        return ‘informations about my block !!’ ;
       }
     }
   ?>

我已在以下路径中为布局文件创建了文件夹: 应用程序/设计/前端/产品/默认/布局/ product.xml

          <?xml version="1.0"?>
        <layout version="0.1.0">
     <default>
      <reference name="content">
      </reference>
     </default>
  <product_index_index>  
       <reference name="content">
            <block type="product/monblock"  name="product_monblock" template="product/afficher.phtml" />
       </reference>
     </product_index_index>
      </layout>

我在以下路径中为视图文件创建了文件夹: 应用程序/设计/前端/产品/默认/模板/产品/ afficher.phtml

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

我的布局没有加载..我是magento的新手,所以我无法识别错误..

任何人都可以帮助我吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

在模块中config.xml <global>标记添加到<frontend>标记中。

<global>
 <blocks>
     <product>
          <class>Tutorial_Product_Block</class>
     </product>
  </blocks>
</global>

请在<frontend>标记之外添加此内容。

更新答案:

  1. 全局配置文件:app \ etc \ modules \ Tutorial_Product.xml
  2. <?xml version="1.0"?> <config> <modules> <Tutorial_Product> <active>true</active> <codePool>local</codePool> </Tutorial_Product> </modules> </config>

    1. 模块配置文件:app \ code \ local \ Tutorial \ Product \ etc \ config.xml
    2. <?xml version="1.0"?> <config>
      <modules> <Tutorial_Product> <version>1.6.2.0.4</version> </Tutorial_Product> </modules> <global> <blocks> <product> <class>Tutorial_Product_Block</class> </product> </blocks> </global> <frontend> <routers> <product> <use>standard</use> <args> <module>Tutorial_Product</module> <frontName>product</frontName> </args> </product> </routers> <layout> <updates> <product> <file>product.xml</file> </product> </updates> </layout> </frontend> </config>

      1. Block Class:app \ code \ local \ Tutorial \ Product \ Block \ Monblock.php
      2. class Tutorial_Product_Block_Monblock extends Mage_Core_Block_Template { public function methodblock() { return 'informations about my block !!' ; } }

        我已经使用了帖子中剩余的代码,它对我来说非常有用

答案 1 :(得分:0)

关于你的后续错误: 字符串'关于我的块!!的信息'似乎没有在正确的撇号中(&#39;&#39;)。