2012-01-02 5 views
0

Я пытаюсь исправить ошибку на странице расширенного поиска. Проблема в том, что если я ищу некоторые клавиши, скажу «красный», тогда все результаты появятся. например: для красных отображает 62 результата на одной странице, хотя существует предел разбивки на страницы. Пагинация установлена ​​для отображения 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

Существует простой способ.

Вы можете установить статус атрибута «visible in advanced search» (при администрировании атрибутов).

Тогда вам только нужно изменить/catalogsearch/расширенный/form.phtml файл шаблона, размещая внутри тега формы этот HTML: <input type="hidden" name="status" id="status" value="1"/>

И, наконец, что нужно удалить поле «статус» из полей атрибутов, размещение после открытой foreach этот код: <?php if($_attribute->getAttributeCode() == 'status') continue; ?>

Смежные вопросы