Я пытаюсь создать новый модуль пользовательских блоков.
/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 Структура моей папки
Поместите этот код в 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>
Обновите кеш и хранилище и проверьте его.
если вы хотите узнать, какое именно действие назначено дескриптору макета, вы можете «отладить» дескрипторы макета.
Пожалуйста, вставьте этот код между
$this->loadLayout();
print_r($this->getLayout()->getUpdate()->getHandles());
$this->renderLayout();
Вы увидите назначенные маркеры макета для контроллера