Enhancement(機能追加・改善) #1116
完了coreのweb/image にある画像もスキンプラグインで変更できるようにしてほしい
Kiwa Sakai さんが14年以上前に追加. 14年以上前に更新.
100%
説明
no_image.gif のようなcore のweb/images にある画像がスキンプラグイン側で変更できない。
no_image や誕生日バナーはユーザ画面で目に付く位置に表示される画像なので、スキンプラグインで他のデザインと合わせて変更できるようにしてほしい。
Shogo Kawahara さんが14年以上前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Shogo Kawahara にセット
- 対象バージョン を OpenPNE 3.6beta1 にセット
Shogo Kawahara さんが14年以上前に更新
Shogo Kawahara さんが14年以上前に更新
今回は多少アグレッシブかつプラグイン開発者への周知が必要な実装をしました。
新規実装ヘルパー関数
- 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タグ出力周りなどの挙動を変更できるということがあるでしょう。
Shogo Kawahara さんが14年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 8c58d3b41c050abe4727acdb3143ed7bcc2c4280 で適用されました。
Rimpei Ogawa さんが14年以上前に更新
- ステータス を Pending Review(レビュー待ち) から 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' になってしまいます。
Shogo Kawahara さんが14年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
更新履歴 640900818758410b3dafcb2b4b3a9cce3a8a6040 で適用されました。
Rimpei Ogawa さんが14年以上前に更新
- ステータス を Pending Review(レビュー待ち) から 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))
Shogo Kawahara さんが14年以上前に更新
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
更新履歴 8077965f79759000bb300a60817d025d5e650c69 で適用されました。
Rimpei Ogawa さんが14年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
$source からファイル名を返すのには basename() が使えます(#1160 と同じ指摘でこちらに書き忘れていました)
_compute_public_path() が参考になります。
396 if (false === strpos(basename($source), '.')) 397 { 398 $source .= '.'.$ext; 399 }
Shogo Kawahara さんが14年以上前に更新
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
更新履歴 6ac2ac610df11512ef52eed030f9d21f800b8b22 で適用されました。
Rimpei Ogawa さんが14年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Kousuke Ebihara さんが14年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更