drupal_execute заполнение поля изображения

Как заполнить значение поля изображения с drupal_execute.

для ex у моего типа контента (test) есть два дополнительных поля 1. фото (изображение подано), 2. phid (текстовое поле)

для phid $ form_state ['values'] ['field_phid'] [0] ['value'] = '14 '; . как заполнить фотографию типом поля изображения

1
задан ArK 20 August 2010 в 10:39
поделиться

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);
1
ответ дан 2 September 2019 в 21:58
поделиться

Если файл уже загружен в Drupal и имеет идентификатор файла (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_save() в модуле служб file_service.inc:
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, чтобы уведомить другие модули о сохранении файла.

1
ответ дан 2 September 2019 в 21:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: