D7 Media

Drupal 7向けの包括的なメディア管理フレームワークを提供します。ファイルブラウザ、フィールドウィジェット、WYSIWYG統合、リモートメディアソースのサポートを含みます。

media
59,808 sites
56
drupal.org

概要

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サブモジュールが必要です。

Web /file/add/web

インターネットURLまたはリモートサービスからファイルを追加します。直接URLとYouTubeやVimeoなどのサービスからの埋め込みコードをサポートします。

権限 5
メディアブラウザを管理

admin/config/media/browserでメディアブラウザ設定にアクセスする。

メディアブラウザを使用

ファイルの選択とアップロードのためにメディアブラウザポップアップにアクセスして使用する。

エディタでMedia WYSIWYGを使用

WYSIWYGエディタでメディアブラウザボタンを使用する。画像派生物の生成による潜在的なDoS脆弱性のため制限されています。

リモートサービスからメディアを追加

他のウェブサイト、YouTube、Vimeoなどのリモートソースからメディアを追加する。

ローカルファイルシステムからメディアファイルをインポート

サーバーファイルシステムからファイルを追加するファイルインポート機能を使用する。アクセス制限あり。

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
メディアブラウザポップアップが開かない、またはJavaScriptエラーが発生する

jQuery UIライブラリ(dialog、draggable、resizable、tabs)が利用可能であることを確認してください。DrupalとブラウザのCacheをクリアしてください。他のモジュールとのJavaScriptの競合を確認してください。

WYSIWYG Mediaボタンが表示されない

Media WYSIWYGサブモジュールが有効か、WYSIWYGプロファイル設定でmediaボタンが有効か、ユーザーに'use media wysiwyg'パーミッションがあるか確認してください。

埋め込みメディアがコンテンツでレンダリングされない

コンテンツで使用されるテキストフォーマットで「メディアタグをマークアップに変換」フィルターを有効にしてください。「URLをリンクに変換」フィルターの前に実行されるようにしてください。

Media 1.xからのアップグレード後にファイルタイプが一致しない

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()を使用してください。
  • カスタムメディアインターネットプロバイダーを実装する際は、インジェクション攻撃を防ぐためにすべてのユーザー入力を検証およびサニタイズしてください。
  • フィールドウィジェット設定でのファイルタイプ制限はクライアントサイドとサーバーサイドの両方で適用されますが、常にサーバーレベルでアップロードを検証してください。