Задать вопрос
@sagaton

Как задать xml_id элемента свойства, типа Список?

Задаются элементы типа список так:
{ $iblockId = $this->getIblockIdByCode('clothes');
$propId = $this->addIblockElementProperty([
'ID' => '20',
'NAME' => 'Сезон',
'SORT' => 500,
'CODE' => 'Seasons',
'PROPERTY_TYPE' => 'L', // Список
'LIST_TYPE' => 'C', // Тип списка - 'флажки'
'SMART_FILTER' =>"Y",
'MULTIPLE' => 'Y',
'IS_REQUIRED' => 'Y',
'VALUES' => [
'VALUE'[0] => 'Лето',
'VALUE' [1]=> 'Зима'

],
'IBLOCK_ID' => $iblockId,
]);
}
В итоге имя элемента списка указывается как надо, а вот xml_id формируется автоматически и имеет набор символов.
Как только не пробовал его задать вручную, никак не получалось его задать.
Подскажите, кто знает как правильно было бы задать xml для каждого элемента.
  • Вопрос задан
  • 817 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
art-zhitnik
@art-zhitnik
Разработка приложений Битрикс+Next.js+GraphQL
Если этот код работает в контексте библиотеки Bitrix-migrations можно попробовать так:
$propId = $this->addIblockElementProperty([
        ...
        'VALUES' => [
            [
                'VALUE' => 'Лето',
                'XML_ID' => 'summer',
            ],
            [
                'VALUE' => 'Зима',
                'XML_ID' => 'winter',
            ]
        ],
        ...
    ]);
Ответ написан
Комментировать
@sagaton Автор вопроса
Не этот не совсем работает. все что в VALUES, воспринимается как имя свойства, хоть если писать id всеравно будет именем. решение я нашел вот часть кода.
$iblockId = $this->getIblockIdByCode('clothes');

$arFields = Array(
"ID" =>22,
"NAME" => "Сезон",
"ACTIVE" => "Y",
"SORT" => "600",
"CODE" => "Seasons",
"PROPERTY_TYPE" => "L",
'LIST_TYPE' => 'C', // Тип списка - 'флажки'
'SMART_FILTER' =>"Y",
'MULTIPLE' => 'Y',
'IS_REQUIRED' => 'Y',
"IBLOCK_ID" => 2

);

$arFields["VALUES"][0] = Array(
"XML_ID" => "Leto",
"VALUE" => "Лето",
"DEF" => "Y",
"SORT" => "100",
'DEF' => 'Y'
);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы