1

私のショップには、単一のサブカテゴリーを含む単一のルートカテゴリーがあります。ナビゲーション用の左側の列で動的属性フィルターを有効にするアンカーとして設定されています。

フィルターは正常にレンダリングされ、ホームページから問題なく動作しますが、CMS ページ (またはホームページ以外のページ) に移動すると、URL が正しくありません。

ホームページから:

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

お問い合わせページから:

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

ご覧のとおり、CMS ページの URL をベース パスとして使用しています。

フィルター 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 つだけですが、これで問題なく動作します)。

4

1 に答える 1

-1

次のように、両方の置換にスラッシュを使用する必要があります。

<?php 

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

?>
于 2012-10-29T21:23:38.480 に答える