Темізація існуючої форми в drupal

Персональна сторінка shra, блог фріленсерів, веб-розробника на PHP. Тут я ділюся своїм досвідом і думками, проводжу досліди над людьми, збираю нематеріальні свідоцтва власної дурості. Використовуючи приклади програмного коду з даного сайту, ви приймаєте всю відповідальність за можливі наслідки їх використання, включаючи ваше психічне здоров'я і інтереси третіх осіб.

Блог / drupal / Темізація існуючої форми в Drupal

Form API в Drupal дозволяє дуже гнучко працювати з формами. Не важливо де і в якому модулі була створена форма, ви завжди можете підключити власний файл-шаблон або функцію темізаціі для модифікації виводу цієї форми.

Щоб нам підключити власне оформлення вже існуючої форми, потрібно виконати наступні дії:

  1. Оголосити шаблон в hook_theme.
  2. Зачепитися за потрібну форму за допомогою hook_form_alter або hook_form_FORM_ID_alter. Встановити для форми або її елемента ім'я оголошеного в п1. шаблону.
  3. Реалізувати функцію темізаціі або файл-шаблон.

Ці етапи актуальні для Drupal будь-якої версії (hook_form_FORM_ID_alter з'являється починаючи з 6й версії, тоді як hook_form_alter є і в більш ранніх).

Розберемо кожен з етапів. Наш модуль буде називатися - mymodule.

Темізація в функції.

Шаблон отримає локальну змінну - form. оголошену в hook_theme (). На що варто звернути увагу при роботі з шаблонами?

Акуратно вибирайте імена файлів і імена ключів для масиву в hook_theme. Файли можуть перекрити відомі схеми «suggestions» drupal і ваш шаблон буде використаний не за призначенням :). Так шаблон form.tpl.php буде використовуватися всіма формами проекту.

Тут ми розглянули відразу перший і третій пункти. Залишилося лише сказати пару слів про зачіплюванні до форми.

Підключення шаблону до обраної формі.

Якщо ви вирішили реалізувати зачіпку hook_form_alter (). то вам буде необхідно відфільтрувати потрібну вам форму по її ID:

Схожі статті