Поиск показывает все продукты с навигацией по слоям - PullRequest
0 голосов
/ 02 января 2012

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

Подскажите, пожалуйста, почему нумерация страниц не работает при первой загрузке. Позже нумерация страниц работает нормально.

1 Ответ

0 голосов
/ 14 ноября 2013

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

Вы можете установить статус атрибута «видимый в расширенном поиске» (в администрировании атрибутов).

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

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

...