先日来、ec-cube2.11.5のバージョンアップの不具合対策をしていましたが。
やっと一部解消しました。
バージョンアップ当初は問題なかったのですが、突然、商品画像のサムネイルが表示されないという不具合が発生し、「工事中」の表示をする事を余儀なくされました。
ググッていろいろ試しましたが、解決しません。
最後の手段として、プログラムの中身を調査して、サムネールを表示するのに特殊な方法を使っている部分を標準的な方法に書き換えました。
これで商品画像のサムネールが表示することができました。
ばんざーい!
まだ、管理画面側の表示が解決していませんが、とりあえずお客様の買い物には支障がなくなりました。
ec-cubeは無料のショップ構築プログラムですが、趣味的な手法を駆使されているので、不具合が出たときに苦労させれます。
徹夜の連続だったので、これで一息つけます。
今日も一日明るく元気に朗らかに!
注)サムネール:画像を縮小して表示したもの。
ここから先は専門的になります。
ec-cubeではサムネイルを表示するのに、resize_image.phpというモジュールを使用してPHPのGD機能を使って表示しています。
問題は、risize_image.phpが多段階にモジュールを読み込んで、phpのGD機能を使って表示するようになっている点です。
まず、サーバーによってPHPのGD機能が使えない場合がある。
多段階のモジュールを読み込んでいるので、エラーが起きた時にどのモジュールで発生しているのかがわかりにくい。
今まで表示さえれていたのが突然表示されなくなる
などの問題点があります。
それらを全部つぶしても原因がわからない。
ソースの文字コードだったり
不具合発生の要因が多すぎる。
対応として、resize.phpsのものを書き換えればすべて解決ですが
色んな条件を考えて作り直すこといなるのでとりあえず、resize_image.phpを呼び出さないでサムネールを表示する事にしました。
要は、考え方として、吐き出されるHTMLのIMGタグに書き換えれば良いわけです。
エラーになっているモジュールをしらべて
resize_image.phpを呼び出している個所をIMGタグに置き換えるだけです。
これで解決しました。
どのモジュールの何行目を書き換えたかは、ご質問ください。
管理画面の商品検索は関係するモジュールを見つけるのは結構難物ですよ。
10月12日、管理画面の商品検索のサムネールが表示されない不具合も解決しました。
%%から始まるモジュールの中に潜んでいました。
resize_imageを使っているモジュールは100近くあります。
探すのが結構大変でした。