Таблица tour
Таблица tour хранит определения guided tours, которые используются модулем Tour для создания интерактивных "прогулок" по интерфейсу административной части или фронтенда сайта. Каждый тур состоит из набора подсказок (tips), которые последовательно выводятся пользователю, выделяя элементы интерфейса и объясняя их назначение.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
id |
varchar(255) |
Уникальный машинное имя (ID) тура. Обычно формируется по принципу module_name-tour_name.
|
module |
varchar(64) |
Имя модуля, который предоставляет данный тур. Используется для определения зависимости конфигурации. |
name |
varchar(255) |
Человекочитаемое название тура. Это название отображается администраторам при управлении турами. |
routes |
blob |
Сериализованный массив маршрутов (routes), на которых должен быть доступен данный тур. Ключ массива - имя маршрута Drupal, значение - массив параметров для данного маршрута. |
tips |
blob |
Сериализованный массив подсказок (tips), которые составляют тур. Каждая подсказка содержит такие данные, как заголовок, содержимое, селектор HTML-элемента, который нужно выделить, и его позицию. |
Как это работает
Туры определяются в YAML-файлах модулей (например, MODULE_NAME.tour.yml) и импортируются в систему конфигурации Drupal. При установке модуля или импорте конфигурации данные из YAML-файла записываются в таблицу tour.
Когда пользователь заходит на страницу, система Tour проверяет таблицу tour на наличие активных туров, маршруты которых (поле routes) соответствуют текущей странице. Если тур найден, JavaScript-библиотека Tour отрисовывает кнопку для его запуска.
При запуске тура данные из поля tips десериализуются, и подсказки выводятся пользователю последовательно. Каждая подсказка использует селектор из конфигурации для поиска и выделения соответствующего элемента интерфейса.
Прогресс прохождения тура (какая подсказка была показана последней) сохраняется в браузере пользователя (например, в Local Storage), чтобы при следующем посещении этой страницы тур мог продолжиться с того же места.
Пример SQL-запроса
Получить список всех туров, предоставляемых модулем node, можно следующим запросом:
SELECT id, name
FROM tour
WHERE module = 'node';
Просмотреть структуру конкретного тура (его подсказки) можно с помощью запроса:
SELECT id, name, tips
FROM tour
WHERE id = 'example-tour';
Смотрите также
-
таблицу
cache_toolbar,
которая хранит кеш для панели инструментов -
таблицу
config,
которая хранит активную конфигурацию сайта -
таблицу
key_value,
которая используется для хранения различных состояний и данных -
таблицу
router,
которая содержит информацию о маршрутах системы