Your IP : 18.117.83.104
<?
use Bitrix\Main\Loader;
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
/** @var array $arCurrentValues */
/** @global CUserTypeManager $USER_FIELD_MANAGER */
if (!Loader::includeModule("catalog"))
return;
$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"];
}
// Prices
$catalogGroupIterator = CCatalogGroup::GetListEx(
array("NAME" => "ASC", "SORT" => "ASC"),
array(),
false,
false,
array('ID', 'NAME', 'NAME_LANG')
);
$catalogGroups = array();
while ($catalogGroup = $catalogGroupIterator->Fetch())
{
$catalogGroups[$catalogGroup['NAME']] = "[{$catalogGroup['NAME']}] {$catalogGroup['NAME_LANG']}";
}
$arAscDesc = array(
"asc" => GetMessage("CVP_SORT_ASC"),
"desc" => GetMessage("CVP_SORT_DESC"),
);
$showFromSection = isset($arCurrentValues['SHOW_FROM_SECTION']) && $arCurrentValues['SHOW_FROM_SECTION'] == 'Y';
$arComponentParameters = array(
"GROUPS" => array(
"PRICES" => array(
"NAME" => GetMessage("CVP_PRICES"),
),
"BASKET" => array(
"NAME" => GetMessage("CVP_BASKET"),
),
),
"PARAMETERS" => array(
"BLOCK_TITLE" => array(
"PARENT" => "BASKET",
"NAME" => GetMessage("SGB_PARAMS_BLOCK_TITLE"),
"TYPE" => "STRING",
"DEFAULT" => GetMessage("SGB_PARAMS_BLOCK_TITLE_DEFAULT"),
),
"HIDE_BLOCK_TITLE" => array(
"PARENT" => "BASKET",
"NAME" => GetMessage("SGB_PARAMS_HIDE_BLOCK_TITLE"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "",
),
"TEXT_LABEL_GIFT" => array(
"PARENT" => "BASKET",
"NAME" => GetMessage("SGB_PARAMS_TEXT_LABEL_GIFT"),
"TYPE" => "STRING",
"DEFAULT" => GetMessage("SGB_PARAMS_TEXT_LABEL_GIFT_DEFAULT"),
),
"DETAIL_URL" => CIBlockParameters::GetPathTemplateParam(
"DETAIL",
"DETAIL_URL",
GetMessage("CVP_DETAIL_URL"),
"",
"URL_TEMPLATES"
),
"BASKET_URL" => array(
"PARENT" => "BASKET",
"NAME" => GetMessage("CVP_BASKET_URL"),
"TYPE" => "STRING",
"DEFAULT" => "/personal/basket.php",
),
"ACTION_VARIABLE" => array(
"PARENT" => "BASKET",
"NAME" => GetMessage("CVP_ACTION_VARIABLE"),
"TYPE" => "STRING",
"DEFAULT" => "action",
),
"PRODUCT_ID_VARIABLE" => array(
"PARENT" => "BASKET",
"NAME" => GetMessage("CVP_PRODUCT_ID_VARIABLE"),
"TYPE" => "STRING",
"DEFAULT" => "id",
),
"PRODUCT_QUANTITY_VARIABLE" => array(
"PARENT" => "BASKET",
"NAME" => GetMessage("CVP_PRODUCT_QUANTITY_VARIABLE"),
"TYPE" => "STRING",
"DEFAULT" => "quantity",
"HIDDEN" => (isset($arCurrentValues['USE_PRODUCT_QUANTITY']) && $arCurrentValues['USE_PRODUCT_QUANTITY'] == 'Y' ? 'N' : 'Y')
),
"ADD_PROPERTIES_TO_BASKET" => array(
"PARENT" => "BASKET",
"NAME" => GetMessage("CVP_ADD_PROPERTIES_TO_BASKET"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
"REFRESH" => "Y"
),
"PRODUCT_PROPS_VARIABLE" => array(
"PARENT" => "BASKET",
"NAME" => GetMessage("CVP_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("CVP_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("CVP_SHOW_OLD_PRICE"),
"TYPE" => "CHECKBOX",
"VALUES" => "Y",
),
'SHOW_DISCOUNT_PERCENT' => array(
'PARENT' => 'VISUAL',
'NAME' => GetMessage('CVP_SHOW_DISCOUNT_PERCENT'),
'TYPE' => 'CHECKBOX',
'DEFAULT' => 'Y'
),
"PRICE_CODE" => array(
"PARENT" => "PRICES",
"NAME" => GetMessage("CVP_PRICE_CODE"),
"TYPE" => "LIST",
"MULTIPLE" => "Y",
"VALUES" => $catalogGroups,
),
"SHOW_PRICE_COUNT" => array(
"PARENT" => "PRICES",
"NAME" => GetMessage("CVP_SHOW_PRICE_COUNT"),
"TYPE" => "STRING",
"DEFAULT" => "1",
),
'PRODUCT_SUBSCRIPTION' => array(
'PARENT' => 'VISUAL',
'NAME' => GetMessage('CVP_PRODUCT_SUBSCRIPTION'),
'TYPE' => 'CHECKBOX',
'DEFAULT' => 'N'
),
"PRICE_VAT_INCLUDE" => array(
"PARENT" => "PRICES",
"NAME" => GetMessage("CVP_VAT_INCLUDE"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
),
"USE_PRODUCT_QUANTITY" => array(
"PARENT" => "BASKET",
"NAME" => GetMessage("CVP_USE_PRODUCT_QUANTITY"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "N",
"REFRESH" => "Y",
),
"SHOW_NAME" => array(
"PARENT" => "VISUAL",
"NAME" => GetMessage("CVP_SHOW_NAME"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
),
"SHOW_IMAGE" => array(
"PARENT" => "VISUAL",
"NAME" => GetMessage("CVP_SHOW_IMAGE"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
),
'MESS_BTN_BUY' => array(
'PARENT' => 'VISUAL',
'NAME' => GetMessage('CVP_MESS_BTN_BUY_GIFT'),
'TYPE' => 'STRING',
'DEFAULT' => GetMessage('CVP_MESS_BTN_BUY_GIFT_DEFAULT')
),
'MESS_BTN_DETAIL' => array(
'PARENT' => 'VISUAL',
'NAME' => GetMessage('CVP_MESS_BTN_DETAIL'),
'TYPE' => 'STRING',
'DEFAULT' => GetMessage('CVP_MESS_BTN_DETAIL_DEFAULT')
),
'MESS_BTN_SUBSCRIBE' => array(
'PARENT' => 'VISUAL',
'NAME' => GetMessage('CVP_MESS_BTN_SUBSCRIBE'),
'TYPE' => 'STRING',
'DEFAULT' => GetMessage('CVP_MESS_BTN_SUBSCRIBE_DEFAULT')
),
"PAGE_ELEMENT_COUNT" => array(
"PARENT" => "VISUAL",
"NAME" => GetMessage("CVP_PAGE_ELEMENT_COUNT"),
"TYPE" => "STRING",
"DEFAULT" => "5",
),
"SHOW_FROM_SECTION" => array(
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("CVP_SHOW_FROM_SECTION"),
"TYPE" => "CHECKBOX",
"DEFAULT" => 'N',
"REFRESH" => "Y",
),
"IBLOCK_TYPE" => array(
"PARENT" => "BASE",
"NAME" => GetMessage("CVP_TYPE"),
"TYPE" => "LIST",
"VALUES" => $arIBlockType,
"REFRESH" => "Y",
),
"IBLOCK_ID" => array(
"PARENT" => "BASE",
"NAME" => GetMessage("CVP_IBLOCK"),
"TYPE" => "LIST",
"ADDITIONAL_VALUES" => "Y",
"VALUES" => $arIBlock,
"REFRESH" => "Y",
),
"SECTION_ID" => array(
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("CVP_SECTION_ID"),
"TYPE" => "STRING",
"DEFAULT" => '={$GLOBALS["CATALOG_CURRENT_SECTION_ID"]}',
"HIDDEN" => ($showFromSection ? "N" : "Y")
),
"SECTION_CODE" => array(
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("CVP_SECTION_CODE"),
"TYPE" => "STRING",
"DEFAULT" => '',
"HIDDEN" => ($showFromSection ? "N" : "Y")
),
"SECTION_ELEMENT_ID" => array(
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("CVP_SECTION_ELEMENT_ID"),
"TYPE" => "STRING",
"DEFAULT" => '={$GLOBALS["CATALOG_CURRENT_ELEMENT_ID"]}',
"HIDDEN" => ($showFromSection ? "N" : "Y")
),
"SECTION_ELEMENT_CODE" => array(
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("CVP_SECTION_ELEMENT_CODE"),
"TYPE" => "STRING",
"DEFAULT" => '',
"HIDDEN" => ($showFromSection ? "N" : "Y")
),
"DEPTH" => array(
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("CVP_DEPTH"),
"TYPE" => "STRING",
"DEFAULT" => "2",
"HIDDEN" => ($showFromSection ? "N" : "Y")
),
"CACHE_TIME" => array("DEFAULT"=>36000000),
"CACHE_GROUPS" => array(
"PARENT" => "CACHE_SETTINGS",
"NAME" => GetMessage("CVP_CACHE_GROUPS"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
),
),
);
// 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";
$catalogs[] = $catalog;
if(isset($skuCatalogs[$catalog['IBLOCK_ID']]))
{
$skuCatalogs[$catalog['IBLOCK_ID']]['VISIBLE'] = $catalog['VISIBLE'];
$catalogs[] = $skuCatalogs[$catalog['IBLOCK_ID']];
}
}
$defaultListValues = array("-" => getMessage("CVP_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("CVP_GROUP_OFFERS_CATALOG_PARAMS"), $iblock['NAME']);
else
$groupName = sprintf(getMessage("CVP_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("CVP_SHOW_PRODUCTS"),
"TYPE" => "CHECKBOX",
"REFRESH" => "Y",
"DEFAULT" => "N"
);
}
$arComponentParameters["PARAMETERS"]['PROPERTY_CODE_' . $iblock['ID']] = array(
"PARENT" => $groupId,
"NAME" => GetMessage("CVP_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("CVP_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("CVP_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("CVP_PROPERTY_GROUP"),
"TYPE" => "LIST",
"MULTIPLE" => "Y",
"VALUES" => array_merge($defaultListValues, $treeProperties),
"ADDITIONAL_VALUES" => "N",
"DEFAULT" => "-",
"HIDDEN" => (!$catalog['VISIBLE'] ? 'Y' : 'N')
);
}
}
$arComponentParameters["PARAMETERS"]['HIDE_NOT_AVAILABLE'] = array(
'PARENT' => 'DATA_SOURCE',
'NAME' => GetMessage('CVP_HIDE_NOT_AVAILABLE'),
'TYPE' => 'CHECKBOX',
'DEFAULT' => 'N',
);
$arComponentParameters["PARAMETERS"]['CONVERT_CURRENCY'] = array(
'PARENT' => 'PRICES',
'NAME' => GetMessage('CVP_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('CVP_CURRENCY_ID'),
'TYPE' => 'LIST',
'VALUES' => $arCurrencyList,
'DEFAULT' => CCurrency::GetBaseCurrency(),
"ADDITIONAL_VALUES" => "Y",
);
}
?>