이 쿼리는 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 |