Esta consulta proporciona una vista completa de todos los temas en tu instancia de Discourse junto con sus componentes instalados, y puede ser útil para los administradores que gestionan varios temas y necesitan identificar rápidamente qué componentes están instalados en cada tema.
-- [params]
-- null text :theme_name
-- Consulta para listar todos los temas y sus componentes instalados asociados
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
Parámetros
- theme_name: (Opcional) Filtra los resultados para mostrar solo los temas que contienen este texto. La vista predeterminada muestra todos los temas y sus componentes.
Resultados
- theme_name: El nombre de cada tema.
- component_name: El nombre de los componentes instalados en el tema.
- component_enabled: Si el componente está habilitado (true) o deshabilitado (false).
Los temas que no tienen componentes aparecerán con valores NULL para los campos de componentes. Los resultados se ordenan alfabéticamente por el nombre del tema y luego por el nombre del componente.
Resultados de ejemplo
| 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 |