我一直在我的定制模块中的magento块上工作。一切都很好,控制器很好,其余的都很好。我面临的问题是,我的街区没有像预期的那样出现。而不是显示我的块或块信息,‘流行标签’块显示。下面是我的模块实验性/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/ module /Test.xml_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();
}
}
?>这里是我的块位置:实验/测试/块/ExpBlock.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块和popular_tags块。
请让我知道我在哪里弄错了。
发布于 2014-08-14 17:09:59
布局文件中有错误的块定义。
<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类型。
发布于 2014-08-14 17:47:31
在您的代码中有很多问题:
第一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"/>
发布于 2014-08-14 17:49:15
嗯,我在深入浅出之后找到了解决方案,也就是说,我在我的config.xml文件中声明了一些标记错误(Test/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回答。
https://stackoverflow.com/questions/25313458
复制相似问题