【问题标题】:How to add multiple images to the node programmatically in Drupal - if possible如何在 Drupal 中以编程方式将多个图像添加到节点 - 如果可能
【发布时间】:2010-08-27 21:06:36
【问题描述】:

我正在尝试在 drupal 7 中以编程方式将多张图片附加到节点,但不知道如何。我什至不确定它是否可能。这是我将一张图片附加到节点的代码,它可以工作。请如果有人可以帮助我如何将多张图片附加到图像字段中

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

【问题讨论】:

    标签: php drupal drupal-6 drupal-7


    【解决方案1】:

    我明白了...首先您必须更改图像字段设置以在 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,这部分是delta(这个数字会增加附加图像)。

    [fid] 是对 managed_file 表中文件的 field_image 引用。

    $sn_fid 是 managed_file 表中的 fid(文件 ID)。

    为了使用 node_save($node) 创建图片并将其附加到节点;您已使用 file_copy($files); 上传文件并通过创建一个对象并从中保存结果来保存 fid。

    【讨论】:

      【解决方案2】:

      添加文件使用计数器会有好处。 一种不那么简约的方法:

      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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-22
        • 1970-01-01
        相关资源
        最近更新 更多