Створення форми налаштувань для модуля за допомогою hook_menu() і system_settings_form() Drupal 7,

Детальні уроки з CMS Drupal простою мовою!

Авторизація

  1. Головна »
  2. Блог »
  3. Drupal API »
  4. Створення форми налаштувань для.

Створення форми налаштувань для модуля за допомогою hook_menu() та system_settings_form() у Drupal 7

Майже кожен модуль Drupal має деякий набір налаштувань, тому в Drupal 7 існують зручні інструменти для того щоб додати форму налаштувань свого модуля в розділConfiguration.

Розглянемо процес створення форми налаштувань для модуля:

Як приклад створимо модульConfigurations form (машинне ім'яcf ) який матиме лише форму налаштувань.

Насамперед створимо файлcf.info :

Далі створимо файлcf.module і оголосимо в ньомуhook_menu :

Розберемо вищенаведений код: Перший елементadmin/config/cf описує нову секцію в розділіConfiguration, якpage callback функції він викликаєsystem_admin_menu_block_page з файлуsystem.admin.inc модуляsystem. Ця функція створить нам нову розділNew configuration section. Як додаткові параметри ми вказуємоposition => left - виводити нашу секцію з лівого боку і вага -100 за рахунок цього вона буде виводитись у верхній частині сторінки.

Другий елементadmin/config/cf/config_form визначає звичайну сторінку з формоюcf_config_form яка лежить у файліcf.admin.inc.

Тепер створимо файлcf.admin.inc і опишемо в ньому форму з двома простими налаштуваннями:

Ключовим моментом тут є використання функціїsystem_settings_form() яка додає у форму спеціальний обробник який будезберігати відправлені дані у відповідні ключам елементів форми змінні (тобто таблицюvariable ). Це полегшує роботу, оскільки тепер немає необхідності писати функцію для обробки форми.

Тепер включаємо наш модуль і переходимо до розділуConfiguration де ми бачимо створену нами секцію та посилання на форму налаштувань модуля CF.

Також ми бачимо, що функціяsystem_settings_form() автоматично додала до нас на форму кнопкуSave configuration.

Змінюємо налаштування та зберігаємо форму:

Після чого бачимо, що налаштування дійсно збереглися.

Додамо у файлcf.info наступний рядок:

Тепер ми можемо потрапити на форму налаштувань за прямим посиланням з розділуModules.