このクエリは、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 |