Simplify

特定のフォームフィールドをコンテンツ編集者から非表示にすることで、Drupalの管理画面をシンプルにするモジュールです。

simplify
10,632 sites
113
drupal.org

インストール

Drupal 11, 10, 9 v2.2.2
composer require 'drupal/simplify:^2.2'

概要

Simplifyは、管理者がコンテンツ編集フォームから特定のフォームフィールドを非表示にできるユーザーインターフェース簡素化モジュールです。高度なオプションへのアクセスを必要としないコンテンツ編集者の視覚的な煩雑さと混乱を軽減するのに役立ちます。

このモジュールは、Node、ユーザー、コメント、Taxonomyターム、Blockのフィールドを非表示にすることをサポートしています。設定はグローバル(特定タイプのすべてのフォームに影響)または、エンティティタイプごと(例:コンテンツタイプごと、ボキャブラリごと)に適用できます。フィールドはCSS(visually-hiddenクラス)を使用して非表示にされ、フォームの機能を維持しながら視覚的な複雑さを軽減します。

Simplifyは、Domain Access、Metatag、Redirect、XML Sitemapなど、多くの人気のある拡張モジュールと統合されており、それらのモジュールのフィールドも非表示にできます。

Features

  • すべてのNode、ユーザー、コメント、Taxonomyターム、Blockフォームでフォームフィールドをグローバルに非表示
  • エンティティタイプごとのフィールド非表示設定(コンテンツタイプごと、コメントタイプごと、ボキャブラリごと、Blockタイプごと)
  • コアフィールドのサポート:作成者情報、テキストフォーマット選択、プロモーションオプション、リビジョン情報、Bookアウトライン、コメント設定、メニュー設定、URLパス設定、コンテンツ翻訳
  • 拡張モジュールとの統合:Domain Access、Entity Translation、Metatag、Node Noindex、Redirect、XML Sitemap
  • 特定のユーザーが常に非表示フィールドを表示できる権限ベースのアクセス制御
  • 通常権限をバイパスする管理者ユーザーからもフィールドを非表示にするオプション
  • カスタムフィールドの追加や非表示動作のカスタマイズのためのフックによる拡張可能なAPI

Use Cases

コンテンツ編集者のエクスペリエンスを簡素化

ニュースサイトでは、コンテンツ編集者が技術的なオプションに気を取られることなく、記事の執筆に集中できるようにしたいと考えています。管理者は、すべての記事コンテンツタイプでリビジョン情報、プロモーションオプション、URLパス設定、メタタグをグローバルに非表示にできます。編集者は必要なフィールド(タイトル、本文、画像)のみを表示し、開発者と管理者は「非表示フィールドの表示」権限によりフルアクセスを維持します。

コンテンツタイプごとの簡素化

企業サイトには複数のコンテンツタイプがあります:ブログ投稿(シンプル、マーケティングチーム向け)、製品(複雑、プロダクトマネージャー向け)、ランディングページ(複雑、開発者向け)。コンテンツタイプごとの設定を使用して、管理者はブログ投稿フォームからほとんどのフィールドを非表示にしながら、製品やランディングページではすべてのフィールドを表示したままにできます。

テキストフォーマット選択の非表示

サイトがすべてのコンテンツに単一のテキストフォーマットを使用しており、編集者にそれを変更させたくない場合。管理者は「テキストフォーマット選択」の非表示をグローバルに有効にし、Node、コメント、Taxonomyターム、Blockのすべてのテキストエリアからフォーマットドロップダウンを削除します。

マルチドメインサイトの簡素化

サイトがDomain Accessモジュールを使用していますが、ほとんどの編集者はドメイン選択フィールドを見ることなく、割り当てられたドメインにのみ公開する必要があります。管理者は「Domain access」フィールドをグローバルに非表示にし、「非表示フィールドの表示」権限を持つサイト管理者は引き続きドメインの割り当てを管理できます。

Taxonomy管理の効率化

多くのボキャブラリを持つサイトで、フラットなTaxonomyでは関連フィールド(親ターム選択)を非表示にし、階層的なものでは表示したままにしたい場合。ボキャブラリごとの設定を使用して、管理者は各ボキャブラリを個別に設定できます。

