2014-02-26 70 views
0

这可能是一个非常基本的问题。我在我的page.xml中创建了一个自定义块,并将其放置在标题块中。但它显示在我的页面底部。我搜索了教程和用户指南,但我找不到任何东西。Magento块显示在页脚?

<block type="page/html_header" name="header" as="header"> 
    <block type="page/template_links" name="serie.menu" as="serieMenu" output="toHtml" template="page/html/series.phtml" /> 
</block> 

回答

1

检查您的HTML,查看块HTML在呈现的位置。如果它在标题中输出HTML,但出现在底部,则最有可能将CSS定位到您看到它的块。

我建议不要修改page.xml,而是在布局目录中创建一个local.xml文件,并在其中包含您的块定义。您可以使用<reference>标记来定位特定的块,并在其中注入块。

例如,由于您想要定位名为header的块,因此可以使用<reference name="header">来定位该特定块,并定义您自己的块定义。

要做到这一点,您将创建在你的主题目录中的文件/layouts/local.xml文件,并在文件中包含以下内容:

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

    <!-- Default handle, loaded on most pages --> 
    <default> 
     <reference name="header"> 
      <block type="page/template_links" name="serie.menu" as="serieMenu" output="toHtml" template="page/html/series.phtml" /> 
     </reference> 
    </default> 

</layout> 

现在你的块的定义头,你现在可以在你的templates/page/header.phtml文件中调用它。您可以输出您的块这样的:

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

记住modifiyng布局文件会要求你刷新你的Magento缓存,如果启用了高速缓存管理。

+0

让我更接近理解它是如何工作的,但并不能解决问题。 HTML完全处于最底层。我的主题(现代)已经有一个page.xml,所以我编辑它,但为了测试,我按照你的建议做了。 我做了一个包含你在这里写下的文本的local.xml。 我把getChildHtml放在我的header.phtml 中,并写了一些代码(但是它也可能包含回声“test”;在/ html/series.phtml中 还是输出在页脚中所以我想我做了输出:http://magento.tijdelijkonline.nl/magento –

+0

没关系,我误写了我的blockname在childHtml中。Thanx! –