Drupal блоки: как задать расширенные параметры — регион и т.п.

Заметка посвящена освещению такого вопроса, как программное задание региона темы и страниц сайта, на которых блок будет отображаться.

Итак, все необходимые для вышеописанного параметры вы можете задать в функции-крючке под названием HOOK_block_info(). Вот пример использования оного:

function RedBookCmsRu_block_info() {
    $blocks = array();
    $blocks['RedBookCmsRu_custom_block1'] = array(
        'info' => 'Этот блок что-то делает, тра-та-та',
        'region' => 'content',
        'status' => 1,
        'visibility' => BLOCK_VISIBILITY_LISTED,
        'pages' => "node/234234\nmy/custom/path/*",
        'weight' => '-20',
    );

    /*
     * $blocks['RedBookCmsRu_custom_block2'] = array(
     *    ...
     * );
     *
     * $blocks['RedBookCmsRu_custom_block3'] = array(
     *    ...
     * );
     * ...
     */

    return $blocks;
}

Дополнительная информация:

  • 'region' => 'content' — указываем машинное имя региона темы (то, которое в info-файле задается), в данном случае это content.
  • 'visibility' => BLOCK_VISIBILITY_LISTED — задаем параметры видимости друпаловского «виджета». Константа BLOCK_VISIBILITY_LISTED указывает на то, что последний будет отображаться только на заданных / перечисленных программистом страницах. Во многом аналогична, но противоположна по значению BLOCK_VISIBILITY_NOTLISTED.
  • 'pages' => "node/234234\nmy/custom/path/*" — задаем список страниц, где должен отображаться или не отображаться наш блок. Применительно к текущему примеру это пути node/234234 и my/custom/path/. \n, как нетрудно понять обозначает перенос строки.
  • 'weight' => '-20' — вес элемента, т.е., где он будет показан (выше или ниже остальных).

Материал актуален применительно к Drupal 7.xx.

P.S. В общем все тоже самое, что задается через админку пользователем вручную. Только программно.

Опубликовано 1-01-2014 в 21:31


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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Свежие комментарии

  • Иван: к записи Привет всем, доброго времени суток! Я излазил весь »
  • Александер: к записи Потом пригляделся, вроде Вы не это имели в виду и »
  • Александер: к записи У Вас не русифицируется, потому что не везде включ »
  • Администратор: к записи Это надо использовать функции вашей CMS. »
  • Alex: к записи Ребят, а подскажите пожалуйста, как реализовать с »
  • Владимир: к записи А как теперь будет выглядеть ссылка для перехода н »
  • Администратор: к записи Не знаю. »

Статистика спама

Последние твиты