Drupalbook.ru

Вводный видеокурс c сайта Drupalbook.ru о том, как создавать сайты на Drupal 8

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

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

0 Thanks

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

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

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

0 Thanks

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

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

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

0 Thanks

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

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

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

Select

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

0 Thanks

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

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

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

0 Thanks

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

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

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

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

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

0 Thanks

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

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

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

0 Thanks

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

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

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

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

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

0 Thanks

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

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

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

0 Thanks

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:

0 Thanks

12.9.1. Работа с конфигурациями в Drupal 8. Импорт контента и конфигурации.

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

0 Thanks

12.9. Работа с конфигурациями в Drupal8. Active, Sync конфиги, перенос конфигов с DEV на LIVE.

Видео: https://youtu.be/C_lr0TazbrU

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

0 Thanks

12.8.2. Miltistep popup форма в Drupal 8.

В этой статье мы продолжим разбираться с Form API в Drupal 8 и сделаем multistep форму. Мы уже создавали обычную конфигурационную форму для модуля, multistep форма создается похожим способом с использованием $form_state для хранения данных между шагами формы.

Примеры кода можно посмотреть на github:
https://github.com/levmyshkin/drupalbook8

Для мультистеп формы нужно добавить класс формы:

/modules/custom/drupalbook/src/Form/MultiStepForm.php

0 Thanks

12.8.1. hook_form_alter() добавляем submit и validate для существующей формы.

В одном из прошлых уроков мы разбирали что такое хуки, в этом уроке мы на практике поработаем с хуком hook_form_alter() и подобавляем функционал для уже существующей формы.

Примеры кода можно посмотреть на github:
https://github.com/levmyshkin/drupalbook8

Что такое хук и зачем он нужен можно почитать здесь:

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

0 Thanks

12.8. Работа с формами в Drupal 8. Добавляем форму администрирования.

Видео: https://youtu.be/Kufp_2Q8OpA

В этом уроке мы разберемся с Drupal 8 Form API и создадим форму настроек для модуля. Мы уже создали модули для вывода страницы и блока, давайте теперь создадим конфигурационную форму, в которой мы будем хранить данные для подключению к условному сервису. Допустим, что нам нужно хранить на сайте API Key и API Client ID, например для Google Maps API.

Примеры кода можно посмотреть на github:
https://github.com/levmyshkin/drupalbook8

0 Thanks

12.7. Плагины в Drupal 8. Выводим блок.

Видео: https://youtu.be/UtLpW_k9jlw

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

Примеры кода можно посмотреть на github:
https://github.com/levmyshkin/drupalbook8

0 Thanks

12.6. Роут с параметром.

Видео: https://youtu.be/uoIfbI-2Xoc

Мы можем использовать параметры в URL для роутов. Они работают также как contextual filters во Views. Мы можем например передавать в URL ID различных сущностей, текстовые строки или последовательной ID разделенных запятой или плюсами. В этом уроке мы будем передавать ID ноды и выводить title и body этой ноды в контенте.

Примеры кода можно посмотреть на github:
https://github.com/levmyshkin/drupalbook8

0 Thanks

12.5. Основная документация по Drupal api.drupal.org. Как искать информацию по API Drupal.

По мере изучения Drupal API вам часто нужно будет обращаться к основной документации на https://api.drupal.org. Это автоматически сгененрированная документация по Drupal. В ней собрана вся информация о каждой функции, классе, методе, где они определены, где используются и краткое описание. Также на этом сайте есть справка по API, советую ознакомиться с каждым из разделов:

0 Thanks

12.4. Создание страниц для premium аккаунта.

Видео: https://youtu.be/Iz9sRhGJ7vo

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

Примеры кода можно посмотреть на github:

https://github.com/levmyshkin/drupalbook8

Начнем с добавления нового YML-файла прямо в папке нашего модуля drupalbook.permissions.yml:

0 Thanks

12.3. Создаем кастомный Drupal 8 модуль. Вывод страницы программно.

Видео: https://youtu.be/ql9qK1bZIyA

Начнем создание нашего модуля с небольшого упорядочивания. Давайте впредь будем разделять модули кастомные и контрибные. В 8ом друпале модули лежат в папке /modules. Теперь нам не нужно класть их вглубь /sites/all/modules, хотя в readme написано, что это должно работать используйте все-таки папку /modules. Внутри папки /modules мы создадим две папки custom и contrib. В папке contrib будут храниться дополнительные модули с drupal.org, а в папке custom будут храниться наши кастомные модули.

0 Thanks