Media Directories
Taxonomy Termを使用してMediaエンティティのディレクトリ構造を提供し、jsTreeディレクトリブラウザによる完全な機能を備えたフォルダ管理でメディアファイルを整理できます。
media_directories
概要
Media Directoriesは、DrupalのMediaエンティティに強力なディレクトリベースの整理システムを追加します。Taxonomy Termをフォルダとして活用することで、サイト管理者やコンテンツ編集者は、従来のファイルマネージャーと同様の階層的なフォルダ構造でメディアファイルを整理できます。
このモジュールはすべてのMediaエンティティに「directory」ベースフィールドを追加し、特定のフォルダへの割り当てを可能にします。メインモジュールはコア機能を提供し、UIサブモジュールはjsTreeを使用したリッチでインタラクティブなブラウザインターフェースを提供、Editorサブモジュールはシームレスなメディア埋め込みのためにCKEditorと統合します。
主な機能には、ドラッグ&ドロップによるメディア整理、フォルダの作成・名前変更・削除、複数メディアアイテムのクイック編集、複数ファイルタイプの統合アップロード機能、ディレクトリとメディアアイテム両方の翻訳サポートが含まれます。
Features
- Taxonomy Vocabularyを使用したフォルダ整理のため、すべてのMediaエンティティにdirectoryフィールドを追加
- 完全なCRUD操作(ディレクトリの作成、名前変更、移動、削除)を備えたjsTreeベースのインタラクティブなディレクトリブラウザ
- ディレクトリ間でメディアアイテムを移動するためのドラッグ&ドロップサポート
- 単一または複数のメディアアイテムを同時に編集するクイック編集機能
- 単一のインターフェースから複数のファイルタイプをアップロードできる統合アップロード機能
- 統合アップロード時にファイル拡張子に基づくメディアタイプの自動検出
- コンテンツタイプのメディア参照フィールド用Entity Browserを使用したフィールドウィジェット統合
- コンテンツに直接メディアを挿入するための埋め込みボタンによるCKEditor統合
- カスタム寸法サポートを備えた埋め込みダイアログでの画像リサイズ機能
- Content Translationモジュールによるメディアアイテムとディレクトリ用語両方の翻訳サポート
- 最適化されたスタイリングによるGinおよびClaro管理テーマのサポート
- Media LibraryでディレクトリごとにメディアをフィルタリングするためのViewsフィルター
- ディレクトリ割り当てに関係なくすべてのファイルを表示するルートディレクトリオプション
- Media/Filesメニューリンクの表示を制御するためのAdmin Toolbar統合
Use Cases
大規模ウェブサイトのメディアアセット整理
数千の画像、ドキュメント、動画を持つ企業ウェブサイトは、Media Directoriesを使用してアセットを部門別フォルダ(マーケティング、人事、製品)に整理し、キャンペーン、年度、プロジェクトごとのサブフォルダを作成できます。編集者は馴染みのあるフォルダ構造をナビゲートして、アセットをすばやく見つけて再利用できます。
マルチサイトメディア管理
メディアを共有するマルチサイトインストールでは、ディレクトリが異なるサイトやブランドを表すことができます。パーミッションと組み合わせることで、特定のチームは指定されたフォルダにのみアクセスしてアップロードでき、共有アセットは共通ディレクトリに残ります。
効率的なコンテンツオーサリング
CKEditorを使用するコンテンツ編集者は、Mediaの埋め込みボタンを使用して記事に画像を直接挿入できます。埋め込みダイアログでは、事前定義された画像スタイルから選択するか、カスタム寸法を設定できるため、手動でトリミングせずに適切なサイズの画像を簡単に作成できます。
メディアマネージャー向けの統合ファイルアップロード
統合アップロードを有効にすると、メディアマネージャーは画像、ドキュメント、動画の混合バッチをドラッグ&ドロップできます。システムは拡張子に基づいて各ファイルに適切なメディアタイプを自動的に作成し、すべてを選択したディレクトリに割り当てます。
コアMedia Libraryインターフェースの置き換え
フォルダベースのワークフローを好む組織は、コアのMediaタブとFilesタブを非表示にするオプションを有効にして、Media Directoriesブラウザをすべてのメディア操作のプライマリインターフェースにしながら、Media Libraryウィジェットとの完全な互換性を維持できます。
Tips
- メディアタイプの「media_library」フォーム表示モードを使用して、クイック編集ダイアログに表示されるフィールドをカスタマイズし、より速い編集のために必要なフィールドに絞り込みます。
- 移行や初期セットアップ中は「ルートディレクトリにすべてのファイルを表示」を有効にして、整理されていないメディアを簡単に見つけ、日常的な操作ではこれを無効にしてクリーンな状態を保ちます。
- メディアを一括インポートする前にディレクトリ構造を作成し、インポート中または後の整理のためにフォルダを準備しておきます。
- ツールバーのフィルターフィールドを使用して、大きなディレクトリ内をすばやく検索します - 現在のディレクトリビューでメディア名でフィルタリングします。
- ツリー内のディレクトリを右クリックすると、作成、名前変更、削除オプションのコンテキストメニューが表示されます。
- メディアアイテムをツリー内のディレクトリに直接ドラッグして移動できます - 複数選択をサポートしてバッチ移動が可能です。
- 最も頻繁に使用するメディアタイプで統合アップロードを設定し、コンテンツ編集者のアップロード体験を効率化します。
Technical Details
Admin Pages 2
/admin/config/media/media_directories
ディレクトリ構造に使用するTaxonomy Vocabularyの選択や、ルートディレクトリにすべてのファイルを表示するかどうかなど、Media Directoriesのコア設定を構成します。
/admin/content/browser
完全なディレクトリベースのメディア管理を提供するスタンドアロンのメディアブラウザインターフェース。フォルダに整理されたメディアアイテムの閲覧、アップロード、編集、移動、削除が可能です。
権限 1
Hooks 3
hook_entity_base_field_info
すべてのMediaエンティティに「directory」ベースフィールドを追加し、Taxonomy Termディレクトリへの割り当てを可能にします。
hook_ENTITY_TYPE_presave (media)
メディアエンティティを保存する前にdirectoryフィールドの値を検証し、ルートディレクトリの値がNULLとして保存されることを保証します。
hook_field_widget_complete_WIDGET_TYPE_form_alter (options_select)
directoryフィールドのoptions_selectウィジェットを変更し、「- なし -」の代わりに「ルートディレクトリ」を表示します。
Troubleshooting 5
jsTreeライブラリが/libraries/jstree/dist/jstree.min.jsにローカルインストールされているか、CDN読み込みが許可されていることを確認してください。ブラウザコンソールで読み込みエラーを確認してください。Libraries APIを使用している場合、モジュールは自動的にライブラリパスを検出します。
/admin/config/media/media_directoriesに移動し、ディレクトリに使用するTaxonomy Vocabularyを選択してください。必要に応じて最初に新しいVocabularyを作成してください。
Drupalキャッシュをクリアし、Viewsモジュールが有効になっていることを確認してください。media_directories_baseビューが存在し有効になっていることを確認してください。
ファイル拡張子が統合アップロード設定で有効になっているメディアタイプのいずれかと一致することを確認してください。メディアタイプのソースフィールドで許可されるファイル拡張子設定にその拡張子が設定されていることを確認してください。
/admin/config/content/formatsでテキストフォーマット設定にMediaボタンを追加してください。「Embed media」と「Display embedded entities」の両方のフィルターが有効になっていることを確認してください。