0

高度な検索ページのバグを修正しようとしています。問題は、「赤」と表示されているキーを検索すると、すべての結果が表示されることです。例:赤の場合、ページネーションの制限がある場合でも、1ページに62件の結果が表示されます。ページ付けは、1ページあたり27個の製品を表示するように設定されています。それでも、このページには62の製品すべてが表示されます。つまり、最初はページネーションが機能していません。

これについて調査したところ、レイヤーナビゲーションが問題の原因であることがわかりました。settings(catalogsearch.xml)ファイルからレイヤーナビゲーションを削除してみましたが、検索は非常に高速で、ページ付けも正常に機能していました。ページネーションとレイヤーナビゲーションの両方が必要です。

これが高度な検索ブロックの私のコードです。

<catalogsearch_advanced_result translate="label">
    <label>Advanced Search Result</label>
    <update handle="page_two_columns_right" />
    <!-- Mage_Catalogsearch -->
    <reference name="head">
        <action method="addJs"><script>javascript/jquery.history.js</script></action>
    </reference>
    <reference name="root">
        <action method="setTemplate"><template>page/searchresult-left.phtml</template></action>
    </reference>
    <reference name="left">
        <action method="unsetChild"><name>catalog.vertnav</name></action>

        <block type="catalogsearch/layer" name="catalogsearch.leftnav" template="catalogsearch/layer/view.phtml"/>

    </reference>
    <reference name="content">
        <block type="catalogsearch/advanced_result" name="catalogsearch_advanced_result" template="catalogsearch/advanced/result.phtml">
            <block type="catalog/product_list" name="search_result_list" template="catalog/product/list.phtml">
                <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>3</count></action>
                <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>3</count></action>
                <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
                <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                    <block type="page/html_pager" name="product_list_toolbar_pager" />
                    <action method="addAjax"><ajax>true</ajax></action>
                    <action method="addPagerLimit"><mode>grid</mode><limit>27</limit></action>
                    <action method="addPagerLimit"><mode>grid</mode><limit>54</limit></action>
                    <action method="addPagerLimit"><mode>grid</mode><limit>75</limit></action>
                    <action method="addPagerLimit"><mode>grid</mode><limit>100</limit></action>
                    <action method="addPagerLimit"><mode>grid</mode><limit>all</limit><label>All</label></action>
                </block>
                <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
            </block>
            <action method="setListOrders"/>
            <action method="setListModes"/>
            <action method="setListCollection"/>
        </block>
    </reference>
</catalogsearch_advanced_result>

最初のロードでページネーションが機能しない理由を提案してください。後でページネーションは正常に機能します。

4

1 に答える 1

0

簡単な方法があります。

属性ステータス "詳細検索で表示" を設定できます (属性管理)。

次に、template/catalogsearch/advanced/form.phtml ファイルを変更して、フォーム タグ内に次の html を配置するだけです。<input type="hidden" name="status" id="status" value="1"/>

最後に、属性フィールドから「ステータス」フィールドを削除し、open foreach の後に次のコードを配置する必要があります。<?php if($_attribute->getAttributeCode() == 'status') continue; ?>

于 2013-11-14T11:33:13.687 に答える