diff --git a/datelink.inc.php b/datelink.inc.php new file mode 100644 index 0000000..d07f78a --- /dev/null +++ b/datelink.inc.php @@ -0,0 +1,65 @@ += 4 && $m < 9 + || $m == 9 && $d < 20; +// 4/1 -> prior +// 5/17 -> prior +// 9/20 -> prior +// 9/21 -> latter (in this plugin: not typical) +// 10/10 -> latter +// 1/2 -> latter +// 3/31 -> latter +} + + + +function plugin_datelink_inline() { + $args = func_get_args(); + $result = FALSE; + $argnum = func_num_args(); + $year = get_date('Y'); + $month = get_date('m'); + $day = get_date('d'); + + // for test -- link with given date + if($argnum == 4) { + $year = $args[0]; + $month = $args[1]; + $day = $args[2]; + $argnum = 1; + } + if($argnum == 1) { + $nendo = $year; + if($month == '01' || $month == '02' || $month == '03') { + $nendo -= 1; + } + $semester = 'b'; + if(prior_semester($month, $day)) { + $semester = 'a'; + } + $result = $args[func_num_args()-1]; + $result = str_replace('YYYY', $year, $result); + $result = str_replace('MM', $month, $result); + $result = str_replace('DD', $day, $result); + $result = str_replace('NNNN', $nendo, $result); + $result = str_replace('SS', $semester, $result); + $result = str_replace(array('[', ']'), '', $result); + $result = convert_html('[['.$result.']]'); + //convert_html (always?) adds p-tag and newline. We don't need. + $result = str_replace(array("

", "

", "\r", "\n"), '', $result); + } + + return $result; +} +?> diff --git a/datestr.inc.php b/datestr.inc.php new file mode 100644 index 0000000..49ef99a --- /dev/null +++ b/datestr.inc.php @@ -0,0 +1,19 @@ + diff --git a/insert_border.inc.php b/insert_border.inc.php new file mode 100644 index 0000000..5e2ddca --- /dev/null +++ b/insert_border.inc.php @@ -0,0 +1,77 @@ + + function insertBorder(alert_mode, tblIndex){ + var today = new Date(); + today = new Date(today.getFullYear(), today.getMonth(), today.getDate()); + var tblNodes = document.getElementsByTagName("table"); + var trNodes = tblNodes[tblIndex].getElementsByTagName("tr"); + var idx = 0; + var comp = 0; + if (today.getMonth()+1 < 4) {comp = 1;} + if(trNodes.length != 1){ + for(i=1;i= 4) { // nendo + d = new Date(today.getFullYear()-comp, match[1] - 1, match[2]); + } else { + d = new Date(today.getFullYear()+1-comp, match[1] - 1, match[2]); + } + if(d.getTime() >= today.getTime() && d.getTime() - today.getTime() < 1000 * 60 * 60 * 24 * 30 * 6){ + idx = (idx == 0) ? i : idx; + if(alert_mode){ + if(d.getTime() >= today.getTime() && d.getTime() <= today.getTime() + 60 * 60 * 24 * 1000 * ( 6 - today.getDay() + 1)){ + for(j=0;j 0 ){ + idx--; + } + + if (idx > 1){ + var trNode = tblNodes[tblIndex].insertRow(idx); + var tdNode = trNode.insertCell(-1); + var colSpan = parseInt((trNodes[0].firstChild.getAttribute("colSpan") || 1 )) + trNodes[0].childNodes.length - 1; + tdNode.setAttribute("colSpan", colSpan); + tdNode.setAttribute("class", "style_td"); + /* tdNode.style.background = "rgb(224, 232, 240)"; */ + tdNode.style.background = "rgb(255, 255, 0)"; + tdNode.style.textAlign = "center"; + tdNode.appendChild(document.createTextNode("�������ޤǽ�λ��")); + } + } + } +EOS; + + $args = func_get_args(); + $mode = array_shift($args); + $args_str = preg_replace('/(\d+)/', '"${1}"', join(",", $args)); + $html .= <<< EOS + + window.onload = function(){ + var args = new Array($args_str); + for(var i=0;i +EOS; + + // $html = preg_replace('/[\t\n]|\s{2,}/', '', $html); + + return $html; +} +?> diff --git a/merge_schedules.inc.php b/merge_schedules.inc.php new file mode 100644 index 0000000..b219b73 --- /dev/null +++ b/merge_schedules.inc.php @@ -0,0 +1,89 @@ + 12) { + $m = $m - 12; + } + } + + return convert_html($schedule); +} +?> diff --git a/sync.inc.php b/sync.inc.php new file mode 100644 index 0000000..361a38d --- /dev/null +++ b/sync.inc.php @@ -0,0 +1,130 @@ + "junbi" ,'password'=> "Grl12hsj"); + url_get_contents($url.$query_login, $cookie_path, $account_data); + + // load + $wikiname_src = urldecode(end(preg_split('/\?/', $_SERVER['HTTP_REFERER']))); + if (preg_match('/' . $wikiname_src_regex . '\d{4}\w/', $wikiname_src)) { + $target = array(); + $is_target = false; + $header_index = 0; + $column_cut_index = 0; + $column_cut_length = 0; + foreach(get_source($wikiname_src) as $line) { + $line = rtrim($line, "\n"); + if (preg_match('/^\/\/\s*(start|end)/', $line)) { + $is_target = !$is_target; + array_push($target, rtrim($line, "\n")); + } + + if ($is_target) { + if (preg_match('/^\*/', $line)) { // wiki title + array_push($target, $line); + } else if (preg_match('/^\|~/', $line)) { // table header + $columns = preg_split('/\|/', $line); + $column_cut_index = array_search('~ô��', $columns); + if ($header_index != 3) { + $column_cut_length = 1; + } else { + $column_cut_index -= 2; + $column_cut_length = 3; + } + array_splice($columns, $column_cut_index, $column_cut_length); + array_push($target, join('|', $columns)); + $header_index++; + } else if (preg_match('/^\|[^?~]/', $line)) { // table row (except header) + $columns = preg_split('/\|/', $line); + array_splice($columns, $column_cut_index, $column_cut_length); + array_push($target, join('|', $columns)); + } else { + if ($target[count($target)-1] != '') array_push($target, ''); + } + } + } + $target = mb_convert_encoding(join("\n", $target), 'UTF-8', 'EUC-JP'); + } else { + $target = ''; + } + + if (preg_match('/[^\s]/', $target)) { + // update + $html = url_get_contents($url.$query_edit, $cookie_path); + $data = array(); + preg_match_all('/(.*?)<\/textarea>/s', $html, $matches); + + $data['original'] = htmlspecialchars_decode($matches[1]); + $data['msg'] = preg_replace('/\/\/ start.*?\/\/ end/s', $target, $data['original']); + + $updated = false; + if (strcmp($data['msg'], $data['original']) != 0) { + $data['notimestamp'] = strcmp($data['msg'], $data['original']) == 0 ? 'true' : ''; + $data['template_page'] = ''; + $data['write'] = mb_convert_encoding('�ڡ����ι���', 'UTF-8', 'EUC-JP'); + $data['target'] = $target; + $contents = url_get_contents($url, $cookie_path, $data); + $updated = true; + } + + // diff + $contents = mb_convert_encoding(url_get_contents($url.$query_diff, $cookie_path), 'EUC-JP', 'UTF-8'); + preg_match('/(