Используя блоки drupal, вы можете легко добавлять контент в разделы вашего сайта со страниц администрирования. Однако эти базовые блоки могут показывать только статический контент.
Это руководство по блокам drupal расскажет об основах создания пользовательского модуля и создания блока в коде, который отображает динамический контент. Этот учебник отлично подходит для начинающих, так как мы пройдемся по основам разработки модулей Drupal.
В каталоге ваших модулей (sites / all / modules) создайте папку для вашего модуля. Для этого примера наш модуль будет называться myblockmodule , поэтому мы должны создать каталог sites / all / modules / myblockmodule . Ваш модуль может называться как угодно, просто убедитесь, что при выполнении этого урока вы замените « myblockmodule» на имя вашего модуля.
1. Создайте файл .info
Всем модулям в Drupal требуется файл .info, чтобы Drupal знал, что наш модуль существует, как он называется, а также другую информацию о нашем модуле. В папке вашего модуля (sites / all / modules / myblockmodule) создайте файл с именем myblockmodule.info. В myblockmodule.info введите следующее:
name = MyBlockModule description = Этот модуль предоставляет пользовательский блок с динамическим содержимым. пакет = ядро MyModules = 7.x
Объяснение
Вот как вышеперечисленное ломается:
- name - это удобочитаемое имя вашего модуля. Это необходимо для всех модулей. Это показано на странице администрирования модулей.
- описание - это короткое сообщение, объясняющее, что делает этот модуль. Это также видно на странице администрирования модулей.
- Ядро описывает, с какой версией Drupal работает этот модуль. Это необходимо и должно быть "7.x" для всех модулей Drupal 7.
- Пакет не является обязательным, но я рекомендую его. Основная цель этого состоит в том, чтобы определить, в какую категорию вывести модуль на странице администратора модуля.
Есть другие переменные, которые вы можете определить в этом файле, но это основные четыре, которые я поместил во все модули, которые я создаю. Для получения дополнительной информации о модуле .info файлы ознакомьтесь Написание файлов module.info ,
2. Создайте файл .module
Есть два файла, которые должен иметь каждый модуль. Во-первых, это файл .info, который мы уже создали. Второй файл .module. Несмотря на расширение файла, это действительно PHP-скрипт. Этот файл оценивается каждый раз при загрузке Drupal страницы Drupal. Основное назначение этого файла - определить функции, которые реализуют хуки. Хуки оцениваются во время различных событий Drupal и могут вызываться самим Drupal или другими пользовательскими модулями. (Для дальнейшего чтения на крючках: Крючки 101 )
Для нашего модуля мы создадим новый файл в каталоге нашего модуля (sites / all / modules / myblockmodule) с именем myblockmodule.module. В этом файле будут реализованы две ловушки: одна для того, чтобы Drupal знала, что мы определяем новый блок, а другая для того, чтобы Drupal знал, что такое блок. Файл будет содержать следующее:
<? php / ** * Объявите, какие блоки предоставляются этим модулем. * Реализует hook_block_info (). * / function myblockmodule_block_info () {$ block ['marty_countdown'] = массив ('info' => t ('Marty Countdown'), 'cache' => DRUPAL_NO_CACHE,); вернуть $ блок; } / ** * Определите, как будет выглядеть наш блок. * Реализует hook_block_view (). * / function myblockmodule_block_view ($ block_key) {$ block = array (); if ($ block_key == 'marty_countdown') {// Мы только хотим определить содержимое нашего блока // Это заголовок блока. $ block ['subject'] = t ('Обратный отсчет Марти МакФлай'); // Определяем содержимое блока. $ block ['content'] = t ('Марти прибудет'). (strtotime ("2015-10-21") - time ()). t ('секунд.'); } return $ block; }
Объяснение
Первая функция, определенная выше, myblockmodule_block_info () реализует hook_block_info () Это позволяет Drupal узнать о нашем блоке t, возвращая ассоциативный массив, значения которого описывают блоки. В нашем примере мы определяем только один блок с ключом marty_countdown. Переменная info определяет, какой блок будет вызываться в бэкэнде администратора. Переменная кэша определяет, следует ли и как кэшировать блок. В нашем случае мы не хотим, чтобы заблокированные блокировались, потому что они показывают информацию в реальном времени. Другие варианты кэширования, а также другие способы дальнейшего определения того, как должен вести себя ваш блок, можно найти на Друпала hook_block_info Api Docs ,
Вторая функция, определенная выше, реализует hook_block_view () и вызывается всякий раз, когда Drupal пытается отобразить блок посетителю. Передаваемый $ block_key (называемый в документации $ delta) позволяет нам узнать, какой блок пытается отобразить Drupal. Мы только хотим сказать Drupal, что отображать, когда он пытается показать наш блок, каждый раз мы должны просто возвращать пустой массив. Когда $ block_key наш, мы должны вернуть массив с информацией о том, что отображать. Более конкретно, s ubject, который является заголовком блока по умолчанию, и контент, который является либо визуализируемым массивом контента, либо строкой разметки.
Заключение
Не забудьте включить пользовательский модуль и назначить новый блок видимой области. Определение блока в коде может быть быстрым способом включения динамического контента на ваш сайт.
Скачать MyBlockModule
Нужна помощь, чтобы раскрыть всю мощь вашей платформы Drupal? Свяжитесь с нами сегодня!
Идти от Учебник по пользовательским блокам Drupal для блога ,
Вернуться к Unleashed Technologies Домашняя страница ,
Добавить комментарий!