%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/catalog.search/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/catalog.search/.parameters.php |
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); /** @var array $arCurrentValues */ /** @global CUserTypeManager $USER_FIELD_MANAGER */ global $USER_FIELD_MANAGER; if (!CModule::IncludeModule("iblock")) return; if (!CModule::IncludeModule("search")) return; $boolCatalog = CModule::IncludeModule("catalog"); $arIBlockType = CIBlockParameters::GetIBlockTypes(); $arIBlock = array(); $rsIBlock = CIBlock::GetList(array("sort" => "asc"), array( "TYPE" => $arCurrentValues["IBLOCK_TYPE"], "ACTIVE" => "Y", )); while ($arr = $rsIBlock->Fetch()) $arIBlock[$arr["ID"]] = "[".$arr["ID"]."] ".$arr["NAME"]; $arProperty = array(); $arProperty_LNS = array(); $arProperty_N = array(); $arProperty_X = array(); if ($arCurrentValues['IBLOCK_ID'] > 0) { $rsProp = CIBlockProperty::GetList(array( "sort" => "asc", "name" => "asc", ), array( "IBLOCK_ID" => $arCurrentValues["IBLOCK_ID"], "ACTIVE" => "Y", )); while ($arr = $rsProp->Fetch()) { if ($arr["PROPERTY_TYPE"] != "F") $arProperty[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"]; if ($arr["PROPERTY_TYPE"] == "N") $arProperty_N[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"]; if ($arr["PROPERTY_TYPE"] != "F") { if ($arr["MULTIPLE"] == "Y") $arProperty_X[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"]; elseif ($arr["PROPERTY_TYPE"] == "L") $arProperty_X[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"]; elseif ($arr["PROPERTY_TYPE"] == "E" && $arr["LINK_IBLOCK_ID"] > 0) $arProperty_X[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"]; } } } $arProperty_UF = array(); $arSProperty_LNS = array(); $arUserFields = $USER_FIELD_MANAGER->GetUserFields("IBLOCK_".$arCurrentValues["IBLOCK_ID"]."_SECTION", 0, LANGUAGE_ID); foreach ($arUserFields as $FIELD_NAME => $arUserField) { $arUserField['LIST_COLUMN_LABEL'] = (string)$arUserField['LIST_COLUMN_LABEL']; $arProperty_UF[$FIELD_NAME] = $arUserField['LIST_COLUMN_LABEL'] ? '['.$FIELD_NAME.']'.$arUserField['LIST_COLUMN_LABEL'] : $FIELD_NAME; if ($arUserField["USER_TYPE"]["BASE_TYPE"] == "string") $arSProperty_LNS[$FIELD_NAME] = $arProperty_UF[$FIELD_NAME]; } $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( "IBLOCK_ID" => $OFFERS_IBLOCK_ID, "ACTIVE" => "Y", )); while ($arr = $rsProp->Fetch()) { if ($arr["PROPERTY_TYPE"] != "F") $arProperty_Offers[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"]; } } $arSort = CIBlockParameters::GetElementSortFields( array('SHOWS', 'SORT', 'TIMESTAMP_X', 'NAME', 'ID', 'ACTIVE_FROM', 'ACTIVE_TO'), array('KEY_LOWERCASE' => 'Y') ); $arPrice = array(); if ($boolCatalog) { $arSort = array_merge($arSort, CCatalogIBlockParameters::GetCatalogSortFields()); $rsPrice = CCatalogGroup::GetList($v1 = "sort", $v2 = "asc"); while ($arr = $rsPrice->Fetch()) $arPrice[$arr["NAME"]] = "[".$arr["NAME"]."] ".$arr["NAME_LANG"]; } else { $arPrice = $arProperty_N; } $arAscDesc = array( "asc" => GetMessage("CP_BCSE_SORT_ASC"), "desc" => GetMessage("CP_BCSE_SORT_DESC"), ); $arComponentParameters = array( "GROUPS" => array( "PRICES" => array( "NAME" => GetMessage("CP_BCSE_GROUPS_PRICES"), ), "SEARCH" => array( "NAME" => GetMessage("CP_BCSE_GROUPS_SEARCH"), ), ), "PARAMETERS" => array( "AJAX_MODE" => array(), "IBLOCK_TYPE" => array( "PARENT" => "BASE", "NAME" => GetMessage("CP_BCSE_IBLOCK_TYPE"), "TYPE" => "LIST", "VALUES" => $arIBlockType, "REFRESH" => "Y", ), "IBLOCK_ID" => array( "PARENT" => "BASE", "NAME" => GetMessage("CP_BCSE_IBLOCK_ID"), "TYPE" => "LIST", "ADDITIONAL_VALUES" => "Y", "VALUES" => $arIBlock, "REFRESH" => "Y", ), "ELEMENT_SORT_FIELD" => array( "PARENT" => "DATA_SOURCE", "NAME" => GetMessage("CP_BCSE_ELEMENT_SORT_FIELD"), "TYPE" => "LIST", "VALUES" => $arSort, "ADDITIONAL_VALUES" => "Y", "DEFAULT" => "sort", ), "ELEMENT_SORT_ORDER" => array( "PARENT" => "DATA_SOURCE", "NAME" => GetMessage("IBLOCK_ELEMENT_SORT_ORDER"), "TYPE" => "LIST", "VALUES" => $arAscDesc, "DEFAULT" => "asc", "ADDITIONAL_VALUES" => "Y", ), "ELEMENT_SORT_FIELD2" => array( "PARENT" => "DATA_SOURCE", "NAME" => GetMessage("CP_BCSE_ELEMENT_SORT_FIELD2"), "TYPE" => "LIST", "VALUES" => $arSort, "ADDITIONAL_VALUES" => "Y", "DEFAULT" => "id", ), "ELEMENT_SORT_ORDER2" => array( "PARENT" => "DATA_SOURCE", "NAME" => GetMessage("IBLOCK_ELEMENT_SORT_ORDER2"), "TYPE" => "LIST", "VALUES" => $arAscDesc, "DEFAULT" => "desc", "ADDITIONAL_VALUES" => "Y", ), "SECTION_URL" => CIBlockParameters::GetPathTemplateParam("SECTION", "SECTION_URL", GetMessage("IBLOCK_SECTION_URL"), "", "URL_TEMPLATES"), "DETAIL_URL" => CIBlockParameters::GetPathTemplateParam("DETAIL", "DETAIL_URL", GetMessage("IBLOCK_DETAIL_URL"), "", "URL_TEMPLATES"), "BASKET_URL" => array( "PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("IBLOCK_BASKET_URL"), "TYPE" => "STRING", "DEFAULT" => "/personal/basket.php", ), "ACTION_VARIABLE" => array( "PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("IBLOCK_ACTION_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "action", ), "PRODUCT_ID_VARIABLE" => array( "PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("IBLOCK_PRODUCT_ID_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "id", ), "PRODUCT_QUANTITY_VARIABLE" => array( "PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("CP_BCS_PRODUCT_QUANTITY_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "quantity", ), "PRODUCT_PROPS_VARIABLE" => array( "PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("CP_BCS_PRODUCT_PROPS_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "prop", ), "SECTION_ID_VARIABLE" => array( "PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("IBLOCK_SECTION_ID_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "SECTION_ID", ), "DISPLAY_COMPARE" => array( "PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_DISPLAY_COMPARE"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", ), "PAGE_ELEMENT_COUNT" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("IBLOCK_PAGE_ELEMENT_COUNT"), "TYPE" => "STRING", "DEFAULT" => "30", ), "LINE_ELEMENT_COUNT" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("IBLOCK_LINE_ELEMENT_COUNT"), "TYPE" => "STRING", "DEFAULT" => "3", ), "PROPERTY_CODE" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("CP_BCS_PROPERTY_CODE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arProperty, "ADDITIONAL_VALUES" => "Y", ), "OFFERS_FIELD_CODE" => CIBlockParameters::GetFieldCode(GetMessage("CP_BCS_OFFERS_FIELD_CODE"), "VISUAL"), "OFFERS_PROPERTY_CODE" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("CP_BCS_OFFERS_PROPERTY_CODE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arProperty_Offers, "ADDITIONAL_VALUES" => "Y", ), "OFFERS_SORT_FIELD" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("CP_BCS_OFFERS_SORT_FIELD"), "TYPE" => "LIST", "VALUES" => $arSort, "ADDITIONAL_VALUES" => "Y", "DEFAULT" => "sort", ), "OFFERS_SORT_ORDER" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("CP_BCS_OFFERS_SORT_ORDER"), "TYPE" => "LIST", "VALUES" => $arAscDesc, "DEFAULT" => "asc", "ADDITIONAL_VALUES" => "Y", ), "OFFERS_SORT_FIELD2" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("CP_BCS_OFFERS_SORT_FIELD2"), "TYPE" => "LIST", "VALUES" => $arSort, "ADDITIONAL_VALUES" => "Y", "DEFAULT" => "id", ), "OFFERS_SORT_ORDER2" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("CP_BCS_OFFERS_SORT_ORDER2"), "TYPE" => "LIST", "VALUES" => $arAscDesc, "DEFAULT" => "desc", "ADDITIONAL_VALUES" => "Y", ), "OFFERS_LIMIT" => array( "PARENT" => "VISUAL", "NAME" => GetMessage('CP_BCS_OFFERS_LIMIT'), "TYPE" => "STRING", "DEFAULT" => 5, ), "PRICE_CODE" => array( "PARENT" => "PRICES", "NAME" => GetMessage("IBLOCK_PRICE_CODE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arPrice, ), "USE_PRICE_COUNT" => array( "PARENT" => "PRICES", "NAME" => GetMessage("IBLOCK_USE_PRICE_COUNT"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", ), "SHOW_PRICE_COUNT" => array( "PARENT" => "PRICES", "NAME" => GetMessage("IBLOCK_SHOW_PRICE_COUNT"), "TYPE" => "STRING", "DEFAULT" => "1", ), "PRICE_VAT_INCLUDE" => array( "PARENT" => "PRICES", "NAME" => GetMessage("IBLOCK_VAT_INCLUDE"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", ), "PRODUCT_PROPERTIES" => array( "PARENT" => "PRICES", "NAME" => GetMessage("CP_BCS_PRODUCT_PROPERTIES"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arProperty_X, ), "USE_PRODUCT_QUANTITY" => array( "PARENT" => "PRICES", "NAME" => GetMessage("CP_BCS_USE_PRODUCT_QUANTITY"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", ), "CACHE_TIME" => array( "DEFAULT" => 36000000, ), "RESTART" => array( "PARENT" => "SEARCH", "NAME" => GetMessage("SEARCH_RESTART"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", ), "NO_WORD_LOGIC" => array( "PARENT" => "SEARCH", "NAME" => GetMessage("CP_BSP_NO_WORD_LOGIC"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", ), "USE_LANGUAGE_GUESS" => array( "PARENT" => "SEARCH", "NAME" => GetMessage("CP_BSP_USE_LANGUAGE_GUESS"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", ), "CHECK_DATES" => array( "PARENT" => "SEARCH", "NAME" => GetMessage("SEARCH_CHECK_DATES"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", ), ), ); CIBlockParameters::AddPagerSettings($arComponentParameters, GetMessage("T_IBLOCK_DESC_PAGER_CATALOG"), true, true); if ($boolCatalog) { $arComponentParameters["PARAMETERS"]['HIDE_NOT_AVAILABLE'] = array( 'PARENT' => 'DATA_SOURCE', 'NAME' => GetMessage('CP_BCS_HIDE_NOT_AVAILABLE'), 'TYPE' => 'LIST', 'DEFAULT' => 'N', 'VALUES' => array( 'Y' => GetMessage('CP_BCS_HIDE_NOT_AVAILABLE_HIDE'), 'L' => GetMessage('CP_BCS_HIDE_NOT_AVAILABLE_LAST'), 'N' => GetMessage('CP_BCS_HIDE_NOT_AVAILABLE_SHOW') ), 'ADDITIONAL_VALUES' => 'N' ); $arComponentParameters['PARAMETERS']['HIDE_NOT_AVAILABLE_OFFERS'] = array( 'PARENT' => 'DATA_SOURCE', 'NAME' => GetMessage('CP_BCS_HIDE_NOT_AVAILABLE_OFFERS'), 'TYPE' => 'LIST', 'DEFAULT' => 'N', 'VALUES' => array( 'Y' => GetMessage('CP_BCS_HIDE_NOT_AVAILABLE_OFFERS_HIDE'), 'L' => GetMessage('CP_BCS_HIDE_NOT_AVAILABLE_OFFERS_SUBSCRIBE'), 'N' => GetMessage('CP_BCS_HIDE_NOT_AVAILABLE_OFFERS_SHOW') ) ); if (CModule::IncludeModule('currency')) { $arComponentParameters["PARAMETERS"]['CONVERT_CURRENCY'] = array( 'PARENT' => 'PRICES', 'NAME' => GetMessage('CP_BCS_CONVERT_CURRENCY'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'N', 'REFRESH' => 'Y', ); if (isset($arCurrentValues['CONVERT_CURRENCY']) && 'Y' == $arCurrentValues['CONVERT_CURRENCY']) { $arComponentParameters['PARAMETERS']['CURRENCY_ID'] = array( 'PARENT' => 'PRICES', 'NAME' => GetMessage('CP_BCS_CURRENCY_ID'), 'TYPE' => 'LIST', 'VALUES' => \Bitrix\Currency\CurrencyManager::getCurrencyList(), 'DEFAULT' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(), "ADDITIONAL_VALUES" => "Y", ); } } } if (!$OFFERS_IBLOCK_ID) { unset($arComponentParameters["PARAMETERS"]["OFFERS_FIELD_CODE"]); unset($arComponentParameters["PARAMETERS"]["OFFERS_PROPERTY_CODE"]); unset($arComponentParameters["PARAMETERS"]["OFFERS_SORT_FIELD"]); unset($arComponentParameters["PARAMETERS"]["OFFERS_SORT_ORDER"]); unset($arComponentParameters["PARAMETERS"]["OFFERS_SORT_FIELD2"]); unset($arComponentParameters["PARAMETERS"]["OFFERS_SORT_ORDER2"]); } else { unset($arComponentParameters["PARAMETERS"]["PRODUCT_PROPERTIES"]); $arComponentParameters["PARAMETERS"]["OFFERS_CART_PROPERTIES"] = array( "PARENT" => "PRICES", "NAME" => GetMessage("CP_BCS_OFFERS_CART_PROPERTIES"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arProperty_Offers, ); }