2012-01-02 6 views
0

詳細検索ページのバグを修正しようとしています。 問題は、いくつかのキーを検索して "赤"と表示され、すべての結果が表示された場合です。例:ページングの制限があるにもかかわらず、赤の場合は62ページの結果が1ページに表示されます。ページ毎に27の商品を表示するように設定しました。しかし、このページには62の製品がすべて表示されています。 これは、最初にページネーションが機能していないことを意味します。検索は、レイヤーナビゲーションの全製品を表示します。

これについていくつかの調査を行い、レイヤーナビゲーションが問題の原因であることがわかりました。私は設定(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> 

最初の読み込みでページネーションが機能しない理由をご提案ください。後でページ区切りは正常に動作します。

+0

私は最初のページネーションの問題を修正しました。しかし、まだレイヤーナビゲーションのパフォーマンスを修正することはできません。まだ遅いです。 –

+0

$ this-> drawOpenCategoryItem()この関数は検索を非常に遅くしています。 /app/code/local/Mage/CatalogSearch/Block/Advanced/Navigation.phpにあります。 1つのカテゴリをとり、子カテゴリが存在するかどうかをチェックします。同じようにもう一度ループに入り、他のカテゴリに対して繰り返される場合はチェックします。 –

答えて

0

簡単な方法があります。

属性のステータスを「詳細検索で表示可能」(属性管理内)に設定できます。オープン後に置き、<input type="hidden" name="status" id="status" value="1"/>

そしてfinalyあなたは属性フィールドから「状態」フィールドを削除する必要があります。

その後、あなただけのformタグ内でこのHTMLを配置し、テンプレート/ catalogsearch /高度/ form.phtmlファイルを変更する必要がこのコードをforeach:<?php if($_attribute->getAttributeCode() == 'status') continue; ?>

関連する問題