是否可以在 3columns.phtml 中添加搜索框(例如我的类别。)
例如,我想在左侧的产品页面上找到:
所以在3columns.phtml中我有这一行,左边的div。
<div class="col-left sidebar"><?php echo $this->getChildHtml('left') ?></div>
所以* 我应该包含哪种代码和 以便搜索框出现在左侧? *
有什么建议吗?
答案 0 :(得分:2)
这适用于设计版面文件夹中的文件local.xml。如果你还没有创建一个,那就是:
/app/design/frontend/your_package/your_theme/layout/local.xml
<强>那个local.xml 强>
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="left">
<block type="core/template" name="searchbox" template="path/to/searchbox.phtml" after="sibling.blockName"/>
</reference>
</default>
</layout>
刷新缓存,这应该适用于设置为左列的所有页面。
的说明强>
这是Magento为加载布局块而构建的少数方法之一。所有布局文件都需要前几个标签,<default>
标记要应用于所有页面的更新句柄。 <reference name="left">
表示我们正在改变左栏,“左”是其栏名。现在让我们看一下下面的块:
type="core/template"
- 此类型表示要使用的类,通常与app/code/core/Mage/*
绑定,但可以通过将类文件复制到app/code/local/Mage/*
目录来覆盖,如以及表示app/code/community/another_extension
。
name="searchbox"
- 这是它将在布局中引用的名称。您可以给它别的东西,但要确保它不会与现有的块名称冲突。
template="path/to/searchbox"
- 您可以在此处输入要加载的模板文件的路径。
after="sibling.blockName"
- 这标记了将其放置在布局顺序中的位置。当父块(在这种情况下,引用的“左”块)基本上设置为<?php echo $this->getChildHtml(''); ?>
时,才真正需要设置。 ('')
中没有参数意味着它将按照xml定义的顺序加载所有子块。
在<?php echo $this->getChildHtml('left') ?>
的情况下,它正在调用具有name="left"
的块。在为其命名后,您可以使用as="search.box.alias"
标记中的<block />
为其提供另一个别名,search.box.alias
也可以是您想要的任何内容,前提是它不会导致任何冲突。< / p>