drupal_execute заполнение поля изображения - PullRequest
1 голос
/ 20 августа 2010

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

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

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

Ответы [ 2 ]

1 голос
/ 26 августа 2010

Я нашел решение, как показано ниже. я не знаю плюсы и минусы, но у меня все работает отлично.

$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 голос
/ 20 августа 2010

Если файл уже загружен в 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:
модуля Services. 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, чтобы уведомить другие модули о том, что файл был сохранен.

...