10 кроків до осягнення форм у Друпалі, ShvetsGroup
10 кроків до осягнення форм у Друпалі
10 кроків до осягнення форм у Друпалі
Статтю евакуйовано з DrupalDance.com

Цей урок створений спеціально для початківців та середньо-просунутих Друпал-розробників. Він повинен швидко дати поняття про ази Forms API, а також показати можливість створення більш складних речей на прикладі покрокових форм (№8).
Коли я тільки починав підготовку цього уроку, у мене була спокуса поставити під кожним шматком коду посилання для завантаження готового прикладу, але згодом я відмовився від цього. Буде набагато корисніше, якщо ви самі вставлятимете код у свої модулі, тестуючи і набираючись досвіду в реальних умовах.
І перш ніж почати, я розповім вам як все ж таки змусити будь-який з цих шматків коду працювати. Припустимо, ви вже маєте встановлений тестовий сайт на Друпал 6. Вам доведеться зробити наступні дії:
- Створити нову директорію у sites/all/modules, наприклад my_module
- Створити файл my_module.info у директорії my_module, що містить це:
- Створити файл my_module.module. Повністю скопіювати перший приклад і вставити в my_module.module.
- Включити модуль My module на сторінці модулів (admin/build/modules).
- Перейти до сторінки my_module/form для запуску коду.
- Далі вам належить провести для кожного прикладу повну заміну вмісту my_module.module на код наступного прикладу. Не забувайте після цього переходити на сторінку my_module/form, щоб побачити результати своєї роботи.
Почнемо з найпростішої форми:
Робимо форму трохи корисніше, додавши кнопку відправки форми.
Демонстрація набору полів (Fieldsets).
Демонстрація розкривного набору полів і базовоївалідації обов'язкових полів
Демонстрація додавання додаткових атрибутів до елементів форми.
Додавання нового елемента та функції валідації форми.
Додавання функції-обробника форми.
Створення нової кнопки - скидання форми та демонстрація присвоєння кнопці власного оброблювача. Також ми перемістимо перевірку всіх наших полів у головний валідатор форми.
Створюємо третю кнопку, яка додаватиме на форму додатковий набір полів імен і року народження (реальне застосування прикладу - у формі сімейного стану, потрібно додати це подружжя, якщо користувач одружений). Валідація буде проводитись і для додаткових полів теж.
Примітки
Я намагався сильно не відходити від оригіналу, виправляючи лише дрібні неточності та помилки. Однак, зауважу, що з приходом шостого друпала, немає жодної потреби пхати всі перевірки до загального валідатора форми. Для кожного елемента можна визначити свою функцію-валідатор. Наприклад:
Але варто пам'ятати, що валідатори елементів виконуються після форми валідатора.
Крім того, можливо, хтось запитає, чому не обертаються в t() заголовок та опис пункту меню. Відповідаю заздалегідь – у шостому друпалі це робиться автоматично.