Mediafrontモジュールの影響

動画公開をMediafrontモジュールを使用する方法に変更しました。

それにあわせてフロントページの表示や動画プレイリストページの表示も変わりました。
前々からやりたかったプレイリストのタギングやVoting機能が追加でき、すべて上手くいったかのように思えましたが、落とし穴がありました。

事象
ブログ記事投稿用のコンテンツタイプで、WYSIWYG ImageFieldモジュールにより画像を挿入すると実際に画像のあるパスと生成されるHTMLコードのパスが不一致になる。
または、ImageCacheモジュールで生成する画像が存在しない。
そのため、画像が表示されません。

原因
パスの位置を変更しているのはFileField Pathモジュールの機能ですが、その設定が無視されている。
さらに、ImageCacheモジュールが正常に動作していない。

根本的な原因
Mediafrontモジュールを導入するとImageFieldを使ったフィールドすべて(コンテンツタイプは無視)にMediaFrontよって以下の機能が追加されています。
「Mediafront Playerで使用するためにアップロードした画像をImageCacheのプリセットを使って処理をする」
Mediafrontモジュールは動画や音楽以外に画像にも対応しているためこういった機能が追加されてしまうのでしょうが、問題点は、その機能の使い分けや有効/無効を切り替えるための設定は不可であり、アップロードする画像ファイルはすべてMediaFrontで使用することを前提としてしまっていることです。

動画投稿用のコンテンツタイプとブログ投稿用のコンテンツタイプをわけて運用していますが、それぞれ画像のアップロードに使われるのはImageFieldやFileFieldの機能になります。
①画像挿入時には指定したプリセットを使ってImageCacheが画像をリサイズなりしてくれます。
②また、オリジナル画像のパスはFielField Pathで設定した場所に移動してくれます。

Mediafrontモジュールを導入することによって、この①と②の機能に影響を与えてしまっているようです。

いまさら戻すのもアレだし、さてどうしたものか・・・
 


2011.06.27 原因究明と対策

赤字箇所はうそではないのですが、今回の事象は「ImageCacheでファイルが作成されない」ことが原因であることが判明しました。
なぜ作成されないのかというとアップロードファイル名に「mediafront」という文字列が含まれているとダメなようです。

画像のALTやTITLE要素にファイル名を使うようにしたとき、アップロードするファイル命名則を「ターム名_yyyymmddnn.拡張子」に決めていました。
事象が発生したファイル名は、「mediafront_20110626nn.png」(※nnは数字)だったのでダメでした。

ファイル名を「mfront_20110626nn.png」(※仮)に変更すれば問題なく動作しました。
※ちなみにフィールド設定の中のMediaFrontのImageCacheの項目は「Original Image」(デフォルト)にしてあります。

※画像パス(ファイルシステムパス/画像ファイル名ファイルシステムパス/images/画像ファイル名)が不一致になるのは、アップロードしたファイルをFileField Pathで設定したパスに移動しているためで投稿を完了すれば、画像パス(ファイルシステムパス/images/画像ファイル名)にファイルが移動されなおかつ、Insertしたパス名もそれにあわせて置換されるため正常な動作でした。
(記事作成中と保存後でパス名が変わります)

アップロード先のパス設定値

項目 パス名 用途
ファイルシステム media Drupalファイルシステムパス
※デフォルトを変更しています。
画像ファイル ファイルシステム/images すべての画像ファイル
※FileField Pathにて設定
画像キャッシュ ファイルシステム/imagecache/プリセット名/images ImageCacheで生成した画像
※FileField Pathの影響により
ファイルシステム/imagecache/プリセット名
直下にもファイルが存在します。
※プリセットを更新するとすべて消去されます。
動画ファイル ファイルシステム/videos すべての動画ファイル
※FileField Pathにて設定

 

Drupalバージョン

Drupal 6.x

カテゴリ

メディア

モジュール

MediaFront