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 с imagefield tokens при помощи этого хука?
@Макс попробуйте
Я так понимаю для блоков это работать не будет?
если у вас получится добавить блоку поле, то будет
Оставить комментарий