%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/sale.basket.basket/ |
| Current File : /home/bitrix/www/bitrix/components/bitrix/sale.basket.basket/.parameters.php |
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @global array $arCurrentValues */
/** @var array $templateProperties */
use Bitrix\Main\Loader,
Bitrix\Catalog,
Bitrix\Iblock;
if (!Loader::includeModule('sale'))
return;
$arColumns = array(
"PREVIEW_PICTURE" => GetMessage("SBB_PREVIEW_PICTURE"),
"DETAIL_PICTURE" => GetMessage("SBB_DETAIL_PICTURE"),
"PREVIEW_TEXT" => GetMessage("SBB_PREVIEW_TEXT"),
"DISCOUNT" => GetMessage("SBB_BDISCOUNT"),
"WEIGHT" => GetMessage("SBB_BWEIGHT"),
"PROPS" => GetMessage("SBB_BPROPS"),
"DELETE" => GetMessage("SBB_BDELETE"),
"DELAY" => GetMessage("SBB_BDELAY"),
"TYPE" => GetMessage("SBB_BTYPE"),
"SUM" => GetMessage("SBB_BSUM")
);
$iblockIds = array();
$iblockNames = array();
if (Loader::includeModule('catalog'))
{
$parameters = array(
'select' => array('IBLOCK_ID', 'NAME' => 'IBLOCK.NAME'),
'order' => array('IBLOCK_ID' => 'ASC'),
);
$siteId = isset($_REQUEST['src_site']) && is_string($_REQUEST['src_site']) ? $_REQUEST['src_site'] : '';
$siteId = substr(preg_replace('/[^a-z0-9_]/i', '', $siteId), 0, 2);
if (!empty($siteId) && is_string($siteId))
{
$parameters['select']['SITE_ID'] = 'IBLOCK_SITE.SITE_ID';
$parameters['filter'] = array('SITE_ID' => $siteId);
$parameters['runtime'] = array(
'IBLOCK_SITE' => array(
'data_type' => 'Bitrix\Iblock\IblockSiteTable',
'reference' => array(
'ref.IBLOCK_ID' => 'this.IBLOCK_ID',
),
'join_type' => 'inner'
)
);
}
$catalogIterator = Catalog\CatalogIblockTable::getList($parameters);
while ($catalog = $catalogIterator->fetch())
{
$catalog['IBLOCK_ID'] = (int)$catalog['IBLOCK_ID'];
$iblockIds[] = $catalog['IBLOCK_ID'];
$iblockNames[$catalog['IBLOCK_ID']] = $catalog['NAME'];
}
unset($catalog, $catalogIterator);
$listProperties = array();
if (!empty($iblockIds))
{
$arProps = array();
$propertyIterator = Iblock\PropertyTable::getList(array(
'select' => array('ID', 'CODE', 'NAME', 'IBLOCK_ID', 'PROPERTY_TYPE'),
'filter' => array('@IBLOCK_ID' => $iblockIds, '=ACTIVE' => 'Y', '!=XML_ID' => CIBlockPropertyTools::XML_SKU_LINK),
'order' => array('IBLOCK_ID' => 'ASC', 'SORT' => 'ASC', 'ID' => 'ASC')
));
while ($property = $propertyIterator->fetch())
{
$property['ID'] = (int)$property['ID'];
$property['IBLOCK_ID'] = (int)$property['IBLOCK_ID'];
$property['CODE'] = (string)$property['CODE'];
if ($property['CODE'] == '')
{
$property['CODE'] = $property['ID'];
}
if ($property['PROPERTY_TYPE'] === 'L')
{
$listProperties[$property['CODE']] = $property['NAME'].' ['.$property['CODE'].']';
}
if (!isset($arProps[$property['CODE']]))
{
$arProps[$property['CODE']] = array(
'CODE' => $property['CODE'],
'TITLE' => $property['NAME'].' ['.$property['CODE'].']',
'ID' => array($property['ID']),
'IBLOCK_ID' => array($property['IBLOCK_ID'] => $property['IBLOCK_ID']),
'IBLOCK_TITLE' => array($property['IBLOCK_ID'] => $iblockNames[$property['IBLOCK_ID']]),
'COUNT' => 1
);
}
else
{
$arProps[$property['CODE']]['ID'][] = $property['ID'];
$arProps[$property['CODE']]['IBLOCK_ID'][$property['IBLOCK_ID']] = $property['IBLOCK_ID'];
if ($arProps[$property['CODE']]['COUNT'] < 2)
$arProps[$property['CODE']]['IBLOCK_TITLE'][$property['IBLOCK_ID']] = $iblockNames[$property['IBLOCK_ID']];
$arProps[$property['CODE']]['COUNT']++;
}
}
unset($property, $propertyIterator);
$propList = array();
foreach ($arProps as &$property)
{
$iblockList = '';
if ($property['COUNT'] > 1)
{
$iblockList = ($property['COUNT'] > 2 ? ' ( ... )' : ' ('.implode(', ', $property['IBLOCK_TITLE']).')');
}
$propList['PROPERTY_'.$property['CODE']] = $property['TITLE'].$iblockList;
}
unset($property, $arProps);
if (!empty($propList))
$arColumns = array_merge($arColumns, $propList);
unset($propList);
}
}
$arYesNo = array(
"Y" => GetMessage("SBB_DESC_YES"),
"N" => GetMessage("SBB_DESC_NO"),
);
$arComponentParameters = Array(
"GROUPS" => array(
"OFFERS_PROPS" => array(
"NAME" => GetMessage("SBB_OFFERS_PROPS"),
),
"IMAGE_SETTINGS" => array(
"NAME" => GetMessage("SBB_IMAGE_SETTINGS")
),
"GIFTS" => array(
"NAME" => GetMessage("SBB_GIFTS"),
),
'ANALYTICS_SETTINGS' => array(
'NAME' => GetMessage('SBB_ANALYTICS_SETTINGS'),
'SORT' => 11000
)
),
"PARAMETERS" => Array(
"PATH_TO_ORDER" => Array(
"NAME" => GetMessage("SBB_PATH_TO_ORDER"),
"TYPE" => "STRING",
"MULTIPLE" => "N",
"DEFAULT" => "/personal/order/make/",
"COLS" => 25,
"PARENT" => "ADDITIONAL_SETTINGS",
),
"HIDE_COUPON" => Array(
"NAME" => GetMessage("SBB_HIDE_COUPON"),
"TYPE" => "CHECKBOX",
"VALUES" => array(
"N" => GetMessage("SBB_DESC_NO"),
"Y" => GetMessage("SBB_DESC_YES")
),
"DEFAULT" => "N",
"PARENT" => "ADDITIONAL_SETTINGS",
),
"COLUMNS_LIST_EXT" => Array(
"NAME" => GetMessage("SBB_COLUMNS_LIST"),
"TYPE" => "LIST",
"MULTIPLE" => "Y",
"VALUES" => $arColumns,
"DEFAULT" => array('PREVIEW_PICTURE', 'DISCOUNT', 'DELETE', 'DELAY', 'TYPE', 'SUM'),
"COLS" => 25,
"SIZE" => 7,
"ADDITIONAL_VALUES" => "N",
"PARENT" => "VISUAL",
'REFRESH' => isset($templateProperties['COLUMNS_LIST_MOBILE']) ? 'Y' : 'N',
),
"COLUMNS_LIST_MOBILE" => array(),
"PRICE_VAT_SHOW_VALUE" => array(
"NAME" => GetMessage('SBB_VAT_SHOW_VALUE'),
"TYPE" => "CHECKBOX",
"MULTIPLE" => "N",
"DEFAULT" => "N",
"ADDITIONAL_VALUES" => "N",
"PARENT" => "ADDITIONAL_SETTINGS",
),
"USE_PREPAYMENT" => array(
"NAME" => GetMessage('SBB_USE_PREPAYMENT'),
"TYPE" => "CHECKBOX",
"MULTIPLE" => "N",
"DEFAULT" => "N",
"ADDITIONAL_VALUES" => "N",
"PARENT" => "ADDITIONAL_SETTINGS",
),
"QUANTITY_FLOAT" => array(
"NAME" => GetMessage('SBB_QUANTITY_FLOAT'),
"TYPE" => "CHECKBOX",
"MULTIPLE" => "N",
"DEFAULT" => "Y",
"ADDITIONAL_VALUES" => "N",
"PARENT" => "ADDITIONAL_SETTINGS",
),
"CORRECT_RATIO" => array(
"NAME" => GetMessage('SBB_CORRECT_RATIO'),
"TYPE" => "CHECKBOX",
"MULTIPLE" => "N",
"DEFAULT" => "Y",
"ADDITIONAL_VALUES" => "N",
"PARENT" => "ADDITIONAL_SETTINGS",
),
"AUTO_CALCULATION" => array(
"NAME" => GetMessage('SBB_AUTO_CALCULATION'),
"TYPE" => "CHECKBOX",
"MULTIPLE" => "N",
"DEFAULT" => "Y",
"ADDITIONAL_VALUES" => "N",
"PARENT" => "ADDITIONAL_SETTINGS",
),
"SET_TITLE" => Array(),
"ACTION_VARIABLE" => array(
"NAME" => GetMessage('SBB_ACTION_VARIABLE'),
"TYPE" => "STRING",
"MULTIPLE" => "N",
"DEFAULT" => "basketAction",
"ADDITIONAL_VALUES" => "N",
"PARENT" => "ADDITIONAL_SETTINGS",
),
'COMPATIBLE_MODE' => array(
'PARENT' => 'EXTENDED_SETTINGS',
'NAME' => GetMessage('SBB_COMPATIBLE_MODE'),
'TYPE' => 'CHECKBOX',
'DEFAULT' => 'Y'
),
"USE_GIFTS" => array(
"PARENT" => "GIFTS",
"NAME" => GetMessage("SBB_GIFTS_USE_GIFTS"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
"REFRESH" => "Y",
),
),
);
foreach ($iblockIds as $iblockId)
{
$fileProperties = array('-' => GetMessage('SBB_DEFAULT'));
$propertyIterator = CIBlockProperty::getList(
array('SORT' => 'ASC', 'NAME' => 'ASC'),
array('IBLOCK_ID' => $iblockId, 'ACTIVE' => 'Y')
);
while ($property = $propertyIterator->fetch())
{
if ($property['PROPERTY_TYPE'] == 'F')
{
$property['ID'] = (int)$property['ID'];
$propertyName = '['.$property['ID'].']'.($property['CODE'] != '' ? '['.$property['CODE'].']' : '').' '.$property['NAME'];
if ($property['CODE'] == '')
{
$property['CODE'] = $property['ID'];
}
$fileProperties[$property['CODE']] = $propertyName;
}
}
$arComponentParameters['PARAMETERS']['ADDITIONAL_PICT_PROP_'.$iblockId] = array(
'NAME' => GetMessage('SBB_ADDITIONAL_IMAGE').' ['.$iblockNames[$iblockId].']',
'TYPE' => 'LIST',
'MULTIPLE' => 'N',
'VALUES' => $fileProperties,
'ADDITIONAL_VALUES' => 'N',
'PARENT' => 'IMAGE_SETTINGS'
);
}
$arComponentParameters['PARAMETERS']['BASKET_IMAGES_SCALING'] = array(
'NAME' => GetMessage('SBB_BASKET_IMAGES_SCALING'),
'TYPE' => 'LIST',
'VALUES' => array(
'standard' => GetMessage('SBB_STANDARD'),
'adaptive' => GetMessage('SBB_ADAPTIVE'),
'no_scale' => GetMessage('SBB_NO_SCALE')
),
'DEFAULT' => 'adaptive',
'PARENT' => 'IMAGE_SETTINGS'
);
// hack for correct sort
if (isset($templateProperties['COLUMNS_LIST_MOBILE']))
{
$visibleColumns = isset($arCurrentValues['COLUMNS_LIST_EXT'])
? $arCurrentValues['COLUMNS_LIST_EXT']
: $arComponentParameters['PARAMETERS']['COLUMNS_LIST_EXT']['DEFAULT'];
if (!empty($visibleColumns))
{
$templateProperties['COLUMNS_LIST_MOBILE']['VALUES'] = array();
foreach ($visibleColumns as $column)
{
$templateProperties['COLUMNS_LIST_MOBILE']['VALUES'][$column] = $arComponentParameters['PARAMETERS']['COLUMNS_LIST_EXT']['VALUES'][$column];
}
if (!isset($arCurrentValues["COLUMNS_LIST_MOBILE"]))
{
$templateProperties['COLUMNS_LIST_MOBILE']['DEFAULT'] = array_keys($templateProperties['COLUMNS_LIST_MOBILE']['VALUES']);
}
$arComponentParameters['PARAMETERS']['COLUMNS_LIST_MOBILE'] = $templateProperties['COLUMNS_LIST_MOBILE'];
}
else
{
unset($arComponentParameters['PARAMETERS']['COLUMNS_LIST_MOBILE']);
}
unset($templateProperties['COLUMNS_LIST_MOBILE']);
}
else
{
unset($arComponentParameters['PARAMETERS']['COLUMNS_LIST_MOBILE']);
}
if (isset($templateProperties['LABEL_PROP']))
{
$templateProperties['LABEL_PROP']['VALUES'] = $listProperties;
if (!empty($arCurrentValues['LABEL_PROP']))
{
$selected = array();
foreach ($arCurrentValues['LABEL_PROP'] as $name)
{
if (isset($listProperties[$name]))
{
$selected[$name] = $listProperties[$name];
}
}
$templateProperties['LABEL_PROP_MOBILE']['VALUES'] = $selected;
}
else
{
if (!empty($templateProperties['LABEL_PROP_MOBILE']))
{
$templateProperties['LABEL_PROP_MOBILE']['HIDDEN'] = 'Y';
}
if (!empty($templateProperties['LABEL_PROP_POSITION']))
{
$templateProperties['LABEL_PROP_POSITION']['HIDDEN'] = 'Y';
}
}
}
if(!Loader::includeModule('catalog'))
{
unset($arComponentParameters["PARAMETERS"]["USE_GIFTS"]);
unset($arComponentParameters["GROUPS"]["GIFTS"]);
}
elseif($arCurrentValues["USE_GIFTS"] === null && $arComponentParameters['PARAMETERS']['USE_GIFTS']['DEFAULT'] == 'Y' || $arCurrentValues["USE_GIFTS"] == "Y")
{
$arComponentParameters['PARAMETERS'] = array_merge(
$arComponentParameters['PARAMETERS'],
array(
"GIFTS_PLACE" => array(
"PARENT" => "GIFTS",
"NAME" => GetMessage("SGB_PARAMS_PLACE_GIFT"),
"TYPE" => "LIST",
"DEFAULT" => "BOTTOM",
"VALUES" => array(
"TOP" => GetMessage('SGB_PARAMS_PLACE_GIFT_TOP'),
"BOTTOM" => GetMessage('SGB_PARAMS_PLACE_GIFT_BOTTOM'),
),
),
"GIFTS_BLOCK_TITLE" => array(
"PARENT" => "GIFTS",
"NAME" => GetMessage("SGB_PARAMS_BLOCK_TITLE"),
"TYPE" => "STRING",
"DEFAULT" => GetMessage("SGB_PARAMS_BLOCK_TITLE_DEFAULT"),
),
"GIFTS_HIDE_BLOCK_TITLE" => array(
"PARENT" => "GIFTS",
"NAME" => GetMessage("SGB_PARAMS_HIDE_BLOCK_TITLE"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "",
),
"GIFTS_TEXT_LABEL_GIFT" => array(
"PARENT" => "GIFTS",
"NAME" => GetMessage("SGB_PARAMS_TEXT_LABEL_GIFT"),
"TYPE" => "STRING",
"DEFAULT" => GetMessage("SGB_PARAMS_TEXT_LABEL_GIFT_DEFAULT"),
),
"GIFTS_PRODUCT_QUANTITY_VARIABLE" => array(
"PARENT" => "GIFTS",
"NAME" => GetMessage("CVP_PRODUCT_QUANTITY_VARIABLE"),
"TYPE" => "STRING",
"DEFAULT" => "quantity",
"HIDDEN" => (isset($arCurrentValues['USE_PRODUCT_QUANTITY']) && $arCurrentValues['USE_PRODUCT_QUANTITY'] == 'Y' ? 'N' : 'Y')
),
"GIFTS_PRODUCT_PROPS_VARIABLE" => array(
"PARENT" => "GIFTS",
"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')
),
"GIFTS_SHOW_OLD_PRICE" => array(
"PARENT" => "GIFTS",
"NAME" => GetMessage("CVP_SHOW_OLD_PRICE"),
"TYPE" => "CHECKBOX",
"VALUES" => "Y",
),
'GIFTS_SHOW_DISCOUNT_PERCENT' => array(
'PARENT' => 'GIFTS',
'NAME' => GetMessage('CVP_SHOW_DISCOUNT_PERCENT'),
'TYPE' => 'CHECKBOX',
'DEFAULT' => 'Y'
),
'GIFTS_MESS_BTN_BUY' => array(
'PARENT' => 'GIFTS',
'NAME' => GetMessage('CVP_MESS_BTN_BUY_GIFT'),
'TYPE' => 'STRING',
'DEFAULT' => GetMessage('CVP_MESS_BTN_BUY_GIFT_DEFAULT')
),
'GIFTS_MESS_BTN_DETAIL' => array(
'PARENT' => 'GIFTS',
'NAME' => GetMessage('CVP_MESS_BTN_DETAIL'),
'TYPE' => 'STRING',
'DEFAULT' => GetMessage('CVP_MESS_BTN_DETAIL_DEFAULT')
),
"GIFTS_PAGE_ELEMENT_COUNT" => array(
"PARENT" => "GIFTS",
"NAME" => GetMessage("SGB_PAGE_ELEMENT_COUNT"),
"TYPE" => "STRING",
"DEFAULT" => "4",
),
'GIFTS_CONVERT_CURRENCY' => array(
'PARENT' => 'GIFTS',
'NAME' => GetMessage('CVP_CONVERT_CURRENCY'),
'TYPE' => 'CHECKBOX',
'DEFAULT' => 'N',
'REFRESH' => 'Y',
),
'GIFTS_HIDE_NOT_AVAILABLE' => array(
'PARENT' => 'GIFTS',
'NAME' => GetMessage('CVP_HIDE_NOT_AVAILABLE'),
'TYPE' => 'CHECKBOX',
'DEFAULT' => 'N',
),
)
);
}