サマリ | 画面分割プラグイン、DIV版 |
---|---|
リビジョン | 1.1 |
対応バージョン | 1.4.2 |
投稿者 | morikawa |
投稿日 | 2004-02-05 (THU) 18:10:41 |
../splitbody.inc.phpは table を使ってごちゃごちゃしているので、DIV版を作り直した。
左右に並べてコンテンツを表示する。だけに留まらなく、div タグ焼き直しになったかも。
#div(start) 右側へ表示するもの #div(end) 左側へ表示するモノ #div(clear)表示が、
左側へ表示するモノ 右側へ表示するものという感じ。入れ子も出来るので、3つでも4つでも出来るとは思う。
メンテ都合上、最新は morikawaのサイト からどうぞ。
MozillaとIE/Operaとで微妙に表示が異なりますね。IEやOperaでは上部がきれいに揃うけど、Mozillaでは上部が不揃いになるようです。vertical-alignを設定するとうまく揃うかも。
style指定でXSSの脆弱性があり、危険です。
#div(start,width:60%"><img src="http://pukiwiki.sourceforge.jp/image/pukiwiki.png" />) test #div(end) #div(clear)
HTMLのタグが自由に書けてしまいます。splitbody.inc.phpにも同様のXSSの脆弱性があります。
func_get_args()でプラグインに渡される引数はサニタイズされていませんので、プラグインの中でサニタイズして出力しないとXSSの脆弱性が発生します。引数を出力するプラグインでは注意が必要です。
reimyさんありがとうございます。
// 属性チェック $a = explode(':', $attr); - if (is_array($a) && ( $allow_styles[array_shift($a)] )) return $attr; + if (is_array($a) && ( $allow_styles[array_shift($a)] )) return htmlspecialchars($attr);
-test #div(start)のようにすると XHTML Invalid になりますよね?たぶん。skin で div float レイアウトを使用しているサイトの場合 #div(clear) でブラウザによって挙動が変わると思うし。難しいプラグインではあると思います。 -- kak 2004-08-28 (土) 23:54:06
サンプル #div(start) #div(start) **right #div(end) **left #div(end) #div(start) **a #div(end) **b