Tips

  • フィールドはCSS「visually-hidden」クラスを使用して非表示にされ、フォームから削除されるわけではありません。これにより視覚的な要素を非表示にしながら、フォームの機能を維持します。
  • グローバル設定とエンティティタイプごとの設定は累積的です。グローバルに非表示にされたフィールドは常に非表示になり、タイプごとの設定で追加のフィールドを非表示にします。
  • エンティティタイプごとの設定を行う際(例:コンテンツタイプの編集フォーム)、すでにグローバルに非表示になっているフィールドは無効なチェックボックスとして表示されます。
  • モジュールはhook_module_implements_alterを実装することでフォームの変更が最後に実行されることを保証し、他のモジュールが非表示動作をオーバーライドすることを防ぎます。
  • 「管理者ユーザーからフィールドを非表示にする」オプションは慎重に使用してください。Drupalのデフォルトの権限動作をオーバーライドし、ユーザー1にも影響します。
  • カスタムモジュール用にSimplifyを拡張するには、hook_simplify_get_fields_alterを使用してフィールドを追加し、hook_simplify_hide_field_alterを使用して非表示動作をカスタマイズします。

Technical Details

Admin Pages 1
Simplify /admin/config/user-interface/simplify

グローバルなフィールド非表示設定を行うメインの管理ページです。このページでは、管理者が各エンティティタイプ(Node、ユーザー、コメント、Taxonomyターム、Block、プロフィール)のすべてのフォームで非表示にするフォームフィールドを選択できます。

権限 2
Simplifyの管理

ユーザーがSimplifyモジュールの設定(グローバル設定、およびコンテンツタイプ、ボキャブラリ、コメントタイプ、Blockタイプの編集フォームでのエンティティタイプごとの設定を含む)にアクセスして変更することを許可します。

非表示フィールドの表示

この権限を持つユーザーはフィールドの非表示から除外され、Simplifyの設定に関係なくすべてのフォームフィールドを表示できます。注意:管理者ユーザー(ユーザー1および管理者ロールを持つユーザー)は、「管理者ユーザーからフィールドを非表示にする」が有効でない限り、この権限を本質的に持っています。

Hooks 2
hook_simplify_get_fields_alter

他のモジュールが非表示可能なフィールドのリストにカスタムフィールドを追加できるようにします。このフックはSimplify設定フォームのチェックボックスオプションを構築する際に呼び出されます。

hook_simplify_hide_field_alter

他のモジュールが特定のフィールドの非表示方法をカスタマイズできるようにします。デフォルトの非表示ロジックが各フィールドに適用された後に呼び出されます。

Troubleshooting 4
管理者ユーザーが非表示フィールドを見ることができる

デフォルトでは、ユーザー1と管理者ロールを持つユーザーは「非表示フィールドの表示」を含むすべての権限を持っています。管理者ユーザーからフィールドを非表示にするには、Simplify管理ページで「管理者ユーザーからフィールドを非表示にする」チェックボックスを有効にしてください。

期待するフィールドがSimplifyオプションに表示されない

一部のフィールドは関連するモジュールが有効な場合にのみ表示されます。例えば、「Bookアウトライン」にはBookモジュールが必要で、「メニュー設定」にはMenu UIモジュールが必要です。必要なモジュールを有効にすると、オプションが表示されます。

コンテンツタイプごとの設定が機能しない

非表示にしようとしているフィールドがすでにグローバルに非表示になっていないか確認してください。グローバルに非表示になっているフィールドは、タイプごとの設定フォームで無効なチェックボックスとして表示されます。タイプごとの非表示を設定するには、まずグローバル設定を解除してください。

非表示フィールドがフォームに表示されたままになっている

ユーザーが「非表示フィールドの表示」権限を持っていないことを確認してください。また、visually-hidden CSSクラスをオーバーライドしている可能性のある競合するモジュールやテーマがないか確認してください。

Security Notes 4
  • Simplifyはフィールドを視覚的に非表示にしますが、フォームから削除したり、それらの値でのフォーム送信を防止したりしません。UIの簡素化ツールであり、セキュリティアクセス制御メカニズムではありません。
  • Simplifyによって非表示にされたフィールドは、プログラム的にアクセスでき、ページソースを検査する技術的な知識を持つユーザーによって操作される可能性があります。
  • 機密性の高いフィールドへの真のアクセス制御には、DrupalのField Permissionsモジュールを使用するか、カスタムアクセスロジックを実装してください。
  • 「非表示フィールドの表示」権限はすべてのSimplifyの非表示を完全にバイパスするため、慎重に付与してください。