user_save не сохраняет аватар

Главные вкладки

Аватар пользователя neos neos 1 августа 2011 в 8:24

Здравствуйте. Столкнулся с такой проблемой на Drupal 7 - не получается через функцию user_save сохранить аватарку пользователя.

Вот пример кода:

// загружаю юзера с uid = 66
$u = user_load(66);
// назначаю в качестве аватара картинку с fid = 3. Картинка уже загружена на сервер и прописана в таблице file_managed
$a = array('picture' => 3);
// сохраняю юзера
$u = user_save($u, $a);
// вывожу объект пользователя, $user->picture - пустой
var_dump($u);

Пробовал и перед сохранением $u->picture = 3, результата никакого.

прошу помощи, как правильно привязать уже загруженную картинку в качестве аватара пользователя?

UPDATE:
Попробовал сохранить так, теперь все корректно сохраняется:

$u->picture = new StdClass();
$u->picture->fid = 3;
$u->picture->status = 1;
user_save($u);

НО, если сделать после этого опять user_load(...), user_save(...) - аватарка пропадает:

$u = user_load(66);
echo 'Picture : '.$u->picture; // выведет Picture: 3;
$u = user_save($u);
echo 'Picture : '.$u->picture; // выведет Picture: 0;

Комментарии