2012-10-29 48 views
1

我有一个单一的根类别,其中包含我店中的一个子类别。它被设置为启用动态属性过滤器在我的左侧栏进行导航。Magento - 侧栏类别过滤器,网址不是从根开始

虽然过滤器渲染罚款,当我浏览到CMS页面(或任何其他页面,然后在主页上)完美地从主页,作品的网址是不正确的,例如

从主页:

http://www.domain.com/category_name.html?price=10-20

在联系我们页面:

http://www.domain.com/contacts/category_name.html?price=10-20

正如你看到的,它的使用CMS页面URL为基础路径。

没有设置过滤网址。

我使用下面的代码显示过滤器侧边栏导航:

<?php if($this->canShowBlock()): ?> 
<div class="product-range"> 
    <h2><?php echo $this->__('Browse Products') ?></h2> 
    <?php echo $this->getStateHtml() ?> 
    <?php if($this->canShowOptions()): ?> 
      <?php $_filters = $this->getFilters() ?> 
      <?php foreach ($_filters as $_filter): ?> 
       <?php if($_filter->getItemsCount()): ?> 
      <nav> 
       <dl> 
        <dt><?php echo $this->__('Browse by '.$_filter->getName()); ?></dt> 
        <dd> 
         <?php echo str_replace(array('?','/?'), array('tapes.html?','/tapes.html?'), $_filter->getHtml()) ?> 
        </dd> 
       </dl> 
      </nav> 
       <?php endif; ?> 
      <?php endforeach; ?> 
    <?php endif; ?> 
</div> 
<?php endif; ?> 

“tapes.html”是类别URL(!我只有一个类别,这工作正常)

回答

-1

你可能应该使用斜线这两个替换这样的:

<?php 

echo str_replace(array('?','/?'), 
       array('/tapes.html?','/tapes.html?'), 
       $_filter->getHtml()) 

?> 
+0

嗯,不知道这会有很大的区别。将尝试这一切,并报告回来! (我使用“../tapes.html?”取得了轻微的成功,但在某些情况下失败了。 –

+0

没有骰子。在CMS页面上,例如Product Advice,过滤器链接显示为“http://www.domain。 COM /产品咨询/ tapes.html?价格= 10-20" –