10 кроків до осягнення форм у Друпалі, ShvetsGroup

10 кроків до осягнення форм у Друпалі

10 кроків до осягнення форм у Друпалі

Статтю евакуйовано з DrupalDance.com

форм

Цей урок створений спеціально для початківців та середньо-просунутих Друпал-розробників. Він повинен швидко дати поняття про ази Forms API, а також показати можливість створення більш складних речей на прикладі покрокових форм (№8).

Коли я тільки починав підготовку цього уроку, у мене була спокуса поставити під кожним шматком коду посилання для завантаження готового прикладу, але згодом я відмовився від цього. Буде набагато корисніше, якщо ви самі вставлятимете код у свої модулі, тестуючи і набираючись досвіду в реальних умовах.

І перш ніж почати, я розповім вам як все ж таки змусити будь-який з цих шматків коду працювати. Припустимо, ви вже маєте встановлений тестовий сайт на Друпал 6. Вам доведеться зробити наступні дії:

  1. Створити нову директорію у sites/all/modules, наприклад my_module
  2. Створити файл my_module.info у директорії my_module, що містить це:
  3. Створити файл my_module.module. Повністю скопіювати перший приклад і вставити в my_module.module.
  4. Включити модуль My module на сторінці модулів (admin/build/modules).
  5. Перейти до сторінки my_module/form для запуску коду.
  6. Далі вам належить провести для кожного прикладу повну заміну вмісту my_module.module на код наступного прикладу. Не забувайте після цього переходити на сторінку my_module/form, щоб побачити результати своєї роботи.

Почнемо з найпростішої форми:

Робимо форму трохи корисніше, додавши кнопку відправки форми.

Демонстрація набору полів (Fieldsets).

Демонстрація розкривного набору полів і базовоївалідації обов'язкових полів

Демонстрація додавання додаткових атрибутів до елементів форми.

Додавання нового елемента та функції валідації форми.

Додавання функції-обробника форми.

Створення нової кнопки - скидання форми та демонстрація присвоєння кнопці власного оброблювача. Також ми перемістимо перевірку всіх наших полів у головний валідатор форми.

Створюємо третю кнопку, яка додаватиме на форму додатковий набір полів імен і року народження (реальне застосування прикладу - у формі сімейного стану, потрібно додати це подружжя, якщо користувач одружений). Валідація буде проводитись і для додаткових полів теж.

Примітки

Я намагався сильно не відходити від оригіналу, виправляючи лише дрібні неточності та помилки. Однак, зауважу, що з приходом шостого друпала, немає жодної потреби пхати всі перевірки до загального валідатора форми. Для кожного елемента можна визначити свою функцію-валідатор. Наприклад:

Але варто пам'ятати, що валідатори елементів виконуються після форми валідатора.

Крім того, можливо, хтось запитає, чому не обертаються в t() заголовок та опис пункту меню. Відповідаю заздалегідь – у шостому друпалі це робиться автоматично.