Общие вопросы (Drupal) Flashcards

1
Q
  1. Какими средствами вы можете вывести контент или список контента на странице?
A

views
panels
block
кастомный код + собственный роут

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Cron. Работа с cron в Drupal. QueueWorker. Очереди.
A

Крон - подсистема друпал, позволяющая периодически выполнять набор функций
Для работы с очередями в друпа существует queuqe api

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Как работает AJAX в Drupal? Какие инструменты для работы с AJAX есть в Drupal?
A

AJAX Form
1. Добавьте свойство ‘#ajax’ к элементу формы в массиве формы, чтобы вызвать ответ Ajax.
2. Напишите обратный вызов Ajax для обработки ввода
AJAX LInk
Создание контроллера
Определение Ajax команд Ajax API

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Что такое Drupal behaviors и зачем они нужны?
A

Behavior вызывается при загрузке страницы, на каждый AJAX-запрос.
Ядро Drupal вызывает behaviours, когда DOM полностью загружен
Могут срабатывать много раз, чтобы этого избежать используется метод once.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Что такое Drush? Какие Drush команды вы знаете? Как создать свою Drush
    команду?
A
  • Drush - оболочка командной строки для Drupal.
  • drush cache:clear, чтобы посмотреть список отдельных кэшей и потом выберите нужный кэш, который вы бы хотели очистить.

cache:rebuildдля очистки и перестроения всех данных кэша на сайте. После запуска этой команды, вы увидите сообщение “Cache rebuild complete.”

config: export Экспорт конфигурации Drupal в каталог.
config: import Импорт конфигурации из каталога конфигурации.
- Для того чтобы добавить кастомную drush команду, мы должны создать собственный модуль и добавить в него файл с именем модуля, который заканчивается на drush.inc. В этом файле нужнореализовать drush_hook_command()и определить в нем нашу команду

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

a. Drupal console?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Использование drupal_static. Для чего?
A

Обеспечивает центральное хранение статических переменных. Всем функциям, которым требуется статическая переменная для сохранения или кэширования данных в пределах одного запроса страницы

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Input format для полей “текстовая область”. Какие форматы есть по-умолчанию, чем они отличаются друг от друга? Зачем нужны инпут форматы? XSS?
A

Это необходимо чтобы оградить сайт от насанкционированного html кода(например cross site scripting)
Input format необходим для фильтрации пользовательского ввода

Text
Filterd HTML
FullHTML

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Что такое лог? Как можно добавить запись в лог?
A

Лог - журнал действий пользователя или программы (нотисы, ошибки) для протоколирования выполняемых операций для дальнейшего анализа
в 7
watchdog(‘my_module’, $message, array());

в 8
\Drupal::logger(‘my_module’)->notice($message);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Какими способами можно загрузить контент из БД по условию?
A

EntityQuery (друпал::енититиквери и кондишены)
PDO - DI на сервис Drupal\Core\Database\Connection
Entity:loadbyproperty

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Lazy builder. Как работает? Как реализовать свой.
A

В друпал внедрена технология BigPipe. Как это работает. Для динамических элементов вместо содержимого на страницу добавляется специальный placeholder, благодаря чему DOM готов раньше чем содержимое для него. А затем в фоне проверяется наличие специальных меток, которые добавляются в самом конце загрузки страницы, и если они появились, выполняются их команды, которые заменяют плейсхолдеры на контент

Задается элемент рендер эреем c массивом по ключу #lazy_builder, где первый аргумент метод, который будет обрабатывать логику для рендера(предпочтительно передавать при помощи сервиса). Данный метод обязан возвращать render array. Второй аргумент: массив с данными которые вы хотите отдать в метод для будущего рендера.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly