D7 Media
Drupal 7向けの包括的なメディア管理フレームワークを提供します。ファイルブラウザ、フィールドウィジェット、WYSIWYG統合、リモートメディアソースのサポートを含みます。
media
概要
Mediaモジュールは、Drupal 7向けの完全なファイルおよびマルチメディアアセット管理フレームワークです。ローカルにホストされているか、YouTubeやVimeoなどのサードパーティサービスにホストされているかに関係なく、編集者と管理者がファイルやマルチメディアアセットをアップロード、管理、再利用できる統一されたユーザーインターフェースを提供します。
このモジュールは、標準のファイルアップロードフィールドを洗練されたメディアブラウザインターフェースに置き換えます。ユーザーはメディアライブラリから既存のファイルを選択したり、新しいファイルをアップロードしたり、リモートURLからメディアを追加したりできます。専用のサブモジュールを通じてWYSIWYGエディタとシームレスに統合され、コンテンツ作成者がリッチテキストコンテンツに直接メディアアセットを埋め込むことができます。
Media 7.x-2.xは、以前のバージョンからの重要なアーキテクチャの変更を表しています。カスタムメディアエンティティタイプから、ファイル管理にFile Entityモジュールを活用する形式に移行しました。これにより、マイグレーションヘルパーを通じて後方互換性を維持しながら、DrupalのFieldシステムやViewsとのより良い統合が提供されます。
Features
- jQuery UIベースのポップアップウィンドウによるファイルの選択とアップロード用のメディアブラウザダイアログインターフェース
- 標準のアップロードウィジェットを置き換えるファイルおよび画像フィールド用のフィールドウィジェット(メディアブラウザ)
- メディアブラウジングインターフェースを作成するためのカスタム表示およびスタイルプラグインによるViews統合
- サブモジュールを介したリッチテキストコンテンツへのメディア埋め込み用WYSIWYGエディタ統合(CKEditor、TinyMCE)
- URLやYouTube、Vimeoなどのサービスからのインポート用インターネット/リモートメディアソースサポート
- 複数ファイルを同時にアップロードするためのPluploadを使用した一括アップロード機能
- 標準のテーブルビューに加えたメディア管理用サムネイルグリッドビュー
- カスタムメディアソースを追加するための拡張可能なブラウザプラグインアーキテクチャ
- 一貫したサムネイル表示のためのカスタム画像スタイル(media_thumbnail)
- 各種メディアタイプ(画像、動画、音声、ドキュメント)用のファイルタイプアイコン
- 多言語ファイル管理のためのEntity Translationサポート
- ローカルおよびリモートファイルストレージスキームの両方に対応したStream Wrapperサポート
- テキストコンテンツ内のメディアタグをレンダリングされたマークアップに変換するInput Filter
Use Cases
コンテンツ編集者向けのメディアライブラリの構築
Mediaを有効化し、コンテンツタイプのファイルフィールドをメディアブラウザウィジェットを使用するよう設定します。編集者はコンテンツを追加する際に既存のメディアをブラウズしたり、新しいファイルをアップロードしたり、ライブラリを検索したりできます。admin/content/file/thumbnailsのサムネイルビューは、すべてのサイトメディアを視覚的に管理する方法を提供します。
WYSIWYGコンテンツへのメディア埋め込み
Media WYSIWYGサブモジュールを有効化し、WYSIWYGプロファイルにMediaボタンを含めるよう設定し、テキストフォーマットで「メディアタグをマークアップに変換」フィルターを有効にします。コンテンツ作成者はMediaボタンをクリックして画像、動画、その他のファイルをブラウズし、リッチテキストコンテンツに直接埋め込むことができます。
YouTube/Vimeo動画の追加
Media Internet Sourcesサブモジュールを有効化し、Media: YouTubeなどのプロバイダーモジュールをインストールします。ユーザーはYouTube URLまたは埋め込みコードを貼り付けることができ、動画はコンテンツに埋め込んだりフィールドに添付したりできるファイルエンティティとして保存されます。
メディアアセットの一括アップロード
Media Bulk Uploadサブモジュールを有効化(Pluploadが必要)。メディアブラウザのアップロードタブが複数の同時アップロードをサポートするようになります。admin/content/file/importのインポート機能を使用して、サーバーファイルシステムからファイルをバッチインポートします。
カスタムメディアソースの作成
hook_media_browser_plugin_info()を実装してメディアブラウザにカスタムタブを追加し、hook_media_internet_providers()を実装して新しいリモートメディアサービスのサポートを追加します。MediaBrowserPluginまたはMediaInternetBaseHandlerを拡張するクラスを作成します。
フィールドごとのメディアタイプ制限
各メディアフィールドのフィールドウィジェット設定を構成して、許可されるファイルタイプ(image、video、document)、有効なブラウザプラグイン、許可されるURIスキームを指定します。これにより、特定のフィールドでユーザーが選択またはアップロードできるものを制限します。
Tips
- メディアブラウザと管理インターフェース全体で一貫したサムネイル表示のために'media_thumbnail'画像スタイルを使用してください。
- メディアブラウジング用のViewsを作成する際は、メディアブラウザインターフェースとの適切な統合のために'media_browser'表示およびスタイルプラグインを使用してください。
- 大規模なメディアライブラリでのパフォーマンス向上のために、メディアライブラリビューでViewsのCacheを設定してください。
- メディアブラウザテーマはサイトテーマとは別に設定できます - ポップアップインターフェースとの互換性を高めるために管理テーマを使用してください。
- カスタムブラウザプラグインはMediaBrowserPluginを拡張し、タブコンテンツを提供するためにview()メソッドを実装する必要があります。
- hook_media_browser_params_alter()を使用して、コンテキストに基づいてメディアブラウザの動作をカスタマイズします(例:フィールドごとに異なるファイルタイプ制限)。
- Media WYSIWYGによって追加される'WYSIWYG'ビューモードは、エディタ内での表示とレンダリングされたページでの表示を個別に制御するために設定できます。
Technical Details
Admin Pages 4
/admin/config/media/browser
テーマ選択、ポップアップサイズ、オーバーレイ設定など、メディアブラウザダイアログの動作と表示を設定します。
/admin/content/file/thumbnails
標準のテーブルビューの代わりにサムネイルグリッドビューを使用してファイルを管理します。一括操作用のチェックボックスを備えたビジュアルファイルブラウジングを提供します。
/admin/content/file/import
ローカルファイルシステムからメディアライブラリにファイルをインポートします。Media Bulk Uploadサブモジュールが必要です。
/file/add/web
インターネットURLまたはリモートサービスからファイルを追加します。直接URLとYouTubeやVimeoなどのサービスからの埋め込みコードをサポートします。
権限 5
Hooks 13
hook_media_parse
URLまたは埋め込みコードをメディアファイルストレージ用の一意のURIに解析します。
hook_media_parse_alter
URLと埋め込みコードの一意のURIへの解析を変更します。
hook_media_browser_plugin_info
メディアブラウザタブ用のプラグインのリストを返します。
hook_media_browser_plugin_info_alter
メディアブラウザプラグインのリストを変更します。
hook_media_browser_plugins_alter
メディアブラウザでレンダリングされる前にプラグインを変更します。
hook_media_browser_params_alter
カスタマイズのためにメディアブラウザに渡されるパラメータを変更します。
hook_media_widget_multiple_alter
レンダリング前にメディア複数要素ウィジェットテーブルを変更します。
hook_media_internet_providers
URL/埋め込みコード処理用のインターネットメディアプロバイダーのリストを返します。
hook_media_internet_providers_alter
インターネットメディアプロバイダーのリストを変更します。
hook_media_wysiwyg_allowed_view_modes_alter
WYSIWYGに埋め込まれたファイルに許可されるビューモードのリストを変更します。
hook_media_wysiwyg_format_form_prepare_alter
他のalterが実行される前にWYSIWYGビューモード選択フォームを変更します。
hook_media_wysiwyg_token_to_markup_alter
Mediaフィルタータグによって生成されるレンダリング出力を変更します。
hook_media_wysiwyg_allowed_attributes_alter
WYSIWYGメディア埋め込みで許可される属性のリストを変更します。
Troubleshooting 6
jQuery UIライブラリ(dialog、draggable、resizable、tabs)が利用可能であることを確認してください。DrupalとブラウザのCacheをクリアしてください。他のモジュールとのJavaScriptの競合を確認してください。
Media WYSIWYGサブモジュールが有効か、WYSIWYGプロファイル設定でmediaボタンが有効か、ユーザーに'use media wysiwyg'パーミッションがあるか確認してください。
コンテンツで使用されるテキストフォーマットで「メディアタグをマークアップに変換」フィルターを有効にしてください。「URLをリンクに変換」フィルターの前に実行されるようにしてください。
Media Migrate File Typesサブモジュールを有効化し、admin/structure/file-types/upgradeにアクセスしてレガシーファイルタイプをFile Entityタイプに移行してください。
ユーザーにFile Entityの'create files'パーミッションとMediaの'access media browser'パーミッションがあることを確認してください。WYSIWYGの場合は、'use media wysiwyg'パーミッションも付与してください。
PluploadとMultiform(7.x-1.3以上)モジュールがインストールされ有効になっていることを確認してください。サーバー設定でPHPアップロード制限(upload_max_filesize、post_max_size)を確認してください。
Security Notes 5
- 'use media wysiwyg'パーミッションは、WYSIWYGフォームが画像派生物を生成し、悪用された場合にDoS脆弱性につながる可能性があるため、制限付きとしてマークされています。
- 'import media'パーミッションは、サーバーファイルシステムからのファイルのインポートを許可し、設定ミスにより機密ファイルが露出する可能性があるため、制限されています。
- HTTPクエリからのメディアブラウザパラメータは、セキュリティに関する判断には信頼すべきではありません。安全なパラメータの注入にはhook_media_browser_params_alter()を使用してください。
- カスタムメディアインターネットプロバイダーを実装する際は、インジェクション攻撃を防ぐためにすべてのユーザー入力を検証およびサニタイズしてください。
- フィールドウィジェット設定でのファイルタイプ制限はクライアントサイドとサーバーサイドの両方で適用されますが、常にサーバーレベルでアップロードを検証してください。