xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Сохранение файлов, загруженных с помощью 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 в настройках модуля должна быть включена.

Добавлено 23.04.2015: в версии 2.x возможность прикреплять файлы к полям доступна из админки.

Написанное актуально для One Click Upload 7.x-1.x-dev
Похожие записи

Комментарии RSS

Огромное спасибо! Давно пользуюсь твоим модулем, а теперь станет еще приятней им пользоваться =)

Очень полезное дополнение

Спасибо за модуль, есть один вопрос: можно ли подружить one click upload с imagefield tokens при помощи этого хука?

@Макс попробуйте

Я так понимаю для блоков это работать не будет?

если у вас получится добавить блоку поле, то будет

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании