то ждем ваше обращение в нашей службе тех поддержки.
Поля к нештатным объектам и новые объекты
Создание пользовательского поля к нештатным объектам
Иногда возникает необходимость создавать пользовательские поля к объектам, у которых нет поддержки пользовательских полей по умолчанию. В таком случае, можно самостоятельно создать пользовательское свойство для этого объекта Помните при этом, что в методах GetList поддерживаются только системные объекты. .
Рассмотрим это на примере комментариев блога. Например, у каждого комментария необходимо создавать свойство Рейтинг.
Создаем в административной части пользовательское свойство нужного типа (Настройки > Настройки продукта > Пользовательские поля). Заполняем все поля, в поле Объект указываем любое придуманное имя объекта, главное, чтобы оно было уникально. В нашем случае, напишем BLOG_RATING
.
Для считывания и записи значений пользовательских свойств можно использовать следующие функции:
function SetUserField ($entity_id, $value_id, $uf_id, $uf_value) //запись значения { return $GLOBALS["USER_FIELD_MANAGER"]->Update ($entity_id, $value_id, Array ($uf_id => $uf_value)); } function GetUserField ($entity_id, $value_id, $uf_id) //считывание значения { $arUF = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields ($entity_id, $value_id); return $arUF[$uf_id]["VALUE"]; } // $entity_id - имя объекта (у нас "BLOG_RATING") // $value_id - идентификатор элемента (вероятно, ID элемента, свойство которого мы сохраняем или получаем. в нашем случае, это ID комментария) // $uf_id - имя пользовательского свойства (в нашем случае UF_RATING) // $uf_value - значение, которое сохраняем
Пример использования:
SetUserField ("BLOG_RATING", $CommentID, "UF_RATING", $Rating); echo "Рейтинг комментария: ".GetUserField ("BLOG_RATING", $CommentID, "UF_RATING");
Создание пользовательских полей вручную не так удобно, как использование функций GetList для объектов с поддержкой пользовательских свойств по умолчанию. Однако, он позволяет максимально быстро и просто использовать в самописных компонентах и модулях пользовательские свойства для произвольных объектов.
Создание собственного объекта
Можно создать любой объект и работать с ним как вам удобно. Пример:
$GLOBALS["USER_FIELD_MANAGER"]->Update("GRADEBOOK_RESULT", $ID, Array("UF_TEACHERS"=>$arValue));
$arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("GRADEBOOK_RESULT", $ID);
Назад в раздел