%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/sale.recommended.products/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/sale.recommended.products/.parameters.php |
<? use \Bitrix\Main\Loader as Loader; if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); if(!Loader::includeModule("sale") || !Loader::includeModule("iblock") || !Loader::includeModule("catalog")) { ShowError(GetMessage("SRP_NEED_REQUIRED_MODULES")); die(); } // Prices $catalogGroupIterator = CCatalogGroup::getList(array("NAME" => "ASC", "SORT" => "ASC")); $catalogGroups = array(); while ($catalogGroup = $catalogGroupIterator->fetch()) { $catalogGroups[$catalogGroup['NAME']] = "[{$catalogGroup['NAME']}] {$catalogGroup['NAME_LANG']}"; } $arAscDesc = array( "asc" => GetMessage("SRP_SORT_ASC"), "desc" => GetMessage("SRP_SORT_DESC"), ); // iblockTypes $iblockTypes = CIBlockParameters::getIBlockTypes(); $iblockNames = array(); $iblockIterator = CIBlock::GetList(array("SORT" => "ASC"), array("TYPE" => ($arCurrentValues["IBLOCK_TYPE"] != "-" ? $arCurrentValues["IBLOCK_TYPE"] : ""))); while ($iblock = $iblockIterator->fetch()) { $iblockNames[$iblock['ID']] = "[{$iblock['CODE']}] {$iblock['NAME']}"; } $arComponentParameters = array( "GROUPS" => array( "PRICES" => array( "NAME" => GetMessage("SRP_PRICES"), ), "BASKET" => array( "NAME" => GetMessage("SRP_BASKET"), ), ), "PARAMETERS" => array( "IBLOCK_TYPE" => Array( "PARENT" => "BASE", "NAME" => GetMessage("SRP_TYPE"), "TYPE" => "LIST", "VALUES" => $iblockTypes, "DEFAULT" => "catalog", "REFRESH" => "Y", ), "IBLOCK_ID" => Array( "PARENT" => "BASE", "NAME" => GetMessage("SRP_IBLOCK"), "TYPE" => "LIST", "VALUES" => $iblockNames, "DEFAULT" => '={$_REQUEST["IBLOCK_ID"]}', "ADDITIONAL_VALUES" => "Y", "REFRESH" => "Y", ), "ID" => array( "PARENT" => "BASE", "NAME" => GetMessage("SRP_ID"), "TYPE" => "STRING", "DEFAULT" => '={$_REQUEST["PRODUCT_ID"]}', ), "CODE" => array( "PARENT" => "BASE", "NAME" => GetMessage("SRP_CODE"), "TYPE" => "STRING", "DEFAULT" => '={$_REQUEST["PRODUCT_CODE"]}', ), "MIN_BUYES" => array( "PARENT" => "BASE", "NAME" => GetMessage("SRP_MIN_BUYES"), "TYPE" => "STRING", "DEFAULT" => "1", ), "CACHE_TIME" => array("DEFAULT"=>86400), "DETAIL_URL" => CIBlockParameters::GetPathTemplateParam( "DETAIL", "DETAIL_URL", GetMessage("SRP_DETAIL_URL"), "", "URL_TEMPLATES" ), "BASKET_URL" => array( "PARENT" => "BASKET", "NAME" => GetMessage("SRP_BASKET_URL"), "TYPE" => "STRING", "DEFAULT" => "/personal/basket.php", ), "ACTION_VARIABLE" => array( "PARENT" => "BASKET", "NAME" => GetMessage("SRP_ACTION_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "action", ), "PRODUCT_ID_VARIABLE" => array( "PARENT" => "BASKET", "NAME" => GetMessage("SRP_PRODUCT_ID_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "id", ), "PRODUCT_QUANTITY_VARIABLE" => array( "PARENT" => "BASKET", "NAME" => GetMessage("SRP_PRODUCT_QUANTITY_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "quantity", ), "ADD_PROPERTIES_TO_BASKET" => array( "PARENT" => "BASKET", "NAME" => GetMessage("SRP_ADD_PROPERTIES_TO_BASKET"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", "REFRESH" => "Y" ), "PRODUCT_PROPS_VARIABLE" => array( "PARENT" => "BASKET", "NAME" => GetMessage("SRP_PRODUCT_PROPS_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "prop", "HIDDEN" => (isset($arCurrentValues['ADD_PROPERTIES_TO_BASKET']) && $arCurrentValues['ADD_PROPERTIES_TO_BASKET'] == 'N' ? 'Y' : 'N') ), "PARTIAL_PRODUCT_PROPERTIES" => array( "PARENT" => "BASKET", "NAME" => GetMessage("SRP_PARTIAL_PRODUCT_PROPERTIES"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", "HIDDEN" => (isset($arCurrentValues['ADD_PROPERTIES_TO_BASKET']) && $arCurrentValues['ADD_PROPERTIES_TO_BASKET'] == 'N' ? 'Y' : 'N') ), "SHOW_OLD_PRICE" => array( "PARENT" => "PRICES", "NAME" => GetMessage("SRP_SHOW_OLD_PRICE"), "TYPE" => "CHECKBOX", "VALUES" => "N", ), 'SHOW_DISCOUNT_PERCENT' => array( 'PARENT' => 'VISUAL', 'NAME' => GetMessage('SRP_SHOW_DISCOUNT_PERCENT'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'N' ), "PRICE_CODE" => array( "PARENT" => "PRICES", "NAME" => GetMessage("SRP_PRICE_CODE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $catalogGroups, ), "SHOW_PRICE_COUNT" => array( "PARENT" => "PRICES", "NAME" => GetMessage("SRP_SHOW_PRICE_COUNT"), "TYPE" => "STRING", "DEFAULT" => "1", ), 'PRODUCT_SUBSCRIPTION' => array( 'PARENT' => 'VISUAL', 'NAME' => GetMessage('SRP_PRODUCT_SUBSCRIPTION'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'N' ), "PRICE_VAT_INCLUDE" => array( "PARENT" => "PRICES", "NAME" => GetMessage("SRP_VAT_INCLUDE"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", ), "USE_PRODUCT_QUANTITY" => array( "PARENT" => "BASKET", "NAME" => GetMessage("SRP_USE_PRODUCT_QUANTITY"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", "REFRESH" => "Y", ), "SHOW_NAME" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("SRP_SHOW_NAME"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", ), "SHOW_IMAGE" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("SRP_SHOW_IMAGE"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", ), 'MESS_BTN_BUY' => array( 'PARENT' => 'VISUAL', 'NAME' => GetMessage('SRP_MESS_BTN_BUY'), 'TYPE' => 'STRING', 'DEFAULT' => GetMessage('SRP_MESS_BTN_BUY_DEFAULT') ), 'MESS_BTN_DETAIL' => array( 'PARENT' => 'VISUAL', 'NAME' => GetMessage('SRP_MESS_BTN_DETAIL'), 'TYPE' => 'STRING', 'DEFAULT' => GetMessage('SRP_MESS_BTN_DETAIL_DEFAULT') ), 'MESS_NOT_AVAILABLE' => array( 'PARENT' => 'VISUAL', 'NAME' => GetMessage('SRP_MESS_NOT_AVAILABLE'), 'TYPE' => 'STRING', 'DEFAULT' => GetMessage('SRP_MESS_NOT_AVAILABLE_DEFAULT') ), 'MESS_BTN_SUBSCRIBE' => array( 'PARENT' => 'VISUAL', 'NAME' => GetMessage('SRP_MESS_BTN_SUBSCRIBE'), 'TYPE' => 'STRING', 'DEFAULT' => GetMessage('SRP_MESS_BTN_SUBSCRIBE_DEFAULT') ), "PAGE_ELEMENT_COUNT" => array( "PARENT" => "VISUAL", "NAME" => GetMessage("SRP_PAGE_ELEMENT_COUNT"), "TYPE" => "STRING", "DEFAULT" => "30", ), ), ); // Params groups $iblockMap = array(); $iblockIterator = CIBlock::GetList(array("SORT" => "ASC"), array("ACTIVE" => "Y")); while ($iblock = $iblockIterator->fetch()) { $iblockMap[$iblock['ID']] = $iblock; } $catalogs = array(); $productsCatalogs = array(); $skuCatalogs = array(); $catalogIterator = CCatalog::GetList( array("IBLOCK_ID" => "ASC"), array("@IBLOCK_ID" => array_keys($iblockMap)), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID') ); while($catalog = $catalogIterator->fetch()) { $isOffersCatalog = (int)$catalog['PRODUCT_IBLOCK_ID'] > 0; if($isOffersCatalog) { $skuCatalogs[$catalog['PRODUCT_IBLOCK_ID']] = $catalog; if (!isset($productsCatalogs[$catalog['PRODUCT_IBLOCK_ID']])) $productsCatalogs[$catalog['PRODUCT_IBLOCK_ID']] = $catalog; } else { $productsCatalogs[$catalog['IBLOCK_ID']] = $catalog; } } foreach($productsCatalogs as $catalog) { //$catalog['VISIBLE'] = isset($arCurrentValues['SHOW_PRODUCTS_' . $catalog['IBLOCK_ID']]) && $arCurrentValues['SHOW_PRODUCTS_' . $catalog['IBLOCK_ID']] == "Y"; $catalog['VISIBLE'] = true; $catalogs[] = $catalog; if(isset($skuCatalogs[$catalog['IBLOCK_ID']])) { $skuCatalogs[$catalog['IBLOCK_ID']]['VISIBLE'] = $catalog['VISIBLE']; $catalogs[] = $skuCatalogs[$catalog['IBLOCK_ID']]; } } $defaultListValues = array("-" => getMessage("SRP_UNDEFINED")); foreach ($catalogs as $catalog) { $catalogs[$catalog['IBLOCK_ID']] = $catalog; $iblock = $iblockMap[$catalog['IBLOCK_ID']]; if ((int)$catalog['SKU_PROPERTY_ID'] > 0) // sku $groupName = sprintf(getMessage("SRP_GROUP_OFFERS_CATALOG_PARAMS"), $iblock['NAME']); else $groupName = sprintf(getMessage("SRP_GROUP_PRODUCT_CATALOG_PARAMS"), $iblock['NAME']); $groupId = 'CATALOG_PPARAMS_' . $iblock['ID']; $arComponentParameters['GROUPS'][$groupId] = array( "NAME" => $groupName ); // Params in group // 1. Display Properties $listProperties = array(); $allProperties = array(); $fileProperties = array(); $treeProperties = array(); $propertyIterator = CIBlockProperty::getList(array("SORT" => "ASC", "NAME" => "ASC"), array("IBLOCK_ID" => $iblock['ID'], "ACTIVE" => "Y")); while ($property = $propertyIterator->fetch()) { $property['ID'] = (int)$property['ID']; $propertyName = '[' . $property['ID'] . ']' . ('' != $property['CODE'] ? '[' . $property['CODE'] . ']' : '') . ' ' . $property['NAME']; if ('' == $property['CODE']) $property['CODE'] = $property['ID']; $allProperties[$property['CODE']] = $propertyName; if ('F' == $property['PROPERTY_TYPE']) $fileProperties[$property['CODE']] = $propertyName; if ('L' == $property['PROPERTY_TYPE']) $listProperties[$property['CODE']] = $propertyName; // skip property id if ($property['ID'] == $catalog['SKU_PROPERTY_ID']) continue; if ('L' == $property['PROPERTY_TYPE'] || 'E' == $property['PROPERTY_TYPE'] || ('S' == $property['PROPERTY_TYPE'] && 'directory' == $property['USER_TYPE']) ) $treeProperties[$property['CODE']] = $propertyName; } // Properties // Common Catalog options /*if ((int)$catalog['SKU_PROPERTY_ID'] <= 0) { $arComponentParameters["PARAMETERS"]['SHOW_PRODUCTS_' . $iblock['ID']] = array( "PARENT" => $groupId, "NAME" => GetMessage("SRP_SHOW_PRODUCTS"), "TYPE" => "HIDDEN", "REFRESH" => "Y", "DEFAULT" => "Y" ); }*/ $arComponentParameters["PARAMETERS"]['PROPERTY_CODE_' . $iblock['ID']] = array( "PARENT" => $groupId, "NAME" => GetMessage("SRP_PROPERTY_DISPLAY"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $allProperties, "ADDITIONAL_VALUES" => "Y", "DEFAULT" => "", "HIDDEN" => (!$catalog['VISIBLE'] ? 'Y' : 'N') ); // 3. Cart properties $arComponentParameters["PARAMETERS"]['CART_PROPERTIES_' . $iblock['ID']] = array( "PARENT" => $groupId, "NAME" => GetMessage("SRP_PROPERTY_ADD_TO_BASKET"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $treeProperties, "ADDITIONAL_VALUES" => "Y", "HIDDEN" => ((isset($arCurrentValues['ADD_PROPERTIES_TO_BASKET']) && $arCurrentValues['ADD_PROPERTIES_TO_BASKET'] == 'N') || !$catalog['VISIBLE'] ? 'Y' : 'N') ); // 2. Additional Image $arComponentParameters["PARAMETERS"]['ADDITIONAL_PICT_PROP_' . $iblock['ID']] = array( "PARENT" => $groupId, "NAME" => GetMessage("SRP_ADDITIONAL_IMAGE"), "TYPE" => "LIST", "MULTIPLE" => "N", "VALUES" => $fileProperties, "ADDITIONAL_VALUES" => "N", "DEFAULT" => "-", "HIDDEN" => (!$catalog['VISIBLE'] ? 'Y' : 'N') ); if ((int)$catalog['SKU_PROPERTY_ID'] > 0) { $arComponentParameters["PARAMETERS"]['OFFER_TREE_PROPS_' . $iblock['ID']] = array( "PARENT" => $groupId, "NAME" => GetMessage("SRP_PROPERTY_GROUP"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => array_merge($defaultListValues, $treeProperties), "ADDITIONAL_VALUES" => "N", "DEFAULT" => "-", "HIDDEN" => (!$catalog['VISIBLE'] ? 'Y' : 'N') ); } else { $arComponentParameters['PARAMETERS']['LABEL_PROP_' . $iblock['ID']] = array( 'PARENT' => $groupId, 'NAME' => GetMessage('SRP_PROPERTY_LABEL'), 'TYPE' => 'LIST', 'MULTIPLE' => 'N', 'ADDITIONAL_VALUES' => 'N', 'REFRESH' => 'N', 'DEFAULT' => '-', 'VALUES' => array_merge($defaultListValues, $listProperties), "HIDDEN" => (!$catalog['VISIBLE'] ? 'Y' : 'N') ); } } $arComponentParameters["PARAMETERS"]['HIDE_NOT_AVAILABLE'] = array( 'PARENT' => 'DATA_SOURCE', 'NAME' => GetMessage('SRP_HIDE_NOT_AVAILABLE'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'N', ); if (Loader::includeModule('currency')) { $arComponentParameters["PARAMETERS"]['CONVERT_CURRENCY'] = array( 'PARENT' => 'PRICES', 'NAME' => GetMessage('SRP_CONVERT_CURRENCY'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'N', 'REFRESH' => 'Y', ); if (isset($arCurrentValues['CONVERT_CURRENCY']) && 'Y' == $arCurrentValues['CONVERT_CURRENCY']) { $arCurrencyList = array(); $by = 'SORT'; $order = 'ASC'; $rsCurrencies = CCurrency::GetList($by, $order); while ($arCurrency = $rsCurrencies->Fetch()) { $arCurrencyList[$arCurrency['CURRENCY']] = $arCurrency['CURRENCY']; } $arComponentParameters['PARAMETERS']['CURRENCY_ID'] = array( 'PARENT' => 'PRICES', 'NAME' => GetMessage('SRP_CURRENCY_ID'), 'TYPE' => 'LIST', 'VALUES' => $arCurrencyList, 'DEFAULT' => CCurrency::GetBaseCurrency(), "ADDITIONAL_VALUES" => "Y", ); } } ?>