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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вывод результатов формы в саму форму после submit

Март 2, 2017 г.

Что делают в большинстве случаев после успешного submit данных формы? Вариантов два - либо показывают системное сообщение drupal_set_messge(), либо производят переадресацию на некую страницу с результатами. Первый вариант почти всегда выглядит неказисто, ...

Читать

Изменяем число выводимых комментариев на страницу в Drupal

Май 31, 2019 г.

С комментариями в Drupal во все времена было на мой взгляд - всё сложно. В 7ке сущность стала частью конструктора, стало веселее, но общий шаблон комментариев так и остался "костью в горле" у многих программистов. В настройках типа публикации вы ...

Читать

Подключаем suggestions list в диалог CKeditor - Link

Август 10, 2021 г.

Link - это штатный диалог, который используется в CKeditor для редактирования ссылок. И выглядит он как показано на картинке сверху. Он хорошо выполняет ...

Читать

Использование LIKE оператора в db_select Drupal

Февраль 4, 2021 г.

Если нужно использовать db_select вместо db_query, но не ясно как правильно составить SQL условие с оператором LIKE, читайте далее. Здесь вам пригодится хелпер функция db_like, которую нужно применить к аргументу сравнения. Небольшой пример ...

Читать
 

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

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



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