Magento - 仅在主页上添加我自己的内容块

时间:2011-11-21 15:41:27

标签: php e-commerce magento-1.4 magento

无论我尝试什么,这都无法正常工作。

我在/app/design/frontend/mytemplate/default/template/page/popularsearches.phtml上设置了一个新文件

我正在尝试从Layout Update .XML(来自CMS)引用。我在内容引用下添加到布局更新xml的代码如下所示:

<block type="core/template" name="popular_searches" as="popular_searches" template="page/popularsearches.phtml" />

有人可以告诉我它为什么不起作用吗?

感谢。

编辑:

好吧我现在觉得自己像个白痴,但我已经有了这个工作,我想我会发布解决方案,因为任何人来这里都有同样的问题。

我已正确设置了我的模板文件,并且布局XML都正确但我没有在模板中的任何位置调用getChildHtml将内容拉入模板。

为了使其正常工作,我将以下内容添加到1column.phtml

<?php echo $this->getChildHtml('popularsearches') ?>

3 个答案:

答案 0 :(得分:2)

欢迎来到SO!

可能会发生一些事情。假设您的CMS页面有<reference name="content"><your block code from above /></reference>,您已将您的块视为内容的子项,因此它应与其他内容一起呈现。顺便说一下,你不需要给你的块一个别名(as =“”属性)。

第1步:您应该刷新系统&gt;下的布局缓存缓存管理。

第二步:检查var/log/system.log,看看您是否收到无效模板警告;拼写错误/错误的文件路径通常是个问题。如果找不到您的模板,请检查您的包和主题设置。顺便说一下,在基本/默认主题下添加这个 new 模板是完全合适的。

第3步:如果您的模板包含PHP,请将其注释掉,看看是否可以使用纯HTML进行渲染。如果是这样,您的代码就会出现问题。如果您愿意,可以通过添加SetEnv MAGE_IS_DEVELOPER_MODE或更改index.php中的逻辑来启用开发人员模式。如果这是一个生产框,显然可以为您的IP处理开发者模式。

答案 1 :(得分:0)

自从发布以来已经过去2年了,我相信你现在已经知道了这一点,但可能是你正在使用

<?php echo $this->getChildHtml('popularsearches') ?>

而不是

<?php echo $this->getChildHtml('popular_searches') ?>

布局更新XML中的代码为名称指定了'popular_searches'(没有下划线) - 而不是'popularsearches'。

答案 2 :(得分:0)

您可以首先使用特定内容创建静态块,然后通过cms layout xml中的引用调用调用内容来添加内容。

在cms块中搜索并设置相同的内容块。

您也可以参考http://prashantpandeytech.blogspot.in/2015/03/magento-add-seo-content-to-home-page-end.html