Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Назад в раздел
то ждем ваше обращение в нашей службе тех поддержки.
Копирование значений полей элементов в свойства
Рассмотрим пример функции, которая копирует значения полей элементов инфоблока ($_FROM_FIELD_NAMES
) в свойства элементов инфоблока ($TO_PROPERTY_NAMES
).
Копироваться будут поля Начало активности (DATE_ACTIVE_FROM) и Окончание активности (DATE_ACTIVE_TO) в свойства DATE_BEGIN и DATE_END элементов инфоблока с ID = 22:
function copy_from_fields_to_propertys_values( $IBLOCK_ID, $_FROM_FIELD_NAMES, $TO_PROPERTY_NAMES ){ /* * * $_FROM_FIELD_NAMES = array(DATE_ACTIVE_FROM, DATE_ACTIVE_TO); * $TO_PROPERTY_NAMES = array(DATE_BEGIN, DATE_END); * copy_from_fields_to_propertys_values(22, array("DATE_ACTIVE_FROM","DATE_ACTIVE_TO"), array("DATE_BEGIN","DATE_END")); * */ if ( CModule::IncludeModule ( "iblock" ) ){ $arOrder = array( "sort" => "ASC", ); $arFilter = array( "IBLOCK_ID" => $IBLOCK_ID, ); foreach ( $TO_PROPERTY_NAMES as $property_name ) { $TO_PROPERTY_NAMES_with_prop[] = 'PROPERTY_' . $property_name; } $arSelect = array( "NAME", "ID" ); $arSelect = array_merge ( $arSelect, $_FROM_FIELD_NAMES, $TO_PROPERTY_NAMES_with_prop ); $db_elemens = CIBlockElement::GetList ( $arOrder, $arFilter, false, false, $arSelect ); while ( $arElement = $db_elemens->Fetch () ) { $PRODUCT_ID = $arElement["ID"]; foreach ( $TO_PROPERTY_NAMES as $key => $property_name ) { CIBlockElement::SetPropertyValues ( $PRODUCT_ID, $IBLOCK_ID, $arElement[$_FROM_FIELD_NAMES[$key]], $property_name ); } } } else { die( "Модуль iblock не установлен" ); } }
Дополнительная информация
- Документация по методу CIBlockElement::SetPropertyValues
Назад в раздел
Подписаться на новые материалы раздела: