Plugins

Создание DisplayExtender плагина для Views

Пример создания простейшего Display Extender плагина для Views.

Шаг 1. Создаем класс плагина в src/Plugin/views/display_extender/ExampleDisplayExtender.php:

<?php

namespace Drupal\MODULENAME\Plugin\views\display_extender;

use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Plugin\views\display_extender\DisplayExtenderPluginBase;

/**
 * Example display extender plugin.
 *
 * @ViewsDisplayExtender(
 *   id = "example_display_extender",
 *   title = @Translation("Example display extender"),
 *   help = @Translation("Example display extender description."),
 *   no_ui =...
Benya

QueueWorker. Перемещение обработанных задач в конец очереди

В Drupal 8 имеется инструмент для автоматической обработки очередей по крону. Имя ему QueueWorker. Более подробно о нем можно узнать здесь.

Я же расскажу о том, как сделать так, что бы обработанные задачи перемещались в конец очереди для повторной обработки. Причины для такого поведения могут быть самые разные. Например, ноды определенного типа должны синхронизироваться с внешними сервисами до тех пор, пока эти ноды не будут удалены. Для этого мы при создании ноды создаем 1 раз задачу на синхронизацию, а затем QueueWorker будет их помещать в конец очереди для повторной обработки (...

Benya

Создаем style плагин в своем модуле

Я уже писал о том, как создать style плагин для модуля Panels. Но в том уроке я в большей степени описал процесс создания внутри темы, а создание в модуле описал кратко и у некоторых читателей возникли вопросы, поэтому в этом уроке я исправлю этот недочет и опишу процесс создания style плагина в своем модуле.

Шаг 1. В файл module_name.info добавляем следующие строки:

name = Module name
description = Style plugin example.
core = 7.x
package = "Panels"
 
dependencies[] = panels

Шаг 2. В файл module_name.module имплементируем хук hook_ctools_plugin_directory():

/**
 * Implements...
Benya

Как создать content_type плагин для модуля Ctools

При работе с модулем Panels content_types плагины являются очень важной составляющей страницы. Для начала давайте разберемся, что же такое content_types плагины и для чего они нужны. Когда мы перекрываем страницу модулем Page Manager и изменяем вывод страницы модулем Panels, именно с помощью content_types плагинов мы выводим содержимое на страницу.

Любому друпалеру рано или поздно придется написать свой плагин. И сегодня я покажу как это сделать. Для примера, я напишу плагин, который будет выводить текст, введенный пользователем.

Итак, переходим к созданию content_type плагина.

...

Benya

Как создать access плагин для модуля Ctools

Продолжаем изучать работу с модулями Panels и Page Manager и сегодня я покажу как написать свой access плагин. К слову сказать существует 6 типов плагинов для модуля Ctools:

  • access плагины - данный тип плагинов позволяет указывать критерии доступа к содержимому панелей и для вариантов страниц;
  • content_types плагины - данный тип плагинов выводит содержимое на страницу;
  • context плагины - данный тип плагинов определяет различные контексты, которые могут быть использованы для передачи во вьюзы, заголовки страниц и фрагменты панелей, а так же для использования взаимосвязей;
  • ...
Benya

Как создать style плагин для модуля Panels

Сегодня речь пойдет о том, как создать style плагин для модуля Panels. Styles плагины, как и layouts плагины принято подключать через тему оформления, но можно и через модуль.

Подключение style плагина через тему оформления

Примерная структура каталогов будет следующей:

themeName
  panels
    styles
      first_style
        first_style.css
        first_style.inc
        first-style-shadow-box.tpl.php

Первым делом открываем themeName.info и добавляем туда следующую строку:

plugins[panels][styles] = panels/styles

Этой строкой мы указали путь к каталогу, в котором будут находится...

Benya

Как создать layout плагин для модуля Panels

Сегодня я покажу как создать layout плагин для модуля Panels. Layouts плагины принято подключать через тему оформления, но можно и через модуль.

Подключение layout плагина через тему оформления

Примерная структура каталогов будет следующей:

themeName
  panels
    layouts
      first_layout
        first_layout.css
        first_layout.inc
        first_layout.png
        layout-sample-first-layout.tpl.php

Первым делом открываем themeName.info и добавляем туда следующую строку:

plugins[panels][layouts] = panels/layouts

Этой строкой мы указали путь к каталогу, в котором будут...

Benya