Current Path : /var/www/axolotl/data/www/kirov.axolotls.ru/bitrix/components/bitrix/catalog.filter/ |
Current File : /var/www/axolotl/data/www/kirov.axolotls.ru/bitrix/components/bitrix/catalog.filter/.parameters.php |
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); /** @var array $arCurrentValues */ use Bitrix\Main\Loader; use Bitrix\Iblock; if (!Loader::includeModule("iblock")) return; $catalogIncluded = Loader::includeModule('catalog'); $iblockExists = (!empty($arCurrentValues['IBLOCK_ID']) && (int)$arCurrentValues['IBLOCK_ID'] > 0); $arIBlockType = CIBlockParameters::GetIBlockTypes(); $arIBlock = array(); $iblockFilter = ( !empty($arCurrentValues['IBLOCK_TYPE']) ? array('TYPE' => $arCurrentValues['IBLOCK_TYPE'], 'ACTIVE' => 'Y') : array('ACTIVE' => 'Y') ); $rsIBlock = CIBlock::GetList(array('SORT' => 'ASC'), $iblockFilter); while ($arr = $rsIBlock->Fetch()) $arIBlock[$arr['ID']] = '['.$arr['ID'].'] '.$arr['NAME']; unset($arr, $rsIBlock, $iblockFilter); $arProperty = array(); $arProperty_N = array(); if ($iblockExists) { $propertyIterator = Iblock\PropertyTable::getList(array( 'select' => array('ID', 'IBLOCK_ID', 'NAME', 'CODE', 'PROPERTY_TYPE'), 'filter' => array('IBLOCK_ID' => $arCurrentValues['IBLOCK_ID'], '=ACTIVE' => 'Y'), 'order' => array('SORT' => 'ASC', 'NAME' => 'ASC') )); while ($property = $propertyIterator->fetch()) { $propertyCode = (string)$property['CODE']; if ($propertyCode == '') $propertyCode = $property['ID']; $propertyName = '['.$propertyCode.'] '.$property['NAME']; if ($property['PROPERTY_TYPE'] != Iblock\PropertyTable::TYPE_FILE) $arProperty[$propertyCode] = $propertyName; if ($property['PROPERTY_TYPE'] == Iblock\PropertyTable::TYPE_NUMBER) $arProperty_N[$propertyCode] = $propertyName; } unset($propertyCode, $propertyName, $property, $propertyIterator); } $arOffers = CIBlockPriceTools::GetOffersIBlock($arCurrentValues["IBLOCK_ID"]); $OFFERS_IBLOCK_ID = is_array($arOffers)? $arOffers["OFFERS_IBLOCK_ID"]: 0; $arProperty_Offers = array(); if($OFFERS_IBLOCK_ID) { $rsProp = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$OFFERS_IBLOCK_ID)); while($arr=$rsProp->Fetch()) { if($arr["PROPERTY_TYPE"] != "F") $arProperty_Offers[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"]; } } $arPrice = ($catalogIncluded ? CCatalogIBlockParameters::getPriceTypesList() : $arProperty_N); $arComponentParameters = array( "GROUPS" => array( "PRICES" => array( "NAME" => GetMessage("IBLOCK_PRICES"), ), ), "PARAMETERS" => array( "IBLOCK_TYPE" => array( "PARENT" => "DATA_SOURCE", "NAME" => GetMessage("IBLOCK_TYPE"), "TYPE" => "LIST", "ADDITIONAL_VALUES" => "Y", "VALUES" => $arIBlockType, "REFRESH" => "Y", ), "IBLOCK_ID" => array( "PARENT" => "DATA_SOURCE", "NAME" => GetMessage("IBLOCK_IBLOCK"), "TYPE" => "LIST", "ADDITIONAL_VALUES" => "Y", "VALUES" => $arIBlock, "REFRESH" => "Y", ), "PREFILTER_NAME" => array( "PARENT" => "DATA_SOURCE", "NAME" => GetMessage("CP_CF_PREFILTER_NAME"), "TYPE" => "STRING", "DEFAULT" => "preFilter", ), "FILTER_NAME" => array( "PARENT" => "DATA_SOURCE", "NAME" => GetMessage("IBLOCK_FILTER_NAME_OUT"), "TYPE" => "STRING", "DEFAULT" => "arrFilter", ), "FIELD_CODE" => CIBlockParameters::GetFieldCode( GetMessage("IBLOCK_FIELD"), "DATA_SOURCE", array("SECTION_ID"=>true) ), "PROPERTY_CODE" => array( "PARENT" => "DATA_SOURCE", "NAME" => GetMessage("IBLOCK_PROPERTY"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arProperty, "ADDITIONAL_VALUES" => "Y", ), "OFFERS_FIELD_CODE" => CIBlockParameters::GetFieldCode(GetMessage("CP_BCF_OFFERS_FIELD_CODE"), "DATA_SOURCE"), "OFFERS_PROPERTY_CODE" => array( "PARENT" => "DATA_SOURCE", "NAME" => GetMessage("CP_BCF_OFFERS_PROPERTY_CODE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arProperty_Offers, "ADDITIONAL_VALUES" => "Y", ), "PRICE_CODE" => array( "PARENT" => "PRICES", "NAME" => GetMessage("IBLOCK_PRICE_CODE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arPrice, ), "CACHE_TIME" => Array("DEFAULT"=>36000000), "CACHE_GROUPS" => array( "PARENT" => "CACHE_SETTINGS", "NAME" => GetMessage("CP_BCF_CACHE_GROUPS"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", ), "LIST_HEIGHT" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("IBLOCK_LIST_HEIGHT"), "TYPE" => "STRING", "DEFAULT" => "5" ), "TEXT_WIDTH" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("IBLOCK_TEXT_WIDTH"), "TYPE" => "STRING", "DEFAULT" => "20" ), "NUMBER_WIDTH" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("IBLOCK_NUMBER_WIDTH"), "TYPE" => "STRING", "DEFAULT" => "5" ), "SAVE_IN_SESSION" => array( "PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("IBLOCK_SAVE_IN_SESSION"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", ), "PAGER_PARAMS_NAME" => array( "PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("CP_BCF_PAGER_PARAMS_NAME"), "TYPE" => "STRING", "DEFAULT" => "arrPager" ), ), ); if(!$OFFERS_IBLOCK_ID) { unset($arComponentParameters["PARAMETERS"]["OFFERS_FIELD_CODE"]); unset($arComponentParameters["PARAMETERS"]["OFFERS_PROPERTY_CODE"]); }