Програмне створення блоку в drupal 7, drupal learning

У цій замітці ми розглянемо процес програмного створення блоку за допомогою хуков hook_block_info (). hook_block_view (). hook_block_configure () і hook_block_save () на прикладі блоку містить слоган сайту так як за замовчуванням такого блоку в Drupal 7 нету.

Для цієї мети ми напишемо невеликий модуль Slogan block (машинне ім'я sb).

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

Також створимо порожній файл sb.module і включимо наш новий модуль.

Для того щоб оголосити новий блок додамо в файл sb.module хук hook_block_info ():

hook_block_info () - оголошує блоки надаються модулем і встановлює для них налаштування за замовчуванням.

Тепер поставимо нашому сайту тестовий слоган в розділі Site information:

Програмне створення блоку в drupal 7, drupal learning

Наступним кроком очистимо кеш і розмістимо блок Site slogan в регіон First sidebar:

На даному етапі блок розміщений в регіон і слоган сайту заданий, але нічого не відображається буде так як Drupal не знає що потрібно виводити в цей блок. Для цієї мети ми використовуємо hook_block_view ().

Додамо в файл sb.module наступний код:

hook_block_view () - повертає вміст блоку. Параметр $ delta - унікальний індентіфікатор блоку надається hook_block_info () (в нашому випадку це site_slogan).

Після чергової очищення кешу бачимо відображення нашого блоку на сайті:

Програмне створення блоку в drupal 7, drupal learning

За замовчуванням програмно створені блоки мають ті ж самі настройки що і будь-який інший блок: настройки видимості, заголовок блоку і т.д. але ми можемо додавати свої додаткові настройки. В даному випадку буде зручно якщо ми будемо мати можливість редагувати слоган сайту прямо на формі редагування цього блоку.

Для цієї мети ми використовуємо хукі hook_block_configure () і hook_block_save.

Додамо в файл sb.module наступний код:

hook_block_save () - надає обробник даних прийшли з форми оголошеної в hook_block_configure (). Параметри: $ delta - теж що і для hook_block_view (). $ Edit - містить дані прийшли з форми конфігурації блоку.

Так як ми оголосили два нових хука знову чистимо кеш і переходимо на форму редагування блоку Site slogan:

Програмне створення блоку в drupal 7, drupal learning

Як бачимо на формі присутній доданий поле Site slogan. Далі змінимо його значення і збережемо форму.

Програмне створення блоку в drupal 7, drupal learning

Слоган оновився, значить форма працює правильно.

Повний лістинг файлу sb.module:

Схожі статті