Створення форми налаштувань для модуля за допомогою hook_menu() і system_settings_form() Drupal 7,
Детальні уроки з CMS Drupal простою мовою!
Авторизація
- Головна »
- Блог »
- Drupal API »
- Створення форми налаштувань для.
Створення форми налаштувань для модуля за допомогою 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.