2014-02-24 79 views
0

此段代码位于header.phtml更新magento文件时更新XML

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

但我想将它移动到不同的文件,并将它产生在其他地方,即在..page/1column.phtml3columns.phtml

所以我复制并粘贴它,但它不会出现:(

我猜测它与XML文件有关,我看了几个vids了解它,所以我明白它的HTML,但我不明白的是它是如何在magento中使用的,或者过程如何ld要改变它

我是否可以复制和编辑原件,或者将一些东西放入我自己的local.xml文件中?

请有人解释发生了什么,或者指出一些解释这种XML用法的内容。

感谢

+0

http://stackoverflow.com/questions/6043387/magento-insert-block-into-another-without-change-template-code –

+0

通过下面的链接。 http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-4-magento-layouts-blocks-and-templates –

+0

我在这里需要此代码,并且不需要触摸xml文件结束 getLayout() - > getBlock('top.links') - > toHtml()?> – user3333427

回答

0

你做的方式,它的工作原理,但我倾向于尝试并尽可能通过local.xml文件,把我所有的更新。它使您的所有更改集中并易于追踪。

首先,你需要创建或更新您的local.xml文件,如果您还没有一个local.xml文件,你可以在

APP->前端创建一个 - > [包名称] - > [主题名称] - > layout-> local.xml

创建完成后,您可以将我在此文章中的内容完全复制到该文件中,以便开始使用该文件。

通过LOCAL.XML文件进行更新不是通过page/catalog/checkout.xml等!这将使后续升级变得更加容易。此外,您可以在一个文件中快速查看您对网站所做的所有更改。

下面的例子将其添加到将适用于所有的网页,但在容易称为根引用名模板 - > PAGE-> 1column.phtml或2column-left.phtml 3column.phtml等

<?xml version="1.0" encoding="UTF-8"?> 
<layout> 
    <default> 
     <reference name="root"> 
      <block type="page/template_links" name="top.links" as="topLinks"/> 
     </reference> 
    </default> 
</layout> 

然后使用您当前正在使用的方式调用它。

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

现在您可以像上面的部分一样使用“参考名称”和“as”名称。例如,您可以使用下面的类似设置来引用页脚块以添加搜索功能。对于教育而言,“名称”是在.phtml文件中使用的名称。和“名称”是如何在xml文件中引用块。所以在上面的例子中。我加入了搜索栏来根内容区域,然后用调用它在我的一个.phtml文件中的“作为”,“排名靠前”

<?xml version="1.0" encoding="UTF-8"?> 
<layout> 
    <default> 
     <reference name="footer"> 
      <block type="page/template_links" name="top.links" as="topLinks"/> 
     </reference> 
    </default> 
</layout> 

然后用

<?php echo $this->getChildHtml('topLinks') ?> 
叫它footer.phtml名

希望这有助于!任何问题,请随时问!无论如何,如果你这次不决定使用这种方法。希望它有助于教导一下本地文件的工作原理。