Magento定制块。无法获取块的文件

时间:2015-06-07 00:32:47

标签: php xml magento module block

我正在尝试创建一个新的自定义块模块。 /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 我的文件夹结构

my folder structure

template structure

2 个答案:

答案 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();

您将看到指定的控制器布局句柄