** blockdiv.inc.php [#w7d0f0c0] |RIGHT:100|LEFT:360|c |~サマリ|DIVでブロック化する| |~リビジョン|1.0| |~対応バージョン|1.4.5| |~投稿者|[[デジテク]]| |~投稿日|&new{2006-03-17 (金) 16:02:55};| **概要 [#ed1ff048] DIVでブロック化するためのプラグイン。 他にも同様のプラグインがあるようですが、利用できなかったため作りました。 block.inc.phpを参考に作成しました。 **使い方 [#gbd6df83] #blockdiv([パラメータ],...) パラメータ -float:レイアウト(left,right) -clear:レイアウト解除(left,right,both) -width:横幅 -align:テキストアライメント -bordercolor:ボーダー色 -borderwidth:ボーダーサイズ -borderstyle:ボータータイプ -backcolor:背景色 -margin:マージン -padding:パッデング -end:ブロックの終了 詳細は、ソースをご覧になってください clear属性を指定すると、他のパラメータは無効になりますので指定しても無意味です。 例) #blockdiv(float:left,width:48%,bordercolor:#0064c8,margin:2px) abc #blockdiv(end) #blockdiv(float:right,width:48%,bordercolor:#0064c8,margin:2px) def #blockdiv(end) **サンプル [#m10da113] >[[東かがわ市商工会>http://higashikagawa.com/syokokai/]]のページに利用しています。 **ソースコード [#u1a203fa] <?php ///////////////////////////////////////////////// // PukiWiki - Yet another WikiWikiWeb clone. // // function plugin_blockdiv_convert() { # 初期設定値 $params = array( "start" => true ,"float" => "left" ,"clear" => "" ,"width" => "auto" ,"align" => "left" ,"bordercolor" => "inherit" ,"borderwidth" => "1px" ,"borderstyle" => "solid" ,"backcolor" => "inherit" ,"margin" => "0px" ,"padding" => "0px" ,"style" => "blockdiv" ); # 引数解析 $args = func_get_args(); foreach ($args as $value) { if ( preg_match("/^ *([a-zA-Z0-9_]+) *$/i", $value, $matches) ){ $params[strtolower($matches[1])] = true; }elseif( preg_match("/^ *([a-zA-Z0-9_]+):([a-zA-Z0-9%_# ]+)$/i", $value, $matches) ){ $params[strtolower($matches[1])] = $matches[2]; } } # ↓スタイルシートの border: solid 1px gray; とかの書式に対応するための処理。 if( isset($params['border']) ){ $ary = split(" ", trim($params['border'])); if(isset($ary[0])) $params["borderstyle"] = $ary[0]; if(isset($ary[1])) $params["borderwidth"] = $ary[1]; if(isset($ary[2])) $params["bordercolor"] = $ary[2]; } # HTML生成 if( $params['end'] == true ){ return "</div>"; }else if( $params['clear'] != '' ){ return <<< EOS1 <div class={$params['style']} style="clear:{$params['clear']};"> <div class="{$params['style']}" style="clear:{$params['clear']};"> EOS1; }else{ return <<< EOS <div class={$params['style']} style="float:{$params['float']};width:{$params['width']}; \ <div class="{$params['style']}" style="float:{$params['float']};width:{$params['width']}; \ text-align:{$params['align']};border-style:{$params['borderstyle']};border-width:{$params['borderwidth']}; \ border-color:{$params['bordercolor']};background-color:{$params['backcolor']};margin:{$params ['margin']};padding:{$params['padding']};"> EOS; } } ?> これを「blockdiv.inc.php」という名前のファイルに保存してpluginフォルダに入れてください。 **ライセンス [#o0df3886] ライセンスは、すべて自由に利用可能です。著作権もありません。 **コメント [#v7f136e0] 何かありましたらお願いします。 - Firefox1.5.0.3(たぶん他のバージョンでも)で東かがわ・・へいくとDIVのfloat=right;が効いていない。回避策ありますか?このPluginの問題か、style記述の問題か? -- [[kenS]] &new{2006-05-10 (水) 10:19:34}; - ソースの float= は float: の間違いじゃないかと.同様に,text-align= も text-align: ですね -- [[Gaki]] &new{2006-05-13 (土) 05:22:15}; - firefoxでfloatが効きません。 -- [[pico]] &new{2006-05-23 (火) 14:12:21}; - float=等ののソース修正しました -- [[deijteku]] &new{2007-02-26 (月) 09:45:07}; - clear属性の指定追加しました -- [[dejiteku]] &new{2007-03-07 (水) 09:07:00}; - 追加ブロックに単純にstyle="内容"とid="任意"を追加できないでしょうか。現在加工中ですがphpの知識が弱いため現在難航中です。また、class={$params['style']} の箇所を” "でくくっていないのをclass="{$params['style']}"にしてはいかがでしょうか -- [[追加中]] &new{2007-03-13 (火) 20:43:10}; - 勝手に↑してみた -- &new{2013-01-27 (日) 00:46:48}; #comment