如何在页脚下方显示toplinks,
我在Footer.phtml文件中使用了以下代码,
<?php echo $this->getChildHtml('topLinks'); ?>
但是没有显示链接?我怎么能这样做?
提前致谢
footer.phtml
<div class="footer-container">
<div class="footer">
<?php echo $this->getChildHtml() ?>
<?php echo $this->getChildHtml('newsletter') ?>
<?php //echo $this->getLayout()->createBlock('cms/block')->setBlockId('sample_links')->toHtml() ?>
<?php echo $this->getChildHtml('samplelinks') ?>
<?php echo $this->getChildHtml('top.links'); ?>
<p class="bugs"><?php echo $this->__('Help Us to Keep Magento Healthy') ?> - <a href="http://www.magentocommerce.com/bug-tracking" onclick="this.target='_blank'"><strong><?php echo $this->__('Report All Bugs') ?></strong></a> <?php echo $this->__('(ver. %s)', Mage::getVersion()) ?></p>
<address><?php echo $this->getCopyright() ?></address>
</div>
</div>
</div>
答案 0 :(得分:10)
经典学习 - 主题 - Magento问题!
一个块与另一个块的关系在模板中最为明显(正如您当前的努力所示)。父(脚注,在您的情况下)触发另一个块的渲染的能力要求建立父子关系。这通常发生在布局更新XML中。
如果此关系是核心关系,您可能会在基本/默认主题的 layout / page.xml 文件中看到以下内容:
<block type="page/html_footer" name="footer" ...>
<!-- other child block directives -->
<block type="page/template_links" name="top.links" as="topLinks"/>
</block>
在您的情况下,因为您要在两个现有块之间添加关系,所以可以在名为 local.xml 的特殊最终用户布局xml文件中设置块实例之间的关系。放置在自定义主题的布局文件夹中。这是它应该是什么样子:
<?xml version="1.0"?>
<layout>
<default><!-- effectively: "do this on all pages" -->
<reference name="footer"><!-- parent block -->
<action method="insert"><!-- this PHP class method sets the relationship -->
<block_name_to_insert>top.links</block_name_to_insert><!--use the block name in the layout, not the alias. See Mage_Core_Block_Abstract::insert() -->
<sort_relative_to_other_childname/><!-- empty val is fine here -->
<sort_before_or_after/><!-- not relevant -->
<alias>topLinks</alias><!-- because you are using the original alias, need to re-specify that here -->
</action>
</reference>
</default>
</layout>