Enhancement(機能追加・改善) #1116
closedcoreのweb/image にある画像もスキンプラグインで変更できるようにしてほしい
100%
Description
no_image.gif のようなcore のweb/images にある画像がスキンプラグイン側で変更できない。
no_image や誕生日バナーはユーザ画面で目に付く位置に表示される画像なので、スキンプラグインで他のデザインと合わせて変更できるようにしてほしい。
Updated by Shogo Kawahara over 14 years ago
- Status changed from New(新規) to Accepted(着手)
- Assignee set to Shogo Kawahara
- Target version set to OpenPNE 3.6beta1
Updated by Shogo Kawahara over 14 years ago
Updated by Shogo Kawahara over 14 years ago
今回は多少アグレッシブかつプラグイン開発者への周知が必要な実装をしました。
新規実装ヘルパー関数
- op_image_tag_sf_image()
image_tag_sf_image のように動作しますが、Skinプラグインから "no_image.gif" を探し、見つかった場合優先して指定するようになります。
- op_image_tag()
画像名の最初に / が入っていない場合、 利用しているSkinプラグインから画像を探し、見つかった場合にそれを指定しまするimgタグを作成。見つからない場合は image_tag() と挙動は同様。
- op_image_path()
画像名の最初に / が入っていない場合、Skinプラグインから指定画像を探し、見つかった場合はその画像のパスを返す。見つからない場合は image_path() と挙動は同様。
よって、"no_image.gif" を使う場合や、Skinプラグインで上書き可能にする画像の出力に関しては上記の関数に置き換える必要があります。
このように、独自タグを用意する大きなメリットとして、OpenPNEが独自にimgタグ出力周りなどの挙動を変更できるということがあるでしょう。
Updated by Shogo Kawahara over 14 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
更新履歴 8c58d3b41c050abe4727acdb3143ed7bcc2c4280 で適用されました。
Updated by Rimpei Ogawa over 14 years ago
- Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)
op_image_path() についてフィードバックします。
1. スキンプラグイン名のみを保存すれば十分¶
スキンプラグインのパスは必要なく、プラグイン名のみを保存し、sf_web_dir/opSkin***Plugin/images/$source が存在するかどうかを確認するようにすれば、もっとシンプルになると思います。
パターンマッチもないので glob() も不要です。
2. strpos() の引数間違い¶
1142 if (strpos('.', $path[count($path) - 1]))
strpos() の引数の順番が逆です。と、おそらく !strpos() としたかった場面ではないでしょうか。
3. 文字列連結の間違い¶
1144 $pattern .= $pattern.'.png';
これだと、 $pattern = $pattern.$pattern.'.png' になってしまいます。
Updated by Shogo Kawahara over 14 years ago
- Status changed from Rejected(差し戻し) to Accepted(着手)
Updated by Shogo Kawahara over 14 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
更新履歴 640900818758410b3dafcb2b4b3a9cce3a8a6040 で適用されました。
Updated by Rimpei Ogawa over 14 years ago
- Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)
Skinプラグインの判定は、他の箇所では正規表現を使っていないので合わせてください。
lib/config/opApplicationConfiguration.class.php 91: if (0 === strpos($pluginName, 'opSkin')) lib/plugin/opPlugin.class.php 135: return (0 === strpos($this->name, 'opSkin'));
lib/helper/opUtilHelper.php 1147: if (preg_match('/^opSkin.*Plugin$/', $plugin))
Updated by Shogo Kawahara over 14 years ago
- Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
更新履歴 8077965f79759000bb300a60817d025d5e650c69 で適用されました。
Updated by Rimpei Ogawa over 14 years ago
- Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)
$source からファイル名を返すのには basename() が使えます(#1160 と同じ指摘でこちらに書き忘れていました)
_compute_public_path() が参考になります。
396 if (false === strpos(basename($source), '.')) 397 { 398 $source .= '.'.$ext; 399 }
Updated by Shogo Kawahara over 14 years ago
- Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
更新履歴 6ac2ac610df11512ef52eed030f9d21f800b8b22 で適用されました。
Updated by Rimpei Ogawa over 14 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
Updated by Kousuke Ebihara over 14 years ago
- Status changed from Pending Testing(テスト待ち) to Fixed(完了)
- % Done changed from 70 to 100