Для тех кто только начинает писать сайты на битриксе полезно будет знать как работать с инфоблоками. Инфоблоки это по сути те же таблицы, которые создаются в админке битрикса и могут быть использованы в ваших компонентах и модулях. В инфоблоках есть такое понятие как «Свойства». Свойства это по сути те поля, в которых можно хранить необходимую информацию. Чтобы не было глюков и прочих заморочек в поле «код» свойства инфоблока желательно писать его в uppercase на латинице например «SHOP_ID», «SHOP_NAME».
Инфоблоки создаются в админке:
https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=34&LESSON_ID=2202
После создания инфоблока можно с ним уже работать.
Приведу простые примеры:
———————————————————————————————
Получить ID инфоблока по его символьному имени
$result = CIBlock::GetList(array(), array('TYPE' => 'fav_shops', 'CODE' => 'user_reviews'));
if ($row = $result->Fetch()) $info_id = intval($row['ID']);
Запрос на выборку данных из инфоблока
/*
*Тут указываем какие поля хотим извлечь. Если нужно извлечь свойство добавляем перед ним PROPERTY
*Например есть у нас свойство SHOP_RATE, чтобы его выбрать нужно указать PROPERTY_SHOP_RATE
*/
$arSelect = array("ID","NAME","PROPERTY_SHOP_RATE");
//Тут указываем ID инфоблока и дополнительные поля для фильтра-аналог WHERE в sql
$arFilter = array("IBLOCK_ID"=>$info_id,"PROPERTY_USER"=>$USER->GetID());
//Сюда передаем эти два массива
$rsItems = CIBlockElement::GetList(array("ID"=>"DESC"), $arFilter, false, false, $arSelect);
while($arItem = $rsItems->GetNext()){
//Выведем значение свойства
//Нужно обратить внимание,что еще добавляется VALUE
echo $arItem["PROPERTY_SHOP_RATE_VALUE"];
//Выведем простое поле
echo $arItem["NAME"];
}
—————————————————————————————————
Добавить информацию в инфоблок
//В массив $PROP прописываются названия свойств и им присваиваются значения
$element=new CIBlockElement;
$PROP = array();
$PROP['USER'] = $USER->GetID();
$PROP['SHOP_ID']= $shop_id;
$information = array(
"IBLOCK_ID" => $info_id,
"PROPERTY_VALUES"=> $PROP,
"NAME" => "Название элемента"
);
$element->Add($information);
—————————————————————————————————-
Обновить свойство:
//$id -идентификатор записи что нужно обновить