Создание контента и прикрипление к ниму изображения

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

Аватар пользователя likin likin 10 марта 2010 в 13:11

Доброго дня.
Такая ситуация...
Есть галирея изображений, тип galleryimage(изображение галиреи), созданое используя модуль cck.
В контенте есть поле imagefield.
Стояла задача реализовать быструю форму добавления реализовал,
но не как не могу сохранить изображение.
Укажите на мои ошибки, или подскажите какой-нибудь другой вариант...

$gallery=node_load($form["gallery_id"]["#value"]);
        //if ($file = file_save_upload('image', $validators, file_directory_path())) {
        if ($file = file_save_upload('image')) {
                // Do something with $file here.
                //print_r($file);
                file_set_status($file, FILE_STATUS_PERMANENT);
        } else print t("File was not uploaded.");
        $newnode = new stdClass();
        $newnode->title = $form["title"]["#value"];
        $newnode->field_s5_gallery=array(array("nid"=>$form["gallery_id"]["#value"]));
        $newnode->body = "";
        global $user;
        $newnode->uid = $user->uid;
        $newnode->type = 'galleryimage';
        $newnode->status = 1;
        $newnode->promote = 0;
        $newnode->field_s5_galleryimage[0]=
                array(
                  'fid' => 'upload',
          'title' =>$file->filename,
          'filename' => $file->filename,
          'filepath' => $file->filepath,
          'filesize' => filesize($file->filepath),
          'list' => 1, // always list
                );
        //
        node_save($newnode);

! не сохраняет никаких данных с $newnode->field_s5_galleryimage.

Спасибо.

Комментарии

Аватар пользователя wolfXXXL wolfXXXL 10 марта 2010 в 14:35

В таких случаях я всегда добавляю такую конструкцию (тут ей и научили):

$msg = print_r($newnode, TRUE);
drupal_set_message('<pre>'.$msg.'</pre>');

Перед node_save($newnode);
Сохраняю:
Вставьте эту же конструкцию поменяв $newnode на $node в начало функции node_save(); (потом не забудьте удалить!)
В второй вкладке создайте как обычно ноду с этим полем и сохраните.
Вот вам в двух вкладках как делается всё и работает и Ваш вариант.
Найти причину думаю теперь не составит труда.