Загрузка файла в один клик в Drupal формах

Раздражающая многих особенность друпальных форм, когда пользователь видит избыточное количество элементов формы, связанных с загрузкой файла, может быть довольно просто устранена.

Рассмотрим шаблон, генерируемый Drupal для поля загрузки файла.

Предусмотрена следующая логика:

  • пользователь читает описание поля,
  • нажимает на кнопку «Выберите файл» (появляется диалог выбора файла),
  • выбирает файл на локальном носителе (диалог скрывается, а имя файла появляется в поле на форме),
  • пользователь нажимает «закачать», чтобы файл был отправлен на сервер

Хотя нажимать кнопку «закачать» — не является обязательным действием сразу после выбора файла, но пользователи путаются в этих лишних кнопках, раздражаются и тратят больше времени, чем необходимо. А все файлы итак будут загружены при отправке формы.

Это лишнее действие следует оптимизировать.

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

Загрузка сразу при выборе файла

Нажмем кнопку загрузки файла за пользователя, при этом саму кнопку спрячем, чтобы она не отвлекала внимание.

Выполнять эту не хитрую операцию будет следующий скрипт:

Оформлен код в виде behaviors, в первую очередь для того, чтобы это работало также и для форм, подгружаемых динамически по ajax.

Чтобы скрыть кнопку, я добавляю стили вроде следующего:

Скрипт можно подключить глобально в вашу тему или выборочно к нужным формам. Пример подключения скрипта только к веб-формам:

Мало букафф? Читайте есчо !

Программно устанавливаем значения настроек на страницах, созданных Config Pages

Ноябрь 22, 2018 г.

Модуль Config Pages позволяет создавать страницы конфигурации для вашего модуля, всего сайта, или может быть просто одного из разделов сайта. Потом эти значения можно читать из программы и использовать так, как вам требуется. Но API Config Pages не содержит ...

Читать

Включить вывод php ошибок в drupal 7

Январь 24, 2020 г.

Drupal надстраивает собственные разрешения на вывод ошибок, потому если вам необходим вывод ошибок на этапе разработки, то важно знать как разрешить их ...

Читать

Как рендерить отдельные поля элемента field collections

Январь 31, 2019 г.

Модуль field_collection всю свою историю существования (аж 2010 года) проходит в статусе beta версии. Тем не менее многие разработчики используют его в своих проектах. На текущий момент это версия 7.x-1.0-beta13. Хотя FC - это ещё один entity, ...

Читать

Организуем автодеплой изменений из репозитория для проекта на Drupal

Август 23, 2018 г.

Когда над проектом работает несколько разработчиков, то возникают определенные структурные и организационные вопросы. Каждый программист обычно работает ...

Читать
 

Комментарии к «Загрузка файла в один клик в Drupal формах»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: