()Сделал сортировку товара вот по этому уроку http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=3796, данные из $_GET засовываю в сессию пользователя чтобы сортировка сохранялась при хождении по страницам (в постраничной навигации) каталога, для этого в init.php прописал такой код:
Код
/*Засовываем переданные через GET параметры сортировки и количество элементов на странице в сессию пользователя*/
AddEventHandler("main", "OnPageStart", Array("CatalogFilterFromSessionClass", "CatalogFilterFromSession"));
class CatalogFilterFromSessionClass
{
public function CatalogFilterFromSession()
{
if(isset($_GET['sort']))
{
if ($_GET["sort"] == "price")
{
session_start();
$_SESSION['ELEMENT_SORT_FIELD'] = 'catalog_PRICE_1';
}
elseif($_GET["sort"] == "name")
{
session_start();
$_SESSION['ELEMENT_SORT_FIELD'] = 'name';
}
elseif ($_GET["sort"] == "shows")
{
session_start();
$_SESSION['ELEMENT_SORT_FIELD'] = 'shows';
}
}
if(isset($_GET["long_lists"]))
{
session_start();
$_SESSION['PAGE_ELEMENT_COUNT'] = $_GET["long_lists"];
}
if(isset($_GET["sort_order"]))
{
session_start();
$_SESSION['ELEMENT_SORT_ORDER'] = $_GET["sort-order"];
}
}
}
Сама форма расположена в шаблоне компонента catalog.section выгладит так:
Просто подсвечивают либо делают выбранным элемент выпадающего списка, если параметры из $arParams совпадают с параметрами пункта списка. Например этот пункт будет выделен если $arParams['ELEMENT_SORT_FIELD'] = shows и $arParams["ELEMENT_SORT_ORDER"] = DESC. <option <?=ShowSelected("shows","DESC",$arParams['ELEMENT_SORT_FIELD'],$arParams["ELEMENT_SORT_ORDER"] ?> value="shows_down" >популярности (по убыванию)</option> . Как раз-таки этот момент и не работает. Я думаю это из-за кеша либо из-за ошибок в init.php, но я не пойму как правильно изменить мой код так чтобы форма перестала кешироваться?