Этот запрос предоставляет полное представление обо всех темах вашего экземпляра Discourse, а также об установленных в них компонентах. Он может быть полезен администраторам, управляющим несколькими темами, которым нужно быстро определить, какие компоненты установлены в каждой из них.
-- [params]
-- null text :theme_name
-- Запрос для вывода всех тем и связанных с ними установленных компонентов
WITH parent_themes AS (
SELECT id, name
FROM themes
WHERE component = false
AND (:theme_name IS NULL OR name ILIKE '%' || :theme_name || '%')
)
SELECT
pt.name AS theme_name,
ct.name AS component_name,
ct.enabled AS component_enabled
FROM parent_themes pt
LEFT JOIN child_themes child ON child.parent_theme_id = pt.id
LEFT JOIN themes ct ON ct.id = child.child_theme_id
ORDER BY pt.name, ct.name
Параметры
- theme_name: (Необязательно) Фильтр результатов для отображения только тем, содержащих этот текст. По умолчанию отображаются все темы и их компоненты.
Результаты
- theme_name: Название каждой темы.
- component_name: Название компонентов, установленных в теме.
- component_enabled: Указывает, включен ли компонент (true) или отключен (false).
Темы, не имеющие компонентов, будут отображаться со значениями NULL в полях компонентов. Результаты отсортированы по алфавиту по названию темы, а затем по названию компонента.
Пример результатов
| theme_name | component_name | component_enabled |
|---|---|---|
| Default | discourse-adplugin | true |
| Default | discourse-chat | true |
| Default | discourse-signatures | false |
| Corporate | discourse-header-search | true |
| Corporate | discourse-tooltips | true |