Form API - частина 4
З попередніх уроків з Form API, ми з вами навчилися створювати найпростіші форми з функціями валідації та обробки, а також навчилися ці форми обробляти через Ajax, але, як ви могли помітити, всі наші елементи форми складалися виключно з текстових полів, сьогодні ж ми розглянемо основні типи елементів форми, такі як:
З назви типів ви можете відразу здогадатися, для чого призначений той чи інший тип, але ми будемо йти по порядку.
Цей тип поля використовується для створення простого текстового поля у формі,
В результаті ми отримаємо input з типом text

Цей тип використовується для створення чекбоксів (чекбоксів)
Після чого отримаємо чекбокс у формі

Для створення кількох чекбоксів немає необхідності описувати кожен з них, достатньо змінити тип елемента форми на «checkboxes», і в «options» передати значення чекбоксів
Після чого отримаємо список із 5 чекбоксів:

Використовується для створення радіокнопок (radiobutton) у формі
В результаті отримаємо одну радіокнопку

Для створення кількох радіокнопок ситуація така сама, як і з чекбоксами – змінюємо формат на «radios» і в «options» передаємо значення радіокнопок
У результаті ми побачимо список із п'яти радіокнопок

Як ви здогадалися, цей тип використовується для створення селектів у формі, він не має як чекбокс або радіокнопка, одиночного значення, параметри одразу передаються в «options»
Результат – селект із п'яти option:

Використовується для створення багаторядкового текстового поля
Використовується для створення файлового поля,завантаження будь-яких файлів та передачі їх на сервер
В результаті отримаємо поле для завантаження файлу:

Хочу зауважити, що це поле не так часто використовується у формах Drupal, замість нього зазвичай використовують тип елемента форми – «managed_file»
Являє собою альтернативу для поля з типом «file», тому що повністю забирає на себе завантаження файлу через Ajax і занесенням до таблиці «managed_file»

Цей тип використовується для створення поля, для введення пароля
Використовується для створення дати у формі, даний тип визначає 3 селекти
де, як значення за промовчанням передається поточна дата
Після чого на сторінці побачимо 3 селекти для вибору дати:

Використовує як обгортку - fieldset, для елементів полів форми
В результаті отримаємо елементи форми, які загорнуті в поля

Як ви могли помітити, цей тип приймає ще два додаткові параметри, хоч вони й не обов'язкові, але про них варто згадати:
- collapsible – визначає, чи буде fieldset мати можливість приховування/розкриття
- collapsed - визначає, положення fieldset за умовчанням, тобто. після завантаження сторінки, прихований/розкритий
Даний тип виводить у таблиці будь-які дані, з можливістю відзначити значення цієї таблиці
В результаті отримаємо таблицю з двома значеннями, з можливістю відзначити будь-яке значення через чекбокс:

Цей тип поля може використовуватися як заміна полю з типом «textarea», тому що надає текстові фільтри для цього поля:

Цей тип використовується для створення вертикальних табів, усередині з елементами форми.Використання цього типу, трохи складніше, ніж усі попередні. Визначення цього типу можна розділити на кілька етапів:
- Визначаємо цей тип (vertical_tabs) для елемента форми
- Створюємо елемент форми з типом fieldset і передаємо його через «group» елемент форми з типом «vertical_tabs»
- Додаємо поля в fieldset
Насправді це виглядає так:
Ну а на сторінці ви побачите таке:

Цей тип поля використовується визначення «ваги», тобто. має значення від -10 до 10
В результаті буде таке:

Цей тип визначає кнопку форми:

Схожі статті
Drupal 8 – Створення ajax посилання
Drupal 8 – Список команд в Ajax API (Jquery команди)
Темизація кнопки «видалити» на сторінці кошика в Ubercart 3.
Імпорт із CSV у сутність Drupal. Модуль Feeds
Form API – частина 4. Основні типи елементів полів форми
Принцип роботи динамічного сайту
Створення власного шаблону для Drupal 7 на прикладі. Темізація ноди. Частина 4
Відео у модальному вікні. Drupal 7+Fancybox.
Критерії сортування. Drupal 7 + переглядів
Drupal 8 – Створення кастомної команди Ajax
Список значень "info" файлу
Коментарі (3)
Вітаю. Дякую за урок. Справді потрібна інформація. Але ось ви пишете, що це основні типи елементів полів, значить є ще якісь. Мені цікаво, чи є поля для введення саме числових значень. Ну типу для введення суми, наприклад, або це тільки через валідацію треба робити. І ще питання навздогін, як приробити до поля щось на кшталт "суфікса" (точніше те що в модулі webform називають суфіксом). Тобто що було б якто так: йде label, потім сам input, потім дописка типу тис.руб або р.н. або ще щось. Якщо просто написати "#suffix" => 'значення' воно виводиться в самому кінці, після description . А як зробити одразу після поля, є варіант? Наперед вдячний.
числового поля немає, як такого, воно з'явилося тільки в HTML 5. але по суті його можна створити з текстового поля. Для додавання суфікса після або до input, використовуйте властивості поля
Добрий час доби.
Не підкажіть, чи є тип поля дататайм. І як можна зробити її авто запалення за поточною датою та часом?