Magento而不是显示我的Block Popular Tags块显示默认主题

时间:2014-08-14 16:53:55

标签: php xml magento

我一直在自定义模块中处理magento Blocks。一切都工作正常控制器没问题,其余的工作正常。我面临的问题是我的块没有按预期显示。不会显示我的阻止或阻止消息,而是显示“热门标记”块。这是我的模块Experiment / Test / etc / config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<config>

    <modules>
        <experiment_test>
            <vresion>0.0.1</vresion>
        </experiment_test>
    </modules>

    <frontend>
        <global>
            <blocks>
                <experiment>
                    <class>Experiment_Test_Block</class>
                </experiment>
            </blocks>
        </global>
        <routers>
            <experiment>
                <use>standard</use>
                <args>
                    <module>Experiment_Test</module>
                    <frontName>experiment</frontName>
                </args>
            </experiment>
            <layout>
                <updates>
                    <experiment>
                        <file>experiment.xml</file>
                    </experiment>
                </updates>
            </layout>
        </routers>
    </frontend>

</config>

我的模块配置文件是app / etc / modules / Experiment_Test.xml:

<?xml version="1.0"?>
<config>
    <modules>
        <Experiment_Test>
            <active>true</active>
            <codePool>local</codePool>
        </Experiment_Test>
    </modules>
</config>

这是我的Experiment / Test / controllers / IndexController.php:

<?php
class Experiment_Test_IndexController extends Mage_Core_Controller_Front_Action
{

    public function indexAction() {
        $this->loadLayout();
        $this->renderLayout();
    }

}
?>

这是我的块位置:Experiment / Test / Block / ExpBl​​ock.php:

<?php
class Experiment_Test_Block_Expblock extends Mage_Core_Block_Template {
    public function methodblock(){
        return 'Information About my Block!!';
    }
}
?>

这是我的布局文件放在design / frontend / mytheme / default / layout / experiment.xml中:

<?xml version="1.0"?>
<layout version="0.0.1">

    <default>
        <reference name="content"></reference>
    </default>

    <experiment_index_index>
        <reference name="content">
            <block type="test/expblock" name="afficher_expbloc" template="experiment/afficher.phtml" />
        </reference>
    </experiment_index_index>

</layout>

这是我的模板文件放在design / frontend / mytheme / default / template / experiment / afficher.phtml中:

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

但输出显示在另一个块中,即来自popular_tags块和前端/ base / default / template / tag / popular.phtml

请告诉我错误的地方。

3 个答案:

答案 0 :(得分:1)

布局文件中的块定义错误

<block type="test/expblock" name="afficher_expbloc" template="experiment/afficher.phtml" />

这是错误的。而不是这个,你需要使用这个

 <block type="experiment/expblock" name="afficher_expbloc" template="experiment/afficher.phtml" />

experiment是您通过config.xml文件设置的块唯一标识符名称。为了指向您的Experiment_Test_Block_Expblock,您需要在布局文件中使用类型experiment/expblock作为自定义块。

答案 1 :(得分:0)

您的代码中存在很多问题:

第一个config.xml

experiment_test应为Experiment_Test

<强>从

   <modules>
        <experiment_test>
            <vresion>0.0.1</vresion>
        </experiment_test>
    </modules>

 <modules>
        <Experiment_Test>
            <vresion>0.0.1</vresion>
        </Experiment_Test>
    </modules>

文件名ExpBlock.php应为Expblock.php

并改变:

 <block type="test/expblock" name="afficher_expbloc" template="experiment/afficher.phtml" />

<block type="tag/popular" name="tags_popular" template="tag/popular.phtml"/>

答案 2 :(得分:0)

我在深入搞清楚之后找到了自己的解决方案,那就是我在config.xml文件中声明了一些标签错误(Experiment / Test / etc / config.xml) - 所以我想分享所以它会对于具有相同情况的人有所帮助:这是我更正的config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<config>

    <modules>
        <experiment_test>
            <vresion>0.0.1</vresion>
        </experiment_test>
    </modules>

    <frontend>

        <routers>
            <experiment>
                <use>standard</use>
                <args>
                    <module>Experiment_Test</module>
                    <frontName>experiment</frontName>
                </args>
            </experiment>

        </routers>
        <layout>
            <updates>
                <experiment>
                    <file>experiment.xml</file>
                </experiment>
            </updates>
        </layout>
    </frontend>

    <global>
        <blocks>
            <experiment>
                <class>Experiment_Test_Block</class>
            </experiment>
        </blocks>
    </global>

</config>

我的布局文件中也存在问题,由@programmer_rkt

回答