diff --git a/tabeleditor.inc.php b/tabeleditor.inc.php index 87ed9a7..bf613bc 100644 --- a/tabeleditor.inc.php +++ b/tabeleditor.inc.php @@ -4,84 +4,83 @@ // 2019 Kwansei Gakuin University comp-staff // License: GPL v2 // Tabeleditor plugin -// naming candidate "TabetElroid" -> "TableEditor", "Tabeleditor" +// naming candidate "TableEditor", "TabetElroid" -> "Tabetemas", "Tabeleditor" function plugin_tabeleditor_action() { - global $vars, $now, $_title_updated, $_no_name; - global $_msg_tabeleditor_collided, $_title_tabetemas_collided; - global $_tabeleditor_plugin_fail_msg; + global $vars, $now, $_title_updated, $_no_name; + global $_msg_tabeleditor_collided, $_title_tabeleditor_collided; + global $_tabeleditor_plugin_fail_msg; - if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing'); + if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing'); - $head = ''; - $match = array(); + $head = ''; + $match = array(); + $tabeleditor_added = TRUE; + $cell_counter = 0; + foreach (get_source($vars['refer']) as $line) { + if (strpos($line, "|") === 0) { + preg_match("/([fh])$/", $line, $match); + $postamble = $match[1]; + $line = preg_replace("/^\\|(.*)\\|[fh]?$[^|]*/", "$1", $line); + $postdata .= "|"; + foreach(explode("|", $line) as $cell) { + if (strpos($cell,"~")===FALSE) { + $entry_name = "__buttons_" . $cell_counter; + //$postdata .= $cell_counter; + if ($vars[$entry_name]!==null) { + $postdata .= $vars[$entry_name] . "|"; + } else { + $postdata .= $cell . "|"; + } + $cell_counter++; + } else { + $postdata .= $cell . "|"; + } + } + $postdata .= "$postamble\n"; + } else { + $postdata .= $line; + } + } - $tabeleditor_added = TRUE; - $cell_counter = 0; - foreach (get_source($vars['refer']) as $line) { - if (strpos($line, "|") === 0) { - preg_match("/([fh])$/", $line, $match); - $postamble = $match[1]; - $line = preg_replace("/^\\|(.*)\\|[fh]?$[^|]*/", "$1", $line); - $postdata .= "|"; - foreach(explode("|", $line) as $cell) { - if (strpos($cell,"~")===FALSE) { - $entry_name = "__buttons_" . $cell_counter; - //$postdata .= $cell_counter; - if ($vars[$entry_name]!==null) { - $postdata .= $vars[$entry_name] . "|"; - } else { - $postdata .= $cell . "|"; - } - $cell_counter++; - } else { - $postdata .= $cell . "|"; - } - } - $postdata .= "$postamble\n"; - } else { - $postdata .= $line; - } - } - - $title = $_title_updated; - $body = $postdata; - if ($tabeleditor_added) { - // new tabeleditor added - if (md5(get_source($vars['refer'], TRUE, TRUE)) !== $vars['digest']) { - $title = $_title_tabeleditor_collided; - $body = $_msg_tabeleditor_collided . make_pagelink($vars['refer']); - } - page_write($vars['refer'], $postdata); - } else { - // failed to add the tabeleditor - $title = $_title_tabeleditor_collided; - $body = $_tabeleditor_plugin_fail_msg . make_pagelink($vars['refer']); - } - $retvars['msg'] = $vars['name']; - $retvars['body'] = $vars['body']; - $vars['page'] = $vars['refer']; - return $retvars; + $title = $_title_updated; + $body = $postdata; + if ($tabeleditor_added) { + // new table created + if (md5(get_source($vars['refer'], TRUE, TRUE)) !== $vars['digest']) { + $title = $_title_tabeleditor_collided; + $body = $_msg_tabeleditor_collided . make_pagelink($vars['refer']); + } + page_write($vars['refer'], $postdata); + } else { + // failed to add new table + $title = $_title_tabeleditor_collided; + $body = $_tabeleditor_plugin_fail_msg . make_pagelink($vars['refer']); + } + $retvars['msg'] = $vars['name']; + $retvars['body'] = $vars['body']; + $vars['page'] = $vars['refer']; + return $retvars; } function plugin_tabeleditor_convert() { - global $vars, $digest, $_btn_tabeleditor, $_btn_name, $_msg_tabetemas; - static $numbers = array(); + global $vars, $digest, $_btn_tabeleditor, $_btn_name, $_msg_tabeleditor; + static $numbers = array(); - if (PKWK_READONLY) return ''; // Show nothing + if (PKWK_READONLY) return ''; // Show nothing - $page = $vars['page']; - if (! isset($numbers[$page])) $numbers[$page] = 0; - $tabeleditor_no = $numbers[$page]++; + $page = $vars['page']; + if (! isset($numbers[$page])) $numbers[$page] = 0; + $tabeleditor_no = $numbers[$page]++; - $options = func_num_args() ? func_get_args() : array(); + $options = func_num_args() ? func_get_args() : array(); - $script = get_script_uri(); - $s_page = htmlsc($page); - $string = << .style_td input { font-size: 100%; @@ -94,19 +93,19 @@ e.target.parentNode.style = ""; if (e.target.parentNode.initial_value != value) { - e.target.parentNode.style.color= "red"; - document.getElementById("__buttons").style.visibility = "visible"; + e.target.parentNode.style.color= "red"; + document.getElementById("__buttons").style.visibility = "visible"; } else { - e.target.parentNode.style.color= ""; + e.target.parentNode.style.color= ""; } var entry_name = "__buttons_"+e.target.parentNode.cellid; var entry = document.getElementById(entry_name); if (!entry) { - entry = document.createElement("input"); - entry.type = "hidden"; - entry.name = entry.id = entry_name; - document.getElementById("tabform").appendChild(entry); + entry = document.createElement("input"); + entry.type = "hidden"; + entry.name = entry.id = entry_name; + document.getElementById("tabform").appendChild(entry); } entry.value = value; @@ -117,8 +116,8 @@ function key_handler(e) { if (e.keyCode == 13) e.target.blur(); else if (e.keyCode == 27) { - e.target.value = e.target.parentNode.initial_value; - e.target.blur(); + e.target.value = e.target.parentNode.initial_value; + e.target.blur(); } } function click_handler(e) { @@ -137,7 +136,7 @@ elm.style.width = e.target.clientWidth + "px"; elm.style.height = e.target.clientHeight + "px"; elm.style.outline = elm.style.margin = - elm.style.padding = elm.style.border = "0px"; + elm.style.padding = elm.style.border = "0px"; elm.onblur = blur_handler; elm.onkeypress = key_handler; @@ -170,6 +169,6 @@ EOD; - return $string; + return $string; }