blockdiv.inc.php

サマリDIVでブロック化する
リビジョン1.0
対応バージョン1.4.5
投稿者デジテク?
投稿日2006-03-17 (金) 16:02:55

概要

DIVでブロック化するためのプラグイン。 他にも同様のプラグインがあるようですが、利用できなかったため作りました。 block.inc.phpを参考に作成しました。

使い方

#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)

サンプル

東かがわ市商工会のページに利用しています。

ソースコード

<?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']};">
EOS1;
	}else{
		return <<< EOS
<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フォルダに入れてください。

ライセンス

ライセンスは、すべて自由に利用可能です。著作権もありません。

コメント

何かありましたらお願いします。

  • Firefox1.5.0.3(たぶん他のバージョンでも)で東かがわ・・へいくとDIVのfloat=right;が効いていない。回避策ありますか?このPluginの問題か、style記述の問題か? -- kenS? 2006-05-10 (水) 10:19:34
  • ソースの float= は float: の間違いじゃないかと.同様に,text-align= も text-align: ですね -- Gaki? 2006-05-13 (土) 05:22:15
  • firefoxでfloatが効きません。 -- pico? 2006-05-23 (火) 14:12:21
  • float=等ののソース修正しました -- deijteku? 2007-02-26 (月) 09:45:07
  • clear属性の指定追加しました -- dejiteku? 2007-03-07 (水) 09:07:00
  • 追加ブロックに単純にstyle="内容"とid="任意"を追加できないでしょうか。現在加工中ですがphpの知識が弱いため現在難航中です。また、class={$params['style']} の箇所を” "でくくっていないのをclass="{$params['style']}"にしてはいかがでしょうか -- 追加中? 2007-03-13 (火) 20:43:10
  • 勝手に↑してみた -- 2013-01-27 (日) 00:46:48


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-01-27 (日) 00:46:49
Site admin: PukiWiki Development Team

PukiWiki 1.5.1+ © 2001-2016 PukiWiki Development Team. Powered by PHP 5.6.30-0+deb8u1. HTML convert time: 0.321 sec.

SourceForge.jp