![](/img/trans.png)
[英]Magento - injecting custom phtml block into 2columns-left.phtml not working
[英]Magento searchbox - How to add the Searchbox on the left side of a 3columns.phtml page?
是否可以在3columns.phtml中添加搜索框 (例如我的类别)。
例如,我想在我的产品页面左侧:
因此,在3columns.phtml中,我有这条线,即左div。
<div class="col-left sidebar"><?php echo $this->getChildHtml('left') ?></div>
所以* 为了使搜索框显示在左侧,我应该在 哪种代码中 添加? *
有什么建议吗?
这是设计布局文件夹中文件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">
表示我们正在更改左栏,“ left”是其块名。 现在让我们看一下下面的代码块:
type="core/template"
-此类型表示要使用的类,通常与app/code/core/Mage/*
关联,但是可以通过将类文件复制到app/code/local/Mage/*
来覆盖app/code/local/Mage/*
目录,以及表示扩展名的类,例如app/code/community/another_extension
。
name="searchbox"
-这是将在布局中引用的名称。 您可以给它其他东西,但要确保它与现有的块名不冲突。
template="path/to/searchbox"
-在此处输入将要加载的模板文件的路径。
after="sibling.blockName"
-这标记了它在布局顺序中的放置位置。 仅当父块(在本例中为引用的“ left”块)基本上设置为<?php echo $this->getChildHtml(''); ?>
时,才真正需要设置此值<?php echo $this->getChildHtml(''); ?>
<?php echo $this->getChildHtml(''); ?>
。 ('')
没有参数意味着它将按照xml定义的顺序加载所有子块。
在<?php echo $this->getChildHtml('left') ?>
,它正在调用name="left"
的块。 给它起一个名字之后,您也可以在<block />
标记内使用as="search.box.alias"
给它另一个别名, search.box.alias
也可以是您想要的任何东西,只要它不会引起任何问题。冲突。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.