Содержание курса
1. Что такое Drupal
9 уроков
30
30
0м
1
Открытый
1.1
Введение в Drupal: почему это мощный инструмент для разработки
↗
5
5
-
0
Открытый
1.2
Drupal: стандартные функции и возможности
↗
3
3
-
0
Открытый
1.3
Как мы пришли к Drupal 10
↗
3
3
-
0
Открытый
1.4
Разработка на Drupal: расширяемость и создание модулей
↗
3
3
-
0
Открытый
1.5
Технологии, лежащие в основе Drupal
↗
3
3
-
0
Открытый
1.6
Архитектура Drupal
↗
3
3
-
0
Открытый
1.7
Основные подсистемы Drupal
↗
4
4
-
0
Открытый
1.8
Инструменты разработки на Drupal
↗
3
3
-
0
Открытый
1.9
Итоги: ключевые аспекты Drupal для разработчиков
↗
3
3
-
1
2. Установка Drupal
11 уроков
35
35
0м
0
Закрытый
2.1
Введение
↗
3
3
-
0
Закрытый
2.2
Установка Debian Linux
↗
4
4
-
0
Закрытый
2.3
Подготовка сервера
↗
3
3
-
0
Закрытый
2.4
Установка Composer
↗
3
3
-
0
Закрытый
2.5
Установка и настройка веб-сервера
↗
3
3
-
0
Закрытый
2.6
Установка PHP с зависимостями
↗
3
3
-
0
Закрытый
2.7
Установка и настройка СУБД
↗
4
4
-
0
Закрытый
2.8
Загрузка и установка Drupal
↗
3
3
-
0
Закрытый
2.9
Установка Drupal через Composer
↗
3
3
-
0
Закрытый
2.10
Использование Drush
↗
3
3
-
0
Закрытый
2.11
Итоги
↗
3
3
-
0
3. Создание первого модуля
9 уроков
27
27
0м
0
Закрытый
3.1
Введение в разработку модулей
↗
3
3
-
0
Закрытый
3.2
Создание модуля
↗
3
3
-
0
Закрытый
3.3
Использование сервисов в Drupal
↗
3
3
-
0
Закрытый
3.4
Form API
↗
3
3
-
0
Закрытый
3.5
Блоки
↗
3
3
-
0
Закрытый
3.6
Работа со ссылками
↗
3
3
-
0
Закрытый
3.7
Переадресация с подписчика событий
↗
3
3
-
0
Закрытый
3.8
Диспетчеризация событий
↗
3
3
-
0
Закрытый
3.9
Итоги
↗
3
3
-
0
4. Ведение журнала и рассылка
5 уроков
15
15
0м
0
Закрытый
4.1
Введение
↗
3
3
-
0
Закрытый
4.2
Логирование
↗
3
3
-
0
Закрытый
4.3
Mail API
↗
3
3
-
0
Закрытый
4.4
Токены
↗
3
3
-
0
Закрытый
4.5
Итоги
↗
3
3
-
0
5. Темизация
11 уроков
22
22
0м
0
Закрытый
5.1
Введение
↗
2
2
-
0
Закрытый
5.2
Логика бизнеса и логика представления
↗
2
2
-
0
Закрытый
5.3
Twig
↗
2
2
-
0
Закрытый
5.4
Темовые хуки
↗
2
2
-
0
Закрытый
5.5
Рендер-массивы
↗
2
2
-
0
Закрытый
5.6
Ассеты и библиотеки
↗
2
2
-
0
Закрытый
5.7
Общие хуки темы
↗
2
2
-
0
Закрытый
5.8
Атрибуты
↗
2
2
-
0
Закрытый
5.9
Макеты
↗
2
2
-
0
Закрытый
5.10
Темизация модуля Hello World
↗
2
2
-
0
Закрытый
5.11
Итоги
↗
2
2
-
0
6. Меню и ссылки на меню
8 уроков
15
15
0м
0
Закрытый
6.1
Введение
↗
2
2
-
0
Закрытый
6.2
Система меню
↗
2
2
-
0
Закрытый
6.3
Рендеринг меню
↗
2
2
-
0
Закрытый
6.4
Работа со ссылками меню
↗
2
2
-
0
Закрытый
6.5
Определение локальных задач (вкладок)
↗
1
1
-
0
Закрытый
6.6
Определение локальных действий
↗
2
2
-
0
Закрытый
6.7
Определение контекстных ссылок
↗
2
2
-
0
Закрытый
6.8
Итоги
↗
2
2
-
0
7. Моделирование и хранение данных
10 уроков
16
16
0м
0
Закрытый
7.1
Введение
↗
2
2
-
0
Закрытый
7.2
Различные типы хранения данных
↗
1
1
-
0
Закрытый
7.3
API состояний (State API)
↗
2
2
-
0
Закрытый
7.4
Временное хранилище (TempStore)
↗
2
2
-
0
Закрытый
7.5
API пользовательских данных (UserData)
↗
2
2
-
0
Закрытый
7.6
API конфигурации (Configuration API)
↗
2
2
-
0
Закрытый
7.7
Сущности (Entities)
↗
2
2
-
0
Закрытый
7.8
TypedData API
↗
1
1
-
0
Закрытый
7.9
Взаимодействие с Entity API
↗
1
1
-
0
Закрытый
7.10
Итоги
↗
1
1
-
0
8. Пользовательские сущности и типы подключаемых модулей
4 урока
0
0
0м
0
Закрытый
8.1
Введение
↗
0
0
-
0
Закрытый
8.2
Создание собственного типа сущности и типа плагина
↗
0
0
-
0
Закрытый
8.3
Написание собственной команды Drush
↗
0
0
-
0
Закрытый
8.4
Итоги
↗
0
0
-
0
9. Database API
8 уроков
1
1
0м
0
Закрытый
9.1
Введение
↗
1
1
-
0
Закрытый
9.2
Schema API
↗
0
0
-
0
Закрытый
9.3
Выполнение запросов
↗
0
0
-
0
Закрытый
9.4
Транзакции
↗
0
0
-
0
Закрытый
9.5
Изменение запросов (Query Alters)
↗
0
0
-
0
Закрытый
9.6
Хуки обновления (Update Hooks)
↗
0
0
-
0
Закрытый
9.7
Пост-обновления (Post Update Hooks)
↗
0
0
-
0
Закрытый
9.8
Итоги
↗
0
0
-
0
10. Пользовательские поля
8 уроков
0
0
0м
0
Закрытый
10.1
Введение
↗
0
0
-
0
Закрытый
10.2
Повторение FieldType плагинов
↗
0
0
-
0
Закрытый
10.3
Создание FieldType плагина
↗
0
0
-
0
Закрытый
10.4
Создание FieldWidget плагина
↗
0
0
-
0
Закрытый
10.5
Создание FieldFormatter плагина
↗
0
0
-
0
Закрытый
10.6
Настройки поля
↗
0
0
-
0
Закрытый
10.7
Использование пользовательского поля как базового поля
↗
0
0
-
0
Закрытый
10.8
Итоги
↗
0
0
-
0
11. Контроль доступа
6 уроков
6
6
0м
0
Закрытый
11.1
Введение
↗
1
1
-
0
Закрытый
11.2
Что такое система доступа Drupal
↗
1
1
-
0
Закрытый
11.3
Доступ к маршрутам
↗
1
1
-
0
Закрытый
11.4
Доступ к сущностям
↗
1
1
-
0
Закрытый
11.5
Доступ к блокам
↗
1
1
-
0
Закрытый
11.6
Итоги
↗
1
1
-
0
12. Кэширование
5 уроков
0
0
0м
0
Закрытый
12.1
Введение в кэширование
↗
0
0
-
0
Закрытый
12.2
Метаданные кэширования
↗
0
0
-
0
Закрытый
12.3
Плейсхолдеры и ленивая сборка (Lazy Building)
↗
0
0
-
0
Закрытый
12.4
Использование Cache API
↗
0
0
-
0
Закрытый
12.5
Итоги
↗
0
0
-
0
13. JavaScript и Ajax API
5 уроков
0
0
0м
0
Закрытый
13.1
Введение
↗
0
0
-
0
Закрытый
13.2
JavaScript в Drupal
↗
0
0
-
0
Закрытый
13.3
Ajax API
↗
0
0
-
0
Закрытый
13.4
Система состояний (States) в Form API
↗
0
0
-
0
Закрытый
13.5
Итоги
↗
0
0
-
0
14. Интернационализация и языки
5 уроков
0
0
0м
0
Закрытый
14.1
Введение
↗
0
0
-
0
Закрытый
14.2
Многоязычная экосистема Drupal
↗
0
0
-
0
Закрытый
14.3
Интернационализация
↗
0
0
-
0
Закрытый
14.4
Перевод контента и API перевода
↗
0
0
-
0
Закрытый
14.5
Итоги
↗
0
0
-
0
15. Пакетная обработка, очереди и cron
7 уроков
0
0
0м
0
Закрытый
15.1
Введение
↗
0
0
-
0
Закрытый
15.2
Пакетная обработка в хуках обновления
↗
0
0
-
0
Закрытый
15.3
Пакетные операции
↗
0
0
-
0
Закрытый
15.4
Cron
↗
0
0
-
0
Закрытый
15.5
Queue API (API очередей)
↗
0
0
-
0
Закрытый
15.6
Lock API (API блокировок)
↗
0
0
-
0
Закрытый
15.7
Итоги
↗
0
0
-
0
16. Представления
9 уроков
0
0
0м
0
Закрытый
16.1
Введение в представления (Views)
↗
0
0
-
0
Закрытый
16.2
Сущности в Views
↗
0
0
-
0
Закрытый
16.3
Представление пользовательских данных в Views
↗
0
0
-
0
Закрытый
16.4
Поля в Views
↗
0
0
-
0
Закрытый
16.5
Сортировка и фильтрация в Views
↗
0
0
-
0
Закрытый
16.6
Аргументы в Views
↗
0
0
-
0
Закрытый
16.7
Тематизация Views
↗
0
0
-
0
Закрытый
16.8
Хуки Views
↗
0
0
-
0
Закрытый
16.9
Итоги
↗
0
0
-
0
17. Работа с файлами и изображениями
11 уроков
0
0
0м
0
Закрытый
17.1
Введение
↗
0
0
-
0
Закрытый
17.2
Файловая система
↗
0
0
-
0
Закрытый
17.3
Потоковые обертки (Stream Wrappers)
↗
0
0
-
0
Закрытый
17.4
Управляемые и неуправляемые файлы
↗
0
0
-
0
Закрытый
17.5
Работа с управляемыми файлами
↗
0
0
-
0
Закрытый
17.6
Загрузка управляемых файлов через форму
↗
0
0
-
0
Закрытый
17.7
Создание собственной потоковой обертки
↗
0
0
-
0
Закрытый
17.8
Работа с неуправляемыми файлами
↗
0
0
-
0
Закрытый
17.9
Приватная файловая система
↗
0
0
-
0
Закрытый
17.10
Изображения в Drupal
↗
0
0
-
0
Закрытый
17.11
Итоги
↗
0
0
-
0
18. Автоматизированное тестирование
9 уроков
1
1
0м
0
Закрытый
18.1
Введение
↗
0
0
-
0
Закрытый
18.2
Методологии тестирования в Drupal
↗
0
0
-
0
Закрытый
18.3
Использование PHPUnit для запуска тестов
↗
0
0
-
0
Закрытый
18.4
Регистрация тестов
↗
0
0
-
0
Закрытый
18.5
Модульные тесты (Unit Tests)
↗
0
0
-
0
Закрытый
18.6
Ядерные тесты (Kernel Tests)
↗
0
0
-
0
Закрытый
18.7
Функциональные тесты (Functional Tests)
↗
0
0
-
0
Закрытый
18.8
Функциональные тесты с использованием JavaScript
↗
0
0
-
0
Закрытый
18.9
Итоги
↗
1
1
-
0
19. Безопасность Drupal
5 уроков
5
5
0м
0
Закрытый
19.1
Введение
↗
1
1
-
0
Закрытый
19.2
Защита от межсайтового скриптинга (XSS)
↗
1
1
-
0
Закрытый
19.3
Защита от SQL-инъекций
↗
1
1
-
0
Закрытый
19.4
Защита от межсайтовой подделки запросов (CSRF)
↗
1
1
-
0
Закрытый
19.5
Итоги
↗
1
1
-
0