- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/lib/component/base.php
- Класс: BitrixIblockComponentBase
- Вызов: Base::modifyElementCommonData
protected function modifyElementCommonData(array &$element)
{
$element['ID'] = (int)$element['ID'];
$element['IBLOCK_ID'] = (int)$element['IBLOCK_ID'];
if ($this->arParams['HIDE_DETAIL_URL'])
{
$element['DETAIL_PAGE_URL'] = $element['~DETAIL_PAGE_URL'] = '';
}
if ($this->isEnableCompatible())
{
$element['ACTIVE_FROM'] = ($element['DATE_ACTIVE_FROM'] ?? null);
$element['ACTIVE_TO'] = ($element['DATE_ACTIVE_TO'] ?? null);
}
$ipropValues = new IblockInheritedPropertyElementValues($element['IBLOCK_ID'], $element['ID']);
$element['IPROPERTY_VALUES'] = $ipropValues->getValues();
IblockComponentTools::getFieldImageData(
$element,
array('PREVIEW_PICTURE', 'DETAIL_PICTURE'),
IblockComponentTools::IPROPERTY_ENTITY_ELEMENT,
'IPROPERTY_VALUES'
);
if (isset($element['~TYPE']))
{
$productFields = $this->getProductFields($element['IBLOCK_ID']);
$translateFields = $this->getCompatibleProductFields();
$element['PRODUCT'] = array(
'TYPE' => (int)$element['~TYPE'],
'AVAILABLE' => $element['~AVAILABLE'],
'BUNDLE' => $element['~BUNDLE'],
'QUANTITY' => $element['~QUANTITY'],
'QUANTITY_TRACE' => $element['~QUANTITY_TRACE'],
'CAN_BUY_ZERO' => $element['~CAN_BUY_ZERO'],
'MEASURE' => (int)$element['~MEASURE'],
'SUBSCRIBE' => $element['~SUBSCRIBE'],
'VAT_ID' => (int)$element['~VAT_ID'],
'VAT_RATE' => 0,
'VAT_INCLUDED' => $element['~VAT_INCLUDED'],
'WEIGHT' => (float)$element['~WEIGHT'],
'WIDTH' => (float)$element['~WIDTH'],
'LENGTH' => (float)$element['~LENGTH'],
'HEIGHT' => (float)$element['~HEIGHT'],
'PAYMENT_TYPE' => $element['~PAYMENT_TYPE'],
'RECUR_SCHEME_TYPE' => $element['~RECUR_SCHEME_TYPE'],
'RECUR_SCHEME_LENGTH' => (int)$element['~RECUR_SCHEME_LENGTH'],
'TRIAL_PRICE_ID' => (int)$element['~TRIAL_PRICE_ID']
);
$vatId = 0;
$vatRate = 0;
if ($element['PRODUCT']['VAT_ID'] > 0)
$vatId = $element['PRODUCT']['VAT_ID'];
elseif ($this->storage['IBLOCKS_VAT'][$element['IBLOCK_ID']] > 0)
$vatId = $this->storage['IBLOCKS_VAT'][$element['IBLOCK_ID']];
if ($vatId > 0 && isset($this->storage['VATS'][$vatId]))
$vatRate = $this->storage['VATS'][$vatId];
$element['PRODUCT']['VAT_RATE'] = $vatRate;
unset($vatRate, $vatId);
$element['PRODUCT']['USE_OFFERS'] = $element['PRODUCT']['TYPE'] == CatalogProductTable::TYPE_SKU;
if ($this->isEnableCompatible())
{
foreach ($translateFields as $currentKey => $oldKey)
$element[$oldKey] = $element[$currentKey];
unset($currentKey, $oldKey);
$element['~CATALOG_VAT'] = $element['PRODUCT']['VAT_RATE'];
$element['CATALOG_VAT'] = $element['PRODUCT']['VAT_RATE'];
}
else
{
// temporary (compatibility custom templates)
$element['~CATALOG_TYPE'] = $element['PRODUCT']['TYPE'];
$element['CATALOG_TYPE'] = $element['PRODUCT']['TYPE'];
$element['~CATALOG_QUANTITY'] = $element['PRODUCT']['QUANTITY'];
$element['CATALOG_QUANTITY'] = $element['PRODUCT']['QUANTITY'];
$element['~CATALOG_QUANTITY_TRACE'] = $element['PRODUCT']['QUANTITY_TRACE'];
$element['CATALOG_QUANTITY_TRACE'] = $element['PRODUCT']['QUANTITY_TRACE'];
$element['~CATALOG_CAN_BUY_ZERO'] = $element['PRODUCT']['CAN_BUY_ZERO'];
$element['CATALOG_CAN_BUY_ZERO'] = $element['PRODUCT']['CAN_BUY_ZERO'];
$element['~CATALOG_SUBSCRIBE'] = $element['PRODUCT']['SUBSCRIBE'];
$element['CATALOG_SUBSCRIBE'] = $element['PRODUCT']['SUBSCRIBE'];
}
foreach ($productFields as $field)
unset($element[$field], $element['~'.$field]);
unset($field);
}
else
{
$element['PRODUCT'] = array(
'TYPE' => null,
'AVAILABLE' => null,
'USE_OFFERS' => false
);
}
$element['PROPERTIES'] = array();
$element['DISPLAY_PROPERTIES'] = array();
$element['PRODUCT_PROPERTIES'] = array();
$element['PRODUCT_PROPERTIES_FILL'] = array();
$element['OFFERS'] = array();
$element['OFFER_ID_SELECTED'] = 0;
if (!empty($this->storage['CATALOGS'][$element['IBLOCK_ID']]))
$element['CHECK_QUANTITY'] = $this->isNeedCheckQuantity($element['PRODUCT']);
if ($this->getAction() === 'bigDataLoad')
{
$element['RCM_ID'] = $this->recommendationIdToProduct[$element['ID']];
}
}