Відокремлюємо логіку від шаблону Drupal
Напевно, ви чули про підхід MVC (model-view-controller) у веб-програмуванні. У Drupal для реалізації цього підходу є всі необхідні інструменти. У цьому рівень контролера здебільшого вже реалізовано, т.к. двигун пропонує вам продати логіку докладання у вигляді написання коду «зачіпок» (hooks). Вам залишається відокремити логіку (модель) від шаблону (уявлення).
Сформулюємо навчальну задачу.
На окремій сторінці сайту виведемо таблицю квадратів чисел з якогось діапазону всередині [0…1000]. Оформимо це як модуль mymodule.
Створюємо розділ та пишемо логіку
По-перше, нам потрібно оголосити розділ, навіщо ми використовуємо hook_menu.
то у функцію-обробник розділу будуть передані частини рядка «1» та «20» як вхідні параметри.
У функції ми реалізували всю логіку: перевірили вхідні параметри і передали їх у шаблон. Але де брати цей шаблон, які параметри — Drupal не знає. Розкажемо Drupal, де є шаблони. Ця інформація надається через hook_theme.
Оголосимо шаблони в модулі, створимо файли шаблонів
Я хочу розмістити файли шаблонів у окремій папці активної теми оформлення. Шаблонів буде два : загальний шаблон HTML таблиці, який ми вже задіяли в _mymodule_page(), і шаблон рядків таблиці, який викликатиме з першого шаблону для кожного рядка даних при складанні таблиці.
У документації hook_theme має низку параметрів, які ми не використовуємо. Тому я їх не став перераховувати.