+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Поля к нештатным объектам и новые объекты

Создание пользовательского поля к нештатным объектам

Иногда возникает необходимость создавать пользовательские поля к объектам, у которых нет поддержки пользовательских полей по умолчанию. В таком случае, можно самостоятельно создать пользовательское свойство для этого объекта Помните при этом, что в методах 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);


Назад в раздел

Подписаться на новые материалы раздела:














CAPTCHA