Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
то ждем ваше обращение в нашей службе тех поддержки.
Я раньше делал в таком же ключе, только устанавливал переменные в $_SESSION.
Прочитал как описано тут, сделал свою подобную версию.
Только не люблю переключалки с кнопками и через POST, сделал просто через передачу параметра в URL
&sort=price_desc, $view=list или &count=5 (или все вместе в URL)
Нет проблем с лишними перезагрузками, переадресациями и переотправками данных.
Вообщем готовое решение, может не идеальное, но на моем проекте рабочее.
Оформление минимальное. Если кому надо, то вот:
ЗАДАЧА
Делаю переключалки (selectors):
- представления каталога (view)
- количества товаров на странице (count)
- типа сортировки (sort)
Возможные значения переменных:
- view: list, board (названия шаблонов)
- count: 1,2,3,5,all (пока мало товаров для проверки взял такие значения)
- sort: price_asc, price_desc, sort_asc (цена вниз, цена вверх, по порядку)
РЕШЕНИЕ
В файле \bitrix\templates\[имя шаблона сайта]\components\bitrix\catalog\[имя шаблона комплексного компонента]\section.php
прямо со 2-3 строчки вставляем код:
Далее в этом же файле подставляем полученные выше переменные в подключаемый шаблон bitrix:catalog.section
Назад в раздел
Прочитал как описано тут, сделал свою подобную версию.
Только не люблю переключалки с кнопками и через POST, сделал просто через передачу параметра в URL
&sort=price_desc, $view=list или &count=5 (или все вместе в URL)
Нет проблем с лишними перезагрузками, переадресациями и переотправками данных.
Вообщем готовое решение, может не идеальное, но на моем проекте рабочее.
Оформление минимальное. Если кому надо, то вот:
ЗАДАЧА
Делаю переключалки (selectors):
- представления каталога (view)
- количества товаров на странице (count)
- типа сортировки (sort)
Возможные значения переменных:
- view: list, board (названия шаблонов)
- count: 1,2,3,5,all (пока мало товаров для проверки взял такие значения)
- sort: price_asc, price_desc, sort_asc (цена вниз, цена вверх, по порядку)
РЕШЕНИЕ
В файле \bitrix\templates\[имя шаблона сайта]\components\bitrix\catalog\[имя шаблона комплексного компонента]\section.php
прямо со 2-3 строчки вставляем код:
Код |
---|
<? // получаем значения переменных из куки или ставим дефолтные $view = $APPLICATION->get_cookie('view') ? $APPLICATION->get_cookie("view") : "board"; $sort = $APPLICATION->get_cookie('sort') ? $APPLICATION->get_cookie("sort") : "sort_asc"; $count = $APPLICATION->get_cookie('count') ? $APPLICATION->get_cookie("count") : "3"; // устанавливаем куки и присваиваем значение соответствующим переменным, если таковые есть в REQUEST if(isset($_REQUEST["view"]) ) { $APPLICATION->set_cookie("view", strVal($_REQUEST["view"]) ); $view = strVal($_REQUEST["view"]) ; } if(isset($_REQUEST["sort"]) ) { $APPLICATION->set_cookie("sort", strVal($_REQUEST["sort"] )); $sort = strVal($_REQUEST["sort"]) ; } if(isset($_REQUEST["count"]) ) { $APPLICATION->set_cookie("count", strVal($_REQUEST["count"]) ); $count = strVal($_REQUEST["count"]) ; } // разобьем переменную sort на две element_sort_field и element_sort_order, и заодно исправим (price -> catalog_PRICE_1) $ar_sort=explode("_", $sort); $element_sort_field = ($ar_sort[0] == "price" ) ? "catalog_PRICE_1" : $ar_sort[0]; $element_sort_order = $ar_sort[1]; // вывод переменных для проверки echo "view=".$view."<br/>"; echo "sort=".$sort."<br/>"; echo "element_sort_field=".$element_sort_field."<br/>"; echo "element_sort_order=".$element_sort_order."<br/>"; echo "count=".$count."<br/><hr/>"; // вывод панели переключалок (с выделением жирным активных значений) ?> <!--noindex--> <table class="selectors" width="100%" cellpadding="3" cellspacing="0" border="0"> <tr> <td align="left"> <a<?if($view=="board") :?> style="font-weight:bold"<?endif?> href="<?=$APPLICATION->GetCurPageParam("view=board", Array("view", "sort", "count") )?>" rel="nofollow">Плитка</a> / <a<?if($view=="list") :?> style="font-weight:bold"<?endif?> href="<?=$APPLICATION->GetCurPageParam("view=list", Array("view", "sort", "count") )?>" rel="nofollow">таблица</a> </td> <td align="center"> <a<?if($count=="1") :?> style="font-weight:bold"<?endif?> href="<?=$APPLICATION->GetCurPageParam("count=1", Array("view", "sort", "count") )?>" rel="nofollow">1</a> / <a<?if($count=="2") :?> style="font-weight:bold"<?endif?> href="<?=$APPLICATION->GetCurPageParam("count=2", Array("view", "sort", "count") )?>" rel="nofollow">2</a> / <a<?if($count=="3") :?> style="font-weight:bold"<?endif?> href="<?=$APPLICATION->GetCurPageParam("count=3", Array("view", "sort", "count") )?>" rel="nofollow">3</a> / <a<?if($count=="5") :?> style="font-weight:bold"<?endif?> href="<?=$APPLICATION->GetCurPageParam("count=5", Array("view", "sort", "count") )?>" rel="nofollow">5</a> / <a<?if($count=="all") :?> style="font-weight:bold"<?endif?> href="<?=$APPLICATION->GetCurPageParam("count=all", Array("view", "sort", "count") )?>" rel="nofollow">все</a> </td> <td align="right"> <a<?if($sort=="price_desc") :?> style="font-weight:bold"<?endif?> href="<?=$APPLICATION->GetCurPageParam("sort=price_desc", Array("view", "sort", "count") )?>" rel="nofollow">По цене вниз</a> / <a<?if($sort=="price_asc") :?> style="font-weight:bold"<?endif?> href="<?=$APPLICATION->GetCurPageParam("sort=price_asc", Array("view", "sort", "count") )?>" rel="nofollow">по цене вверх</a> / <a<?if($sort=="sort_asc") :?> style="font-weight:bold"<?endif?> href="<?=$APPLICATION->GetCurPageParam("sort=sort_asc", Array("view", "sort", "count") )?>" rel="nofollow">по порядку</a> </td> </tr> </table> <!--/noindex--> |
Далее в этом же файле подставляем полученные выше переменные в подключаемый шаблон bitrix:catalog.section
Код |
---|
<?$APPLICATION->IncludeComponent( "bitrix:catalog.section", $view, Array( ... "ELEMENT_SORT_FIELD" => $element_sort_field, "ELEMENT_SORT_ORDER" => $element_sort_order, ... "PAGE_ELEMENT_COUNT" => ($count=="all" ;) ? "1000000" : $count, ... ;) , $component ); ?> |
Назад в раздел
Подписаться на новые материалы раздела: