Возможно, вам придется использовать hook_nodeapi, чтобы установить это правильно.Вы захотите изменить его в операции «Вставка».Убедитесь, что вы восстановили узел после добавления обязательных полей.
Drupal хочет сопоставить изображение с записью в таблице файлов, поэтому простая настройка URL не будет работать.Прежде всего, если это удаленный файл, вы можете использовать функцию, указанную в модуле Brightcove в строке 176, brightcove_remote_image , чтобы захватить изображение и переместить его в локальный каталог.
После перемещения удаленного образа на место необходимо сохранить его в таблице файлов, а затем правильно настроить свойство узла.Я сделал это следующим способом:
////// in NodeAPI /////
case "insert":
$node->field_image[0] = _mymod_create_filearray($image_url);
node_save($node);
Это записывает записи файлов, а затем возвращает правильно отформатированный массив изображений.
///// mymod_create_filearray /////
function _mymod_create_filearray($remote_url){
if ($file_temp = brightcove_remote_image($remote_url)) {
$file = new stdClass();
$file->filename = basename($file_temp);
$file->filepath = $file_temp;
$file->filemime = file_get_mimetype($file_temp);
$file->filesize = filesize($file_temp);
$file->uid = $uid;
$file->status = FILE_STATUS_PERMANENT;
$file->timestamp = time();
drupal_write_record('files', $file);
$file = array(
'fid' => $file->fid,
'title' => basename($file->filename),
'filename' => $file->filename,
'filepath' => $file->filepath,
'filesize' => $file->filesize,
'mimetype' => $mime,
'description' => basename($file->filename),
'list' => 1,
);
return $file;
}
else {
return array();
}
}
И это должно сделать это.Дайте знать, если у вас появятся вопросы.