Помощь начинающим веб
разработчикам
  • hooks
  • pantey

hook_block_info();

18.04.2013

Продолжаем изучение хуков , сегодня мы затронем хук, который относится к блокам drupal. Хочу сразу вас предупредить, что данный хук лишь описывает создаваемый блок, который доступен из админки сайта, но не выводит контент в блок. Давайте сразу к делу, как создавать модули, думаю знаете, если нет, то читаем вот эту статью. Результатом работы данного хука, будет отображение нашего блока в админке сайта по пути «Структура-> Блоки», но как вы понимаете, без вывода контента на страницу сайта

Теперь к реализации, мой модуль будет называться как drupalfly.

Файл Название_вашего_модуля.info

  1. name = drupalfly
  2. description = Lesson new info block
  3. package = Other
  4. core = 7.x

Файл название_вашего_модуля.module

  1. <?php
  2. /**
  3. * Implements hook_block_info().
  4. */
  5.  
  6. function drupalfly_block_info(){
  7. $blocks = array();//объявили массив
  8. $blocks['drupalfly'] = array(
  9. 'info' => t('My first info block'), //внесли обязательное значение
  10. );
  11. return $blocks; //вернули результат обратно в переменную
  12. }

В примере показана лишь простейшая реализация данного хука, единственным обязательным элементом данного хука является ключ info, который должен принимать какое-то ваше значение. Далее вы можете посмотреть список всех допустимых значений данного хука

  • 'cache' – параметры кеширования данного блока, может принимать значения
    • DRUPAL_NO_CACHE – блок не кэшируется
    • DRUPAL_CACHE_PER_ROLE- кэширование по ролям сайта
    • DRUPAL_CACHE_PER_USER – кэширование для каждого пользователя сайта
    • DRUPAL_CACHE_PER_PAGE – кэширование для каждой страницы
    • DRUPAL_CACHE_GLOBAL – кэширование для всех страниц сразу
  • 'properties' - массив с дополнительными данными. Включает элемент 'administrative' - булево значение, указывающее на использование блока в админке
  • 'weight' - вес блока
  • 'status' - статус блока (1 - включен, 0 - выключен)
  • 'region' - регион в котором будет расположен блок
  • 'visibility' - флаг видимости, принимает следующие значения:
    • BLOCK_VISIBILITY_NOTLISTED – отображает блок на всех страницах, кроме перечисленных
    • BLOCK_VISIBILITY_LISTED – отображает блок только на перечисленных страницах
    • BLOCK_VISIBILITY_PHP – определяется показ блока через PHP условие
  • 'pages' – определяет условия показа блока в соответствии со значением 'visibility'
Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.

Комментарии (2)

Profile picture for user Ruslan
Евгений Михайл…
29.05.2016

Покажите, пожалуйста, пример с флагом BLOCK_VISIBILITY_LISTED.

Profile picture for user pantey
pantey
29.05.2016
$blocks['example'] = array(
        'info' => 'Example Block',
        'visibility' => BLOCK_VISIBILITY_LISTED,
        'pages' => "node/1",
    );

Добавить комментарий

- Оповестить о новом комментарии.
- Все комментарии
- Только мои комментарии