Макет не загружается в пользовательский модуль Magento

1

Мой файл 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 !! ;
       }
     }
   ?>

Я создал папку для файла макета по следующему пути: app/design/frontend/product/default/layout/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>

Я создал папку для файла вида по следующему пути: app/design/frontend/product/default/template/product/afficher.phtml

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

Мой макет не загружается. Я новичок в magento, поэтому я не могу определить ошибку.

Может кто-нибудь мне помочь?

Заранее спасибо.

Теги:
magento

2 ответа

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

В <global> module config.xml <global> добавляется тег <frontend>.

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

Добавьте это за пределами <frontend>.

Обновленный ответ:

  1. Глобальный файл конфигурации: приложение \etc\modules\Tutorial_Product.xml

<?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

<?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. Класс блока: приложение\code\local\Учебник\Product\Block\Monblock.php

class Tutorial_Product_Block_Monblock extends Mage_Core_Block_Template { public function methodblock() { return 'informations about my block !!'; } }

Я использовал оставшийся код из вашего сообщения, и он отлично работал для меня

  • 0
    Я изменил то, что вы указали, теперь я получил следующую ошибку: Ошибка разбора: синтаксическая ошибка, неожиданное 'about' (T_STRING) в / opt / lampp / htdocs / projects / magento_source / app / code / local / Tutorial / Product / Block /Monblock.php в строке 6
  • 0
    Это не работает.
Показать ещё 10 комментариев
0

Что касается вашей последующей ошибки: строка "информация о моем блоке! кажется, не в правильных апострофах ('').

Ещё вопросы

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