neos: Блог

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

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

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;

[Решено] Програмное создание ноды с Image field в Drupal 7

6 марта 2011 в 18:48

Решил перевести сайт с самописного двжика на друпал 7. Пытаюсь программно добавить ноды через node_save() и drupal_form_submit() - с текстовыми полями title и body все хорошо, но к ноде также нужно прикрепить изображение. Для изображения в типе материала создано специальное поле (filed_teaser) с типом "Изображение".

Пытался и так:

  // картинка предварительно положена в папку files
  $file_temp = '/home/neos/www/sites/default/files/1.jpg';
  $node->field_teaser = array(
    array(
      'fid' => 'upload',
      'title' => basename($file_temp),
      'filename' => basename($file_temp),
      'filepath' => $file_temp,
      'filesize' => filesize($file_temp),
      'description' =>  basename($file_temp),
      'list' => 1,
    ),
  );
  node_save($node);

Нода создается, но ничего не прикреплено

И так:

$form_state['values']['field']['teaser']['ru']['0']['upload'] = array('http://path/to/image/1.jpg');
drupal_form_submit('news_node_form', $form_state, (object)$node);

Опять же нода создается, но ничего не прикреплено.

Что только уже не перепробывал, но либо ошибки, либо ничего не прикрепляется...
Уже вторые сутки бьюсь, но никакого продаижения нету.
Прошу помоши сообщества. Заранее благодарен!