есть такой код:
global $USER_FIELD_MANAGER;
$arFields = $USER_FIELD_MANAGER->GetUserFields("USER");
$obEnum = new CUserFieldEnum;
$rsEnum = $obEnum->GetList(array(), array("USER_FIELD_ID" => $arFields["UF_LISTFAVORITES"]["ID"]));
$arFavorit = array();
while($arEnum = $rsEnum->GetNext()){
$arFavorit[] = $arEnum["VALUE"];
}
if (!in_array($_POST['p_id'], $arFavorit)) {
$arFields = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields("USER");
if(array_key_exists("UF_LISTFAVORITES", $arFields))
{
$FIELD_ID = $arFields["UF_LISTFAVORITES"]["ID"];
// Добавим значение выпадающего списка
$obEnum = new CUserFieldEnum;
$obEnum->SetEnumValues($FIELD_ID, array(
"n0" => array(
"VALUE" => $_POST['p_id'],
),
));
}
}
if (in_array($_POST['p_id'], $arFavorit)) {
// Удалим значение из списка
$rsEnum = CUserFieldEnum::GetList(array(), array(
"VALUE" => $_POST['p_id'],
));
if($arEnum = $rsEnum->Fetch())
{
$obEnum = new CUserFieldEnum;
$obEnum->SetEnumValues($FIELD_ID, array(
$arEnum["ID"] => array(
"DEL" => "Y",
),
));
}
}
Столкнулся с проблемой, что значения которые добавляются/удаляются - у каждого пользователя один и тот же список значений, а нужно формировать и обрабатывать для каждого пользователя отдельный список значений.
Подскажите как реализовать?
В каком смысле разные? Выбор вариантов у каждого свой? Или выбранные значения?
По результатам отработки кода значения записываются и удаляются для всех пользователей, т.е. у каждого пользователя одинаковый список значений, а нужно чтобы они соответствовали значениям которые принадлежат конкретному пользователю. Этот код реализует на подобие списка сохраненных товаров пользователя (через дополнительное поле).
Так вам множественное числовое или строчное нужно. Или вообще - привязка к элементам инфоблока.
Тип данных = Список
Еще раз. Этот тип данных подходит для вашей задачи.
в пользовательское свойство сохраняются ID отмеченных пользователем товаров
У вас общее списочное поле и вы его правите на каждом юзере. Тут больше множественное числовое подойдет с дальнейшей кастомизацией вывода. Либо множественной привязкой к элементам иб опятьже с дальнейшей кастомизацией выбора.
Если использовать свойство строка (множественное) как добавить/удалить значения для конкретного пользователя. Какими методами нужно воспользоваться?
Global $USERFIELDMAGER->SetValues(user,uid,[field=>[]])
Обсуждают сегодня