Bitrix: работаем с картинками в CUser
У каждого зарегистрированного пользователя в битриксе есть пачка полей, в которых хранятся логин, пароль, мыло и всякая фигня, типа мест работы, асек. Хранятся так же картинки (например аватарка). Поле это называется PERSONAL_PHOTO.
Фишка хитрая. Для того, чтобы добавить картинку, надо сделать file array:
Array(
“name” => “название файла”,
“size” => “размер”,
“tmp_name” => “временный путь на сервере”,
“type” => “тип загружаемого файла”)
И уже этот массив отправлять в поле для картинки. Соорудить его можно самостоятельно на основе данных $_FILE (если вы, например, отправляли форму) или с помощью функции CFile::MakeFileArray, которой достаточно отправить адрес файла на сервере.
А вот с удалением хитро. Я, похоже, не сталкивался с аналогичной штукой при работе с инфоблоками, так как считал, что достаточно просто отправить пустое поле и все сотрется. Оказывается нет. Нужно отправлять вот такую штуку:
$fields['PERSONAL_PHOTO']["old_file"]=$arUser['PERSONAL_PHOTO'];
$fields['PERSONAL_PHOTO']["del"]=’Y';
Самое странное, что в документации этого не нашел, копался в исходниках админки…

Ваш отзыв