"") { //$textが""になるまでLOOP
$ch = mb_substr($text,0,1); //$ch="|" or "|"
if (($ch <> "|")and($ch <> "|")) {
break;
}
$row = "";
$line = konawiki_parser_token($text, "\n"); //1行区切る
$line = mb_substr($line, 1); //"|"を除く
$cell = konawiki_parser_token($line, $ch); //最初のセルを取得
//テーブル全体のコマンド処理|テーブルコマンド:行コマンド|
if (mb_strpos($cell,":") <> FALSE) { //テーブルコマンド有
$table_cmd = konawiki_parser_token($cell,":");
$table_cmd = teble_command($table_cmd,1); //tableコマンドモード
}
//行のコマンド処理
$tr_cmd = $cell;
$tr_cmd = teble_command($tr_cmd,2); //TRコマンドモード
//セル処理
while ($line <> "") {
$cell = konawiki_parser_token($line, $ch);
//$cell = konawiki_parser_tohtml($cell);
if ($cell == "") {
$cell = " ";
}
//セルのコマンド処理
$cell_cmd = "";
if (mb_strpos($cell,":") <> FALSE) { //セルコマンド有
$cell_cmd = konawiki_parser_token($cell,":");
$cell_cmd = teble_command($cell_cmd,3); //cellコマンドモード
}
//セルの横結合処理
$i = 0;
$colspan = "";
while (mb_substr($line,0,1) == $ch) {
$line = mb_substr($line,1);
$i++;
$colspan = ' COLSPAN="' . ($i+1) . '"';
}
//セルの縦結合処理
if (mb_strpos($cell_cmd,"縦") == FALSE) { //縦結合があるか?
$row .= "
" . $cell . " | ";
}
}
$row = "" . $row . "
\n";
$buf .= $row;
}
$result .= "\n";
return $result;
}
//テーブルコマンドを処理して返す
//mode:1=table,2=tr,3=cell
function teble_command($cmd,$mode)
{
//$cmd = mb_eregi_replace(";",";",$cmd);
$res_cmd = "";
$rowspan = "";
while ($cmd <> "") { //cmdが""なるまでLOOP
$c = mb_substr($cmd,0,1);
$cmd = mb_substr($cmd,1);
switch($c) {
case '枠':
$border = konawiki_parser_token($cmd,";");
if ($mode == 1) { //table
$res_cmd .= ' BORDER="' . $border . '"';
}
break;
case '罫':
$cellspacing = konawiki_parser_token($cmd,";");
if ($mode == 1) { //table
$res_cmd .= ' CELLSPACING="' . $cellspacing .'"';
}
break;
case '幅':
$width = konawiki_parser_token($cmd,";");
if ($mode <> 2) { //tabl or cell
$res_cmd .= ' WIDTH="' . $width . '"';
}
break;
case '右':
$res_cmd .= ' ALIGN="' . right . '"';
break;
case '左':
$res_cmd .= ' ALIGN="' . left .'"';
break;
case '中':
$res_cmd .= ' ALIGN="' . center . '"';
break;
case '縦':
$rowspan = konawiki_parser_token($cmd,";");
if ($mode == 3) { //cell
if ($rowspan <> "") {
$res_cmd .= ' ROWSPAN="' . $rowspan . '"';
}
else {
$res_cmd .= " 縦";
}
}
break;
case '色': //カラー 色の後にカラーコードを記載する。区切りは;
$color = konawiki_parser_token($cmd,";");
if ($mode <> 1) { //tr or cell
//$res_cmd .= ' bgcolor="' . $color . '"';
$res_cmd .= ' style="background-color:' . $color . '"';
}
else { //table
$res_cmd .= ' style="border-color:' . $color . '"';
//$res_cmd .= ' bordecolor="' . $color . '"';
}
break;
default: //色を色コードで返す
$color = plugin_color_select($c);
if ($mode <> 1) { //tr or cell
if ($color <> "") {
//$res_cmd .= ' bgcolor="' . $color . '"';
$res_cmd .= ' style="background-color:' . $color . '"';
}
}
else {
if ($color <> "") {
$res_cmd .= ' style="border-color:' . $color . '"';
//$res_cmd .= ' bordecolor="' . $color . '"';
}
}
}
}
return $res_cmd;
}
#色を色コードで返す
function plugin_color_select($c)
{
$color = "";
switch($c) {
case "黒": #カラー Black #000000
$color = "#000000";
break;
case '赤': #カラー Red #FF0000
$color = "#FF0000";
break;
case '青': #カラー Blue #0000FF
$color = "#0000FF";
break;
case '緑': #カラー Green #008400【コード変更】
$color = "#00FF00";
break;
case '黄': #カラー Yellow #FFFF00
$color = "#FFFF00";
break;
case '水': #カラー Cyan #00FFFF
$color = "#00FFFF";
break;
case '紫': #カラー Purple #840084【コード変更】
$color = "#FF00FF";
break;
case '白': #カラー White #FFFFFF
$color = "#FFFFFF";
break;
case '菫': #カラー Violet #EF84EF
$color = "#EF84EF";
break;
case '桃': #カラー Pink #FFC6CE
$color = "#FFC6CE";
break;
case '朱': #カラー Vermilion #E70000
$color = "#E70000";
break;
case '橙': #カラー Orange #FFA500
$color = "#FFA500";
break;
case '茶': #カラー Rrown #A52929
$color = "#A52929";
break;
case '鼠': #カラー Gray #848484
$color = "#848484";
break;
case '銀': #カラー Silver #C6C6C6
$color = "#C6C6C6";
break;
case '金': #カラー Gold #FFD600
$color = "#FFD600";
break;
default:
$color = "";
}
return $color;
}
?>