партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Простой адаптивный форум - модуль для битрикс
Условия поставки: лицензия на использование в любом количестве проектов
Способ загрузки: загрузка в автоматическом режиме через личный кабинет
Розничная цена
300 рублей
Банковские карты
Электронные деньги
Терминалы
Счет

Дополняет меню ссылками для фильтрации элементов инфоблоков. Используется в файлах типа .тип_меню.menu_ext.php.

Обратите внимание, в данный момент компонент работает только с обычным компонентом фильтра (catalog.filter) и не работает с умным фильтром (catalog.smart.filter).

Иногда удобно сделать ссылки прямо из меню, которые будут вести напрямую на страницу списка элементов с фильтрацией по каком-либо свойству. Данный компонент позволяет сформировать такие ссылки при помощи стандартного механизма menu_ext. Компонент работает со свойствами типа "Список" и "Привязка к элементам" (а также "Привязка к элементам в виде списка", "Привязка к элементам с автозаполнением").

Пример подключения (при размещении в компонента в папке /bitrix/components/grain/):

Файл .left.menu_ext.php:
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

global $APPLICATION;

$aMenuLinksExt1 = $APPLICATION->IncludeComponent(
	"grain:menu.filter",
	"",
	Array(
		"IBLOCK_TYPE" => "recipe", // Тип информационного блока
		"IBLOCK_ID" => "11", // ID информационного блока
		"IBLOCK_CODE" => "", // Или символьный код информацмонного блока
		"SECTION_PAGE_URL" => "/catalog/?SECTION_ID=5", // URL страницы со списком элементов
		"PROPERTY_CODE" => array("REC_CUISINE", "REC_TYPE", "REC_CHAR"), // Символьные коды 
		// свойств, по которым будет осуществляться фильтрация
		"FILTER_NAME" => "arrFilter", // Имя переменной фильтра
		"INCLUDE_REQUEST_VARS" => array("lang"), // Массив параметров из исходного адреса, 
		// которые должны быть включены в адрес ссылок для фильтрации
		"ADD_LEVEL" => "0", // Добавочное значение DEPTH_LEVEL (например, если нужно включить
		// инфоблок в структуру)
		"CACHE_TYPE" => "A", // Тип кеширования
		"CACHE_TIME" => "36000000" // Время кеширования в секундах
	)
);

$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt1);
?>

Перед компонентом фильтра нужно разместить код:
<?
parse_str(str_replace(Array("_QLF_","_QRT_"),Array("[","]"),$_SERVER["QUERY_STRING"]),$vars);
foreach($vars as $k=>$v) {
	$_REQUEST[$k]=$v;
	$_GET[$k]=$v;
}
?>
Данный код необходим для выделения текущих пунктов меню. Т.к. стандартный компонент меню в битрикс не распознает массивы в строке адреса, все квадратные скобки в адресах заменяются компонентом на "_QLF_" и "_QRT_". Поэтому перед передачей компоненту фильтра, необходимо обратное преобразование и обработка адреса при помощи parse_str, чтобы в массивах $_GET и $_REQUEST уже оказались необходимые массивы.

Примечание: данный компонент не заменяет компонент фильтра, т.к. компонент фильтра инициализирует переменные. Если компонент фильтра не нужен на странице, подключайте его с пустым шаблоном.



Назад в раздел
Главная   ·   Модули для 1С-Битрикс   ·   Типовые услуги   ·   Форум   ·   Блог   ·   Контакты
Рейтинг@Mail.ru