Создать блок модуль Drupal

Drupal — это система управления контентом (CMS), платформа для создания веб-сайтов.

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

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

Создание модуля TextBlock

Для модуля нужен каталог TextBlock в sites\all\modules\custom . Внутри TextBlock каталога мы создадим файл textblock.info. В этом файле мы указываем имя модуля, а также описание модуля. Этот файл сообщает Drupal, что он показал его в списке модулей.

Теперь создадим файл textblock.info со следующим кодом:



;$Id$
name = textblock
description = A module to display a block of text
core = 7.x
files[] = textblock.module


Код создаст модуль, который называется TextBlock , а затем создает пустой файл textblock.module. Это будет файл, где мы поместим код для написания хаков Drupal, которые понадобятся дописать модуль TextBlock.

Если все правильно, мы должны увидеть имя модуля в админке Drupal в списке модулей, как показано на рисунке.

Drupal админка список модулей

Добавление help ссылку в модуль TextBlock

После вызова модуля ничего не происходит, так как мы ничего не добавили в файл textblock.module. Давайте добавим некоторые функции.

Первое, что мы добавляем в модуль представляет собой ссылку help (Справка). Мы добавим в help крючок Drupal. Нам придется написать функцию и назвать textblock_help($path, $arg) в модуле, как показано ниже:



function textblock_help($path, $arg) {
    switch ($path) {
        case "admin/help#textblock":
            return '<p>'.  ("This is a simple block module to display some text on screen") .'</p>
            ';
            break;
    }
}


Чтобы добавить (справку) для нашего модуля мы должны вернуть текст справки, когда путь в справке admin/help#textblock .

Как только мы добавим код для справки мы увидим ссылку рядом с названием модуля, как показано ниже.

Модуль имя появляется в админ

Когда мы нажимаем на ссылку help откроется текст:

TextBlock справка

Добавление блока TextBlock

Модуль Drupal позволит определить один или несколько блоков для вашего модуля. Это делается с помощью block_info . В этом хаке модуль должен возвращать ассоциативный массив, в котором ключ массива представляет собой уникальный идентификатор для блока. Для реализации block_info напишите следующую функцию в файл textblock.module.



function textblock_block_info() {
    $blocks = array();
    $blocks['text_block'] = array(
    'info' => t('A block to display text of your choice'),
'cache' => DRUPAL_NO_CACHE,
    );
    return $blocks;
}


Как только вы добавите эту функцию блок будет списке.

Черный список

Добавление конфигурации для текстового блока

После добавления информации блока, будет видно как настроить блок. Для TextBlock нужен текст, который будет отображаться на сайте с админки. Для настройки блока мы должны перехватить хук hook_block_configure . Этот хук передается в качестве уникального идентификатора, который мы добавили для блока и этот хук должен вернуть форму в случае, если мы хотим дополнительные поля в нашей конфигурации.

Реализация нашего хука будет выглядеть следующим образом:



function textblock_block_configure($delta = '') {
    $form = array();
    if ($delta == 'text_block') {
 
    $form['text_block'] = array(
    '#type' => 'fieldset',
    '#title' => t('Please enter the text below'),
    );
 
    $form['text_block']['text_block_full_text'] = array(
    '#type' => 'textarea',
    '#title' => t('Text'),
    '#default_value' => variable_get('text_block_full_text', ''),
    );
 
}
 
return $form;
}


Этим мы проверяем, что идентификатор для блока уникальный. Если это так, создаём форму с FIELDSET которая просто выводит текст, введите текст ниже, а другая текстовая область для отображения текста на сайте.

Как только мы добавим форму и нажмёте на блок configure (настройки) появится следующая кнопка, в которой мы можем добавить надписи и текст.

Настройка блока

Сохранение конфигурации для текстового блока

После того как мы добавили форму для настройки блока, мы должны убедиться, что он сохраняет значение текста как только пользователь вводит значение и сохраняет. Чтобы сохранить это значение мы должны подключить hook_block_save , получить значение текстового поля и сохранить его в базу данных Drupal, так что бы её можно было восстановить ​​позже.

Код для hook_block_save модуля выглядит следующим образом:



function textblock_block_save($delta = '', $edit = array()) {
    if ($delta == 'text_block') {
        variable_set('text_block_full_text', $edit['text_block_full_text']);
    }
}


В этой функции мы просто получить значение текстового поля, а затем используем функции Drupal variable_set для хранения, в переменной text_block_full_text . Теперь, как только пользователь вводит текст и нажимает на сохранение конфигурации, текст будет сохранен и следующее сообщение будет выводиться.

Конфигурация сохранена

Отображение текста в начале конца

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

Код для этого хука выглядит следующим образом:



function textblock_block_view($delta = '') {
    if ($delta == 'text_block') {
        $content = variable_get('text_block_full_text', '');
        $block = array(
        'content' => $content,
        );
        return $block;
    }
}


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

После того как мы закончили этот хук мы сможем увидеть наш текст на сайте как показано ниже.

TextBlock отображается на сайте

В заключение

Drupal обеспечивает гибкую структуру для расширения и создания сайтов на основной платформе Drupal. Хук механизма Drupal делает его легким для разработчиков модулей и подключения их к системе а также создать более широкую функциональность.

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

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

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

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