Drupalbook.ru

12.10.3. Работа с полями в Drupal 8. Создаем свой тип поля, widget, formatter для вставки видео с Youtube.

В прошлых статьях мы рассмотрели как устроен тип поля Link: Storage, Widget, Formatter. В этой статье мы сделаем свой костомный тип поля для вывода видео с youtube на странице с двумя разными форматами и настройками.

12.10.2. Drupal 8 Fields API. Drupal Formatter вывод данных полей на страницу

В этой статье мы рассмотрим Field Formatters, то что позволяет нам редактировать отображение полей и выводить их на странице

В прошлых уроках мы создавали поля Link, в этом уроке мы рассмотрим как эти поля выводятся на страницу и какой класс за это отвечает. Каждое поле которое вы добавляете через друпал можно вывести на страницу и отредактировать его настройки на страницу Manage display:

4.5.5.1. Подключаем jQuery OwlCarousel к Drupal 8 Views

В прошлой статье мы сделали слайдшоу с помощью Views Slideshow. Но у нас остался незастилизованный пагинатор с маленькими картинками.

Видео:
https://www.youtube.com/watch?v=EtnHgqAUYT4

12.13. Работа с базой данных в Drupal 8

Выполнять запросы к базе данных обычное дело в разработке модулей для друпал.

Можете добавить в закладку эту страницу, чтобы всегда иметь под рукой шпаргалку, как в Drupal 8 выполнять MySQL запросы select, insert, update, delete.

Select

Получить одно значение:

12.12. Event Dispatcher, кастомный код для определенных событий.

Система events позволяет строить более сложные системы с возможностью изменения функционала с помощью кастомного кода по определенным событиям. Многие хуки из Drupal 7 были заменены event'ами. Это позволило унифицировать работу многих частей друпала и дополнительных контрибных модулей. Сама система events пришла из Symfony и состоит из следующих частей:

Event Subscribers - "Подписчики" на определенные события, это функции или методы, которые срабатывают по определенным событиям. В коде является классом, который реализует класс:

12.11.3. Хуки для работы с Entity.

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

В этой статье вы можете прочитать в общем, что такое хуки и зачем они нужны:

http://drupalbook.ru/drupal/122-chto-takoe-hook-v-drupal-8

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

12.11.2. Создание, обновление, удаление Entity.

Работа с Entities в Drupal 8 унифицирована и все CRUD операции также одинаковы для всех сущностей. В этой статье мы разберемся как работать с сущностями в кастомном коде.

Давайте сначала рассмотрим простые примеры.

12.11.1. Обращение к полям в Entity.

Получать значения полей в сущностях довольно просто, но есть несколько способов для этого. Давайте посмотрим как лучше всего работать со значениями полей в кастомном коде.

Вы всегда можете посмотреть актуальную информацию по работе с полями на официальном сайте:

https://www.drupal.org/docs/8/api/entity-api/working-with-the-entity-api

В этой статье мы рассмотрим примеры работы со значениями.

12.11. Drupal 8 Entity API. Создание кастомной сущности. Генерация сущности через Drupal Console.

Мы уже разобрались с Form API, Fields API и знаем как данные в Drupal 8 попадают в БД. Теперь давайте рассмотрим фундамент всех друпал сайтов, а именно Entity API.

Вы уже наверно заметили, что поля не существуют сами по себе, а "крепятся" к сущностям: нодам, блока, терминам таксономии, views'ам и т.д. Вы можете создавать bundle сущностей, например типы материалов, типы блоков, словари таксономии. Но что если вам нужно создать новую сущность со своими бандлами? В этом случае вам потребуется Entity API для создания новой сущности.

12.9.2. Config Split, Config Ignore делаем различные конфиги для разных инстансов.

Очень часто доступы к 3rd party сервисам должны быть различными на dev и live инстансами. Для того чтобы это сделать с помощью конфигов, нужно использовать модуль Configuration Split:

https://www.drupal.org/project/config_split

После того как вы включите модуль Config Split, у вас появится возможность указать папки для инстансов. Давайте зайдем на страницу настроек модуля Configuration - Configuration Split settings: