今までは画像の枠をソースべた書きのスタイルシートで入れていましたが、classを設定して
プラグイン独自のCSSを読むことによって変更とかに耐えられるようにしました。
<img alt="" style="border: solid 3px #000 ;{$p_image_rate}" src="file_download.php?file_id=${p_image_id}&type=b </a> <br> |
このように、「style=”border: solid 3px #000 ;{$p_image_rate}”」となっているborderの部分です。
hooks()の追加
一度は見送った、「EVENT_LAYOUT_RESOURCES」のイベントで引っ掛けるところで復活です。
function hooks() { return array( (他イベントは略) 'EVENT_LAYOUT_RESOURCES' => 'css', # CSS ); |
このように、リソースを描画するイベントでは、cssというメソッドを呼んでくれっていう書き方をします。
※ほかのメソッドと名前重複しないように、名前空間を使っているかどうかは調べていません。
cssという名前のメソッド追加
お手本にしたbbcodeのプラグインはresourcesという名前のメソッドでしたが、生来の面倒くさがり屋のためcssという名前に…
/** * Include css * @param int $p_event * @return string */ function css( $p_event){ return '<link href="' . plugin_file( 'ImagePasteOnComment.css' ) . '" media="all" rel="stylesheet" type="text/c } // f css } |
(すみません、2文字インテンド派)
ImagePasteOnComment.cssを呼び出すことにします。
ImagePasteOnComment.cssファイルの追加
どこにファイルを置けばよいのやら?と思ったのですが、プラグインのディレクトリのfilesに置けば、
先ほど記述したplugin_file()のメソッドが補完してくれるというようです。
ここだけgit のdiffを持ってきていますが、まあ、内容はimgタグのImagePasteOnCommentクラスは枠線入れるという内容です。
diff --git a/files/ImagePasteOnComment.css b/files/ImagePasteOnComment.css new file mode 100644 index 0000000..5d2c40f --- /dev/null +++ b/files/ImagePasteOnComment.css @@ -0,0 +1,3 @@ +img.ImagePasteOnComment{ + border: solid 3px #000 ; +} |
出力されたcssのlinkタグ
<link href="/mantis/plugin_file.php?file=ImagePasteOnComment/ImagePasteOnComment.css" media="all" rel="stylesheet" type="text/css"> |
これを見ると…plugin_file.phpで呼び出しているってことかと。勉強になります。