Общие вопросы (Drupal) Flashcards
- Какими средствами вы можете вывести контент или список контента на странице?
views
panels
block
кастомный код + собственный роут
- Cron. Работа с cron в Drupal. QueueWorker. Очереди.
Крон - подсистема друпал, позволяющая периодически выполнять набор функций
Для работы с очередями в друпа существует queuqe api
- Как работает AJAX в Drupal? Какие инструменты для работы с AJAX есть в Drupal?
AJAX Form
1. Добавьте свойство ‘#ajax’ к элементу формы в массиве формы, чтобы вызвать ответ Ajax.
2. Напишите обратный вызов Ajax для обработки ввода
AJAX LInk
Создание контроллера
Определение Ajax команд Ajax API
- Что такое Drupal behaviors и зачем они нужны?
Behavior вызывается при загрузке страницы, на каждый AJAX-запрос.
Ядро Drupal вызывает behaviours, когда DOM полностью загружен
Могут срабатывать много раз, чтобы этого избежать используется метод once.
- Что такое Drush? Какие Drush команды вы знаете? Как создать свою Drush
команду?
- Drush - оболочка командной строки для Drupal.
- drush cache:clear, чтобы посмотреть список отдельных кэшей и потом выберите нужный кэш, который вы бы хотели очистить.
cache:rebuildдля очистки и перестроения всех данных кэша на сайте. После запуска этой команды, вы увидите сообщение “Cache rebuild complete.”
config: export Экспорт конфигурации Drupal в каталог.
config: import Импорт конфигурации из каталога конфигурации.
- Для того чтобы добавить кастомную drush команду, мы должны создать собственный модуль и добавить в него файл с именем модуля, который заканчивается на drush.inc. В этом файле нужнореализовать drush_hook_command()и определить в нем нашу команду
a. Drupal console?
Drupal Console представляет собой набор приложений, работающих из интерфейса командной строки (CLI), чтобы создавать шаблонный код для установленного Drupal 8 приложения.
- Использование drupal_static. Для чего?
Обеспечивает центральное хранение статических переменных. Всем функциям, которым требуется статическая переменная для сохранения или кэширования данных в пределах одного запроса страницы
- Input format для полей “текстовая область”. Какие форматы есть по-умолчанию, чем они отличаются друг от друга? Зачем нужны инпут форматы? XSS?
Это необходимо чтобы оградить сайт от насанкционированного html кода(например cross site scripting)
Input format необходим для фильтрации пользовательского ввода
Text
Filterd HTML
FullHTML
- Что такое лог? Как можно добавить запись в лог?
Лог - журнал действий пользователя или программы (нотисы, ошибки) для протоколирования выполняемых операций для дальнейшего анализа
в 7
watchdog(‘my_module’, $message, array());
в 8
\Drupal::logger(‘my_module’)->notice($message);
- Какими способами можно загрузить контент из БД по условию?
EntityQuery (друпал::енититиквери и кондишены)
PDO - DI на сервис Drupal\Core\Database\Connection
Entity:loadbyproperty
- Lazy builder. Как работает? Как реализовать свой.
В друпал внедрена технология BigPipe. Как это работает. Для динамических элементов вместо содержимого на страницу добавляется специальный placeholder, благодаря чему DOM готов раньше чем содержимое для него. А затем в фоне проверяется наличие специальных меток, которые добавляются в самом конце загрузки страницы, и если они появились, выполняются их команды, которые заменяют плейсхолдеры на контент
Задается элемент рендер эреем c массивом по ключу #lazy_builder, где первый аргумент метод, который будет обрабатывать логику для рендера(предпочтительно передавать при помощи сервиса). Данный метод обязан возвращать render array. Второй аргумент: массив с данными которые вы хотите отдать в метод для будущего рендера.