テーマと関連テーマコンポーネントのレポート

このクエリは、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
「いいね!」 3