如何使用drupal_execute 填充图像字段值。
例如,我的内容类型(测试)有两个附加字段 1. 照片(图像字段),2. phid(文本字段)
对于 phid $form_state['values']['field_phid'][0]['value'] ='14';
。如何填充图像字段类型的照片
如果文件已经上传到 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 通知其他模块文件已保存。
我找到了如下解决方案。我不知道利弊,但它对我来说很好。
$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);