Сохранение файлов, загруженных с помощью One Click Upload, в File/Image field

Одной из причин, по которой некоторые обходили стороной модуль One Click Upload, это загрузка файлов "в никуда". Т.е. загруженные файлы никак не связанны с тем содержимым, в котором они выводятся и нет способа автоматически удалять эти файлы при удалении содержимого.

С помощью последней dev версии модуля и небольшого количества кода, можно сохранять файлы в любое file или image поле.

Пример сохранения картинок в поле field_inline_images для нод и комментариев:

/**
 * Implements hook_ocupload_files_saved().
 */
function MODULENAME_ocupload_saved_data_alter(&$files, &$form, &$form_state) {
  if (
    isset($form['#entity_type']) &&
    in_array($form['#entity_type'], array('node', 'comment')) &&
    isset($form_state['values']['field_inline_images'])
  ) {
    foreach ($files as $file) {
      $form_state['values']['field_inline_images']['und'][] = array(
        'fid' => $file->fid,
        '_weight' => 100,
      );
    }
  }
}

Замечание: опция Delete unused files в настройках модуля должна быть включена.

Написанное актуально для
One Click Upload 7.x-1.x-dev
Теги:
upload, работа с полями, работа с файлами
Добавлено: 30 Июля 2018 08:29:53 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...