Пользовательский блок Magento. Не могу получить файл блока

Я пытаюсь создать новый модуль пользовательских блоков.
/app/code/local/TutsPlus/Demo/etc/config.xml

<config>
<gllobal>
<models>
<demo>
<class>TutsPlus_Demo_Model</class>
</demo>
</models>
<blocks>
<demo><class>TutsPlus_Demo_Block</class></demo>
</blocks>
<helpers>
<demo>
<class>TutsPlus_Demo_Helper</class>
</demo>
</helpers>
<events>
<demo>
<type>model</type>
<class>demo/observer/</class>
<method>logCustomer</method>
</demo>
</events>
</gllobal>

<frontend>
<routers>
<tutsplus_demo>
<use>standard</use>
<args>
<module>TutsPlus_Demo</module>
<frontName>demo</frontName>
</args>
</tutsplus_demo>
<catalog>
<args>
<modules>
<demo before="Mage_Catalog">TutsPlus_Demo</demo>
</modules>
</args>
</catalog>
</routers>
<layout>
<updates>
<demo>
<file>tutsplus.xml</file>
</demo>
</updates>
</layout>
</frontend>

/app/code/local/TutsPlus/Demo/Block/Configurable.php

class TutsPlus_Demo_Block_Configurable extends Mage_Core_Block_Template {

public function getConfigurableProducts() {
return 'it works';
}
}

/app/code/local/TutsPlus/Demo/controllers/config.xml

    class TutsPlus_Demo_IndexController extends Mage_Core_Controller_Front_Action {
public function configurableAction(){
$this->loadLayout();
$this->renderLayout();
}
}

configurable.phtml

<?php
echo 'zzz';
echo $this->getConfigurableProducts();

tutsplus.xml

<layout>
<tutsplus_demo_index_configurable>
<reference name="content">
<!--<block type="page/html" name="demo" template="tutsplus/configurable.phtml" />-->
<block type="tutsplus_demo/configurable" name="demo_configurable" template="tutsplus/configurable.phtml" />
</reference>
</tutsplus_demo_index_configurable>
</layout>

Когда я использую закомментированную строку, я получаю только «zzz», а результат работы функции getConfigurableProducts отсутствует. Если я использую вторую строку, у меня ничего нет и файл не был включен.

РЕДАКТИРОВАТЬ 1 Структура моей папки

структура моей папки

структура шаблона

0

Решение

Поместите этот код в tutsplus.xml

<layout>
<tutsplus_demo_index_configurable>
<reference name="content">
<!--<block type="page/html" name="demo" template="tutsplus/configurable.phtml" />-->
<block type="demo/configurable" name="demo_configurable" template="tutsplus/configurable.phtml" />
</reference>
</tutsplus_demo_index_configurable>

Удалите следующий код из вашего config.xml

  <events>
<demo>
<type>model</type>
<class>demo/observer/</class>
<method>logCustomer</method>
</demo>
</events>

Обновите кеш и хранилище и проверьте его.

0

Другие решения

если вы хотите узнать, какое именно действие назначено дескриптору макета, вы можете «отладить» дескрипторы макета.

Пожалуйста, вставьте этот код между

    $this->loadLayout();
print_r($this->getLayout()->getUpdate()->getHandles());
$this->renderLayout();

Вы увидите назначенные маркеры макета для контроллера

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector