【问题标题】:drupal_execute populating image fielddrupal 执行填充图像字段
【发布时间】:2010-08-20 08:07:46
【问题描述】:

如何使用 drupal_execute 填充图像字段值。

for ex 我的内容类型(测试)有两个附加字段 1. 照片(图片归档), 2. phid(文本字段)

对于 phid $form_state['values']['field_phid'][0]['value'] ='14'; 。如何填充图片字段类型的照片

【问题讨论】:

    标签: image drupal field execute


    【解决方案1】:

    如果文件已经上传到 Drupal 并且有一个文件 ID (fid) 那么你可以这样做

    $form_state['values']['field_image_filed'][0]['fid'] = 17; //where 17 is the Drupal file ID of the file you want input
    

    如果文件尚未上传,那就更麻烦了。您首先需要以编程方式创建文件。我无法直接引导您完成它,但查找模板以了解它应该如何完成的好地方是服务模块的 file_service.inc 中的 file_service_save() 函数:
    http://drupalcode.org/viewvc/drupal/contributions/modules/services/services/file_service/file_service.inc?revision=1.1.2.7.2.3&view=markup&pathrev=DRUPAL-6--2-2

    明确一点:我并不是说您将使用 file_service_save() 来完成上传,而是该代码向您展示了需要做什么。它将向您展示如何使用 file_save_data() 将文件保存到服务器,将文件记录到 Drupal“文件”表,然后调用 hook_file_insert 通知其他模块文件已保存。

    【讨论】:

      【解决方案2】:

      我找到了如下解决方案。我不知道利弊,但它对我来说很好。

      $image = "*******/test.jpg";
      $field = content_fields('field_img', 'img_test');
      $validators = array_merge(filefield_widget_upload_validators($field), imagefield_widget_upload_validators($field));
      $files_path = filefield_widget_file_path($field);
      $form_state['values']['field_img'][]= field_file_save_file($image, $validators, $files_path, FILE_EXISTS_REPLACE);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多