Так как же программно создать блок. Для создания собственного блока в Drupal 7.x нужно зделать 4 вещи:
1) Создать папку с именем модуля.
Как пример мы создадим блок который будет выводить ссылки для входа на сайт и выхода. Назвем наш модуль custom_login. Соответственно нужно назвать папку custom_login.
2) Создать файл с расширением .info.
Создадим файл custom_login.info. Нужно назвать файл так как называется модуль. Далее поместим следующий текст в даный файл.
name = Custom Login
description = This module provides a custom block with Login links
package = Other
core = 7.x
name - Имя модуля
description - Описание модуля, которое будет видно на странице подулей
package - Отвечает за то, в какой групе модулей будет находится ваш модуль, в моем варианте это група Other
core - Какая версия друпала поддерживает даный модуль
3) Создать файл с расширением .module. И реализовать необходимые хуки.
Создаем файл custom_login.module. Для того, что бы создать простой блок, нам необходимо реальзовать всего лишь два обработчика, а именно hook_block_info() i hook_block_view().
/** * Implements hook_block_info(). */
function custom_login_block_info() { $blocks['custom_login'] = array( 'info' => t('Custom Login'), 'cache' => DRUPAL_CACHE_GLOBAL, ); return $blocks; } /** * Implements hook_block_view(). */ function custom_login_block_view($delta = '') { $block = array();
switch ($delta) { case 'custom_login': $block['subject'] = t('Custom Login'); $block['content'] = _custom_login_content(); break; } return $block; } function _custom_login_content() { global $user; if ($user->uid == 0) { return "".t('Вход').""; } else { return "".t('Выход').""; } }
hook_block_info() - объявляет блоки предоставляемые модулем и устанавливает для них настройки по умолчанию.
hook_block_view() - возвращает содержимое блока. Параметр $delta - уникальный индентификатор блока предоставляемый.