本チケットではバックポート元の#1861および#2103の修正を直接反映することができませんでした。
理由としては以下のものとなります。
- OpenPNE 3.5.3を対象とする#1087における修正をもとにしたものであるため、依存関係を解決できない
以下本チケットにおける調査結果を示します。
調査結果¶
本チケットは携帯版での写真編集ページ(/index.php/member./configImage)における問題を扱っているので以下このページについて述べます。
写真編集ページでapps/mobile_frontend/modules/community/templates/configImageSuccess.phpのテンプレートを用いていますが、ここで以下の記述があります。
6 link_to(__('Expansion'), sf_image_path($community->getFile(), array('size' => '320x320', 'format' => 'jpg'))),
この記述の意図としては、指定した画像ファイルの大きさ320x320のものを表示するものだと思われます。
※plugins/sfImageHandlerPlugin/lib/helper/sfImageHelper.phpのsf_image_path()において'format'は用いられていませんが今回とは別問題とします。
sf_image_path()では「img/ファイルフォーマット/画像ファイルサイズ/ファイル名」という形式の文字列が返ってくるようです。今回の場合、「img/ファイルフォーマット/w320_h320/ファイル名」という形になります。
ここで生成されたURLのリンクへ行くと画像が表示されないという状態になります。
サーバ側を見てみると対象となる画像ファイルサイズのディレクトリ(img/ファイルフォーマット/w320_h320)が存在していませんでした。
また、画像を生成するクラスであるplugins/sfImageHandlerPlugin/lib/image/generator/sfImageGeneratorGD.class.phpには以下のように記述されています。ここはバックポート元の修正部分に相当する部分だと思われます。
27 $allowedSize = array('76x76', '120x120', '180x180', '240x320', '600x600'),
修正案¶
以上より、本チケットの修正案としては以下の3つが挙げられます。
- バックポート元と同様に#1087相当の修正を行った後にバックポート元と同じ修正を行う
- configImageSuccess.phpにおける表示するファイルサイズを画像許可サイズに指定されているものに変更する
- sfImageGeneratorGDの画像許可サイズに320x320を追加する
修正実行案¶
本チケットにおいては#1087における修正を加味する必要はなく、バックポート元単体では3番目を採用しているため、本チケットでも
- sfImageGeneratorGDの画像許可サイズに320x320を追加する
を採用することで解決することを考えます。