MobileConverter(2.0)の画像変換機能について  【解決済み】

質問全般・改善要望
返信する
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

MobileConverter(2.0)の画像変換機能について  【解決済み】

投稿記事 by sama55 »

お世話になります。
現在、MobileConverter(2.0)で画像のサムネイルが生成されなくて困っています。
インストールパッケージに含まれるreadme_jp(utf8).txt の内容について幾つか教えてください。

質問1 (テンプレート/imgタグのsrc属性のパス表現について)

<base>タグはサポートしてますでしょうか(imgタグのsrc属性がbase相対パスでも変換されますでしょうか/baseタグの有無で挙動に変化はありますでしょうか)?

質問2 (&imgPath引数)
  1. 「このパスから外れる画像は変換対象になりません。」は、同フォルダの子や孫フォルダの画像は変換されますでしょうか?
  2. 「デフォルトはすべてのパスが対象になっています。」の「デフォルト」とは、&imgPath引数全体を省略した場合と値のみ省略した場合どちらにも適用されますでしょうか?
  3. 「ただし、後術する &g[groupNo]_[ruleNo]_switchImgType 設定を行わないと画像変換は行われません。」は「&g[groupNo]_[ruleNo]_imgType」の誤記でしょうか?
質問3 (&thumbImgPath引数)
  1. ここで言及される「パス」とは、ファイルシステム上のパス?それともウェブアドレスにおけるパスを指してますでしょうか?
  2. 「パスは絶対パスではなく、URLを基準としたパスで指定します。」の「URLを基準としたパス」とはどういう意味でしょうか?
  3. 「modxの絶対パス:/PATO/TO/」とは、どういう意味でしょうか?
質問4 (DirectResizeプラグインとの相性)

DirectResizeは、デフォルトではassets/drgalleries/リソースIDフォルダにサムネイルを作り、imgタグのsrc属性を書き換えるのですが、MobileConverterの&imgPathに”assets/drgalleries/”を指定すれば動きますでしょうか(動作実績/動作互換性はありますでしょうか)?

ここで申し上げたいのは、MobileConverterがプラグイン定義でフックするイベントはOnWebPageInitだけですが、暗黙裡にOnLoadWebDocumentとOnWebPagePrerenderイベントでも処理が行われます。DirectResizeはページを出力する際にDirectResizeが生成したサムネイルのパスに差し替えるため、OnLoadWebDocumentやOnWebPagePrerenderイベントでの双方のプラグインの実行順は重要で、DirectResizeの後にMobileConverterが動かなければ、MobileConverterが作り出したサムネイルがクライアントに送られない(DirectResizeが作り出したサムネイルが送られてしまう)ことがあるのではないかと考えています。
最後に編集したユーザー sama55 [ 2011年4月04日(月) 09:47 ], 累計 1 回
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: MobileConverter(2.0)の画像変換機能について

投稿記事 by sama55 »

ここまでの調査結果を報告します。
まず、サムネイルが生成されない件は、下のpopowaさんと同じ原因でした(realpathを外すとサムネイルが作成されました)。
http://d.hatena.ne.jp/popowa/20100308
次にDirectResizeとの相性ですが、掲載イメージを縮小しない場合(DirectResizeが動かない場合)はMobileConverterは正しく動きますが、掲載イメージを縮小すると(DirectResize動くと)、DirectResizeによるimgタグの書き換えが行われ、MobileConverterは正しく動かなくなるようです。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: MobileConverter(2.0)の画像変換機能について

投稿記事 by sama55 »

sama55 さんが書きました:次にDirectResizeとの相性ですが、掲載イメージを縮小しない場合(DirectResizeが動かない場合)はMobileConverterは正しく動きますが、掲載イメージを縮小すると(DirectResize動くと)、DirectResizeによるimgタグの書き換えが行われ、MobileConverterは正しく動かなくなるようです。
上記は、imgPath引数にassets/drgalleries/を追加することで正しく動くようになりました(プラグインの実行順の問題は今のところ発生していません)。

設定例)
&g1_imgPath=Grp1:Target img path;string;assets/images/,assets/drgalleries/
  OR
&imgPath=Grp1:Target img path;string;assets/images/,assets/drgalleries/
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: MobileConverter(2.0)の画像変換機能について

投稿記事 by sama55 »

DirectResizeが介入することで、高解像度画像が端末に送られてしまうので、DirectResize側にエージェント判定を追加してモバイルリクエストを処理しないようにしました(imgPathも復元)。

コード: 全て選択

case "OnWebPagePrerender":
  $agent = $_SERVER['HTTP_USER_AGENT'];
  if(isset($agent)) {
    if(ereg("^DoCoMo", $agent) || ereg("^J-PHONE|^Vodafone|^SoftBank", $agent) || ereg("^UP.Browser|^KDDI", $agent)) return;
  }
返信する