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

PROPERTY_VALUES

00 голосов
4
Подскажите пожалуйста такую вещщь добавляю новый элемент по примеру из документации:
Код
<?
$el = new CIBlockElement;

$PROP = array();
$PROP[12] = "Белый";  // свойству с кодом 12 присваиваем значение "Белый"
$PROP[3] = 38;        // свойству с кодом 3 присваиваем значение 38

$arLoadProductArray = Array(
  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
  "IBLOCK_SECTION_ID" => false,          // элемент лежит в корне раздела
  "IBLOCK_ID"      => 18,
  "PROPERTY_VALUES"=> $PROP,
  "NAME"           => "Элемент",
  "ACTIVE"         => "Y",            // активен
  "PREVIEW_TEXT"   => "текст для списка элементов",
  "DETAIL_TEXT"    => "текст для детального просмотра",
  "DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
  );

if($PRODUCT_ID = $el->Add($arLoadProductArray))
  echo "New ID: ".$PRODUCT_ID;
else
  echo "Error: ".$el->LAST_ERROR;
?>

вроде всё работает но есть пару загвосток в строке "PROPERTY_VALUES"=> $PROP.
элементы добавляются с PREVIEW_TEXT_TYPE=text и DETAIL_TEXT_TYPE=text
я так понял чтобы эти значения были html нужно написать чтото вроде
Код
$PROP = array();
$PROP [ID или CODE][0] = Array("VALUE" => Array ("TEXT" => "значение", "TYPE" => "htm"));

так вот чем должно быть ID или CODE
и что должно быть тут "TEXT" => "значение", если содержимое для предварительного/полного просмотра, то получится, что эти параметры
"PREVIEW_TEXT" => "текст для списка элементов",
"DETAIL_TEXT" => "текст для детального просмотра",
нужно будет оставить пустыми.

Что написать в $PROP чтобы PREVIEW_TEXT и DETAIL_TEXT были в формате html. Помогите пожалуйста разобраться.

Нашол в мануале, правда в том месте где совсем не ожидал.
Код
$text = '<b>simple_text</b>'; // simple_text 
$text_type = 'html'; // text 
"PREVIEW_TEXT"      => $text, 
"PREVIEW_TEXT_TYPE"     => $text_type, 
"DETAIL_TEXT"       => $text, 
"DETAIL_TEXT_TYPE"     => $text_type,


Топик можно закрывать.
спросил 20 Сен, 13 от Fatalshin (260 баллов)

4 Ответы

00 голосов
вы путаете свойства(вы их создаете в настройках инфоблока) и поля - это разные вещи.

чтобы сделать превью и детайл текст в виде html.

Код

$arLoadProductArray = Array(
  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
  "IBLOCK_SECTION_ID" => false,          // элемент лежит в корне раздела
  "IBLOCK_ID"      => 18,
  "PROPERTY_VALUES"=> $PROP,
  "NAME"           => "Элемент",
  "ACTIVE"         => "Y",            // активен
  "PREVIEW_TEXT"   => "текст для списка элементов",
  "DETAIL_TEXT"    => "текст для детального просмотра",
  "PREVIEW_TEXT_TYPE" => "html",
  "DETAIL_TEXT_TYPE" => "html",
  "DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
  ); 



в $PROP[ID или CODE]:

ID - идентификатор свойства инфоблока
CODE - символьный код свойства инфоблока
ответил 26 Сен, 13 от Poleolog (1,240 баллов)
00 голосов
ну да именно так я и сделал, всё заработало, но например это
Код
$PROP = array(); 
$PROP[12] = "Белый";  // свойству с кодом 12 присваиваем значение "Белый" 
$PROP[3] = 38;        // свойству с кодом 3 присваиваем значение 38 


для меня так и осталось загадкой, куда это идет, и зачем вообще это нужно %)
ответил 26 Дек, 13 от Fatalshin (260 баллов)
00 голосов
В данном случае лучше обратиться к документации
http://dev.1c-bitrix.ru/api_help/iblock/index.php

обратите внимание на понятия поля и свойства
ответил 12 Апр, 14 от jenia (1,500 баллов)
00 голосов
Кажется я разобрался.
В настройках инф блока > Настройка свойств элементов создал несколько свойств
ID Название Код
194 ОГРН ogrn
195 ИНН inn

Дальше всё просто
Код
$PROP = array();
$PROP[194] = 123456;  
$PROP[195] =  54321; 
 


Картина для меня теперь полностью ясна спасибо.
ответил 05 Авг, 14 от Fatalshin (260 баллов)

Связанных вопросов не найдено