Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Добавление дополнительных фотографий в каталог

00 голосов
3
В каталоге товаров в свойствах инфоблока добавлен параметр MORE_PHOTO. Подскажите как можно добавлять дополнительные фото с помощью скрипта.
спросил 04 Июнь, 13 от barmalej (200 баллов)

3 Ответы

00 голосов
Вот такой код:
Код
$obj = CIBlockElement::GetList(array(), array("ID" => 5093));
while ($res = $obj->GetNextElement()) {
    $arValue = $res->GetProperty("MORE_PHOTO");
    print_r($arValue);
}

Выдает следующие результаты:
Цитата
Array
(
[ID] => 194
[TIMESTAMP_X] => 2007-04-12 17:11:53
[IBLOCK_ID] => 34
[NAME] => Все фото
[ACTIVE] => Y
[SORT] => 10
[CODE] => MORE_PHOTO
[DEFAULT_VALUE] =>
[PROPERTY_TYPE] => F
[ROW_COUNT] => 1
[COL_COUNT] => 30
[LIST_TYPE] => L
[MULTIPLE] => Y
[XML_ID] =>
[FILE_TYPE] => jpg, gif, bmp, png, jpeg
[MULTIPLE_CNT] => 5
[TMP_ID] =>
[LINK_IBLOCK_ID] => 0
[WITH_DESCRIPTION] =>
[SEARCHABLE] => N
[FILTRABLE] => N
[VERSION] => 1
[USER_TYPE] =>
[PROPERTY_VALUE_ID] => Array
(
[0] => 665230
[1] => 665231
)

[VALUE] => Array
(
[0] => 26577
[1] => 26578
)

[DESCRIPTION] => Array
(
[0] =>
[1] =>
)

[VALUE_ENUM] =>
[~VALUE] => Array
(
[0] => 26577
[1] => 26578
)

[~DESCRIPTION] => Array
(
[0] =>
[1] =>
)

[~NAME] => Все фото
[~DEFAULT_VALUE] =>
)


Собственно вопрос заключался в том, как определить PROPERTY_VALUE_ID для новой картинки.
ответил 04 Июнь, 13 от barmalej (200 баллов)
00 голосов
Я не уверен, что правильно понял задачу, но попытаюсь.
1) Вы добавляете картинку через CFile::SaveFile();
2) Вы добавляете новое значение множественного свойства 'MORE_PHOTO' через
CIBlockPropertyEnum::Add();
3) Метод возвращает вам ID добавленного свойства (это как раз те значения, которые попадают в PROPERTY_VALUE_ID).

Если это решение вам не подошло, опишите, пожалуйста, задачу более подробно.
ответил 11 Июнь, 13 от Ly (4,580 баллов)
00 голосов
Спасибо за помощь.
справился так:

if ($PRODUCT_ID && CModule::IncludeModule("iblock")) {
$PROP = array();
$PROP['MORE_PHOTO'][] = CFile::MakeFileArray($global_dir.$filename);
$arLoadProductArray = Array("PROPERTY_VALUES"=> $PROP);
$el2 = new CIBlockElement;
$res = $el2->Update($PRODUCT_ID, $arLoadProductArray);
}
ответил 13 Сен, 13 от barmalej (200 баллов)

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

0 голосов
3 ответов
0 голосов
3 ответов
0 голосов
4 ответов
спросил 06 Янв, 14 от ddvfty (440 баллов)
0 голосов
1 ответ
0 голосов
1 ответ