我正在尝试创建一个新的自定义块模块。 /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 :(得分: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>
刷新缓存和存储并检查它。
答案 1 :(得分:0)
如果您想知道为布局句柄分配了什么操作,可以“调试”布局句柄。
请将这些代码粘贴到
之间 $this->loadLayout();
print_r($this->getLayout()->getUpdate()->getHandles());
$this->renderLayout();
您将看到指定的控制器布局句柄