Как программно добавить несколько изображений на узел в Drupal - если это возможно - PullRequest
0 голосов
/ 28 августа 2010

Я пытаюсь подключить несколько изображений к узлу программно в Drupal 7, но не знаю как.Я даже не уверен, что это возможно.Вот мой код для прикрепления одной картинки к узлу, и она работает.Пожалуйста, если кто-то может помочь мне, как прикрепить несколько изображений более одного к полю изображения

$ node-> field_image ['und'] [0] ['fid'] = $ get_fid-> fid;

Ответы [ 2 ]

2 голосов
/ 28 августа 2010

я понял ... сначала вы должны изменить настройки поля изображения для загрузки от 1 до 10 или неограниченно, чем это очень просто

foreach($sav_fid as $sn_fid) {
  $node->field_image['und'][$cnt_dlt]['fid'] = $sn_fid;
  $cnt_dlt++;
}

это будет сделано, когда field_image является основным полем изображенияприкрепленный к узлу api.

['und'] - это просто код языка, который, я думаю, означает неопределенное.

[$ cnt_dlt] - переменная счетчика, которая инициализирует 0, а затем увеличивается на 1 иэта часть является дельтой (это число будет увеличивать прикрепленные изображения).

[fid] - это ссылка field_image на файл в таблице managed_file.

$ sn_fid - это fid (идентификатор файла)из таблицы управляемых файлов.

для создания и присоединения изображения к узлу с помощью node_save ($ node);вы загрузили файл с помощью file_copy ($ files);и сохраните фид, создав объект и сохранив из него результат.

0 голосов
/ 27 ноября 2017

Есть преимущества, если вы добавите счетчик использования файлов. Менее минималистский подход:

foreach ($sav_fid as $sn_fid) {
  $file = file_load($sn_fid);
  if (isset($file->filename)) {
    file_usage_add($file, 'file', 'node', $node->nid); 
    $node->field_images[LANGUAGE_NONE][] = array(
      'fid' => $file->fid,
      'filename' => $file->filename,
      'filemime' => $file->filemime,
      'uid' => 1,
      'uri' => $file->uri,
      'status' => 1
    );
  }
}
node_save($node);
...