Magento 'Sort By' - Как заставить Magento забыть, какой вариант был выбран - PullRequest
3 голосов
/ 24 декабря 2011

Что-то, чего я раньше не замечал, это то, что Magento запомнит, какую опцию вы выбрали для «Сортировать по» на страницах списка категорий.Так что, если вы перейдете на страницу категории и скажем, что сортировка по умолчанию упорядочена по цене, если вы вместо этого измените сортировку на упорядочение по имени, страница перезагрузится, и все в порядке.

Однако, если выудалите переменную (и) get в URL и перезагрузите страницу, она по-прежнему сортируется по имени, а не возвращается к цене.

Я думал, что это была проблема, специфичная для сайта, над которым я работаю, поскольку есть некоторые нестандартные вещи, происходящие со сборкой и сортировкой коллекций и тому подобное, но сейчас я проверил несколько других сайтов Magento(некоторые из которых я случайно обнаружил в Интернете), и все они делают одно и то же.

Кто-нибудь знает, как это «запоминают»?Хранится ли это в сеансе пользователя?Я думаю, что это часть кэширования, но этот сайт все еще находится в разработке, и поэтому кэширование отключено.

Это не так уж важно, но похоже, что это ошибка.

Ответы [ 2 ]

5 голосов
/ 24 декабря 2011

Параметр порядка сортировки сохраняется в сеансе.См. Mage_Catalog_Block_Product_List_Toolbar::getCurrentOrder метод.Вы можете отключить его, вызвав метод Mage_Catalog_Block_Product_List_Toolbar::disableParamsMemorizing или установив params_memorize_allowed в сеансе каталога.Я имею в виду Mage::getSingleton('catalog/session')->setParamsMemorizeAllowed(true)

3 голосов
/ 13 июля 2017

Что мне сработало, так это добавление в local.xml:

<!--
 Category default layout
-->
<catalog_category_default translate="label">

  <!-- Disable memorizing toolbar parameters -->
  <reference name="content">
    <reference name="product_list_toolbar">
      <action method="disableParamsMemorizing" />
    </reference>
  </reference>

</catalog_category_default>


<!--
  Category layered navigation layout
-->
<catalog_category_layered translate="label">

  <!-- Disable memorizing toolbar parameters -->
  <reference name="content">
    <reference name="product_list_toolbar">
      <action method="disableParamsMemorizing" />
    </reference>
  </reference>

</catalog_category_layered>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...