在我们的最高级别类别中有大约50个购物选项,我试图在自定义类别布局中隐藏xml代码的属性过滤器。使用此代码
<reference name="em.catalog.leftnav">
<action method="setData">
<instruction>hide_attribute_code</instruction>
<value>1</value>
</action>
但是不要隐藏该类别中的过滤器属性,请在图像
上进行检查答案 0 :(得分:3)
<catalog_category_layered translate="label">
<label>Catalog Category (Anchor)</label>
<reference name="left">
<block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
</reference>
<catalog_category_layered translate="label">
按照模板... catalog / layer / view.phtml
打开此文件并在条件或条件
上显示过滤器出现在前端的条件 <?php $_filters = $this->getFilters() ?>
<?php foreach ($_filters as $_filter): ?>
<?php if($_filter->getName() == 'Price' || $_filter->getName() == 'Category' || $_filter->getName() == 'Manufacturer' ): ?>
<?php if($_filter->getItemsCount()): ?>
<dt><?php echo $this->__($_filter->getName()) ?></dt>
<dd><?php echo $_filter->getHtml() ?></dd>
<?php endif; ?>
<?php endif; ?>
<?php endforeach; ?>
答案 1 :(得分:0)
您需要在视图图层上取消设置属性名称,因此请找到此文件:
magento/app/design/frontend/base/default/template/catalog/layer/view.phtml
编辑:
<?php if($this->canShowBlock()): ?>
<div class="block block-layered-nav">
<div class="block-title">
<strong><span><?php echo $this->__('Shop By') ?></span></strong>
</div>
<div class="block-content">
<?php echo $this->getStateHtml() ?>
<?php if($this->canShowOptions()): ?>
<p class="block-subtitle"><?php echo $this->__('Shopping Options') ?></p>
<dl id="narrow-by-list">
<?php $_filters = $this->getFilters() ?>
<?php foreach ($_filters as $_filter): ?>
<?php if($_filter->getItemsCount()): ?>
<!-- add this line start-->
<?php if($_filter->getName() != "Color"): ?>
<!-- add this line end-->
<dt><?php echo $this->__($_filter->getName()) ?></dt>
<dd>
<?php echo $_filter->getHtml() ?>
</dd>
<!-- add this line start-->
<?php endif; ?>
<!-- add this line end-->
<?php endif; ?>
<?php endforeach; ?>
</dl>
<script type="text/javascript">decorateDataList('narrow-by-list')</script>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
希望你现在可以开始工作!
答案 2 :(得分:0)
我不知道您的分机导航可靠的扩展程序,但这应该有效:
<reference name="em.catalog.leftnav">
<action method="hideAttributes">
<code>hide_attribute_code</code>
</action>
</reference>
转到构建过滤器的app/code/POOL/YOUR/MODULE/Blocks/...
中的文件。如果您的模板具有getFilters()
之类的内容,则可以尝试使用echo get_class($this)
来获取正确的类/文件。在那里你必须做两件事:
1。)添加一个新方法(在这种情况下你可以设置逗号分隔属性代码)
public function hideAttributes($attributeCodes)
{
$attributeCodes = array_map('trim', explode(',', $attributeCodes));
$this->setData('hide_attributes', $attributeCodes);
}
2。)搜索收集过滤器的功能,例如getFilters()
并添加
$filterableAttributes = // some code
foreach ($filterableAttributes as $attribute) {
if (!in_array($attribute->getAttributeCode(), $this->getHideAttributes())) {
...
}
}