Newer
Older
pukiwikiplugin / insert_border.inc.php
<?php
function plugin_insert_border_convert(){
$html = <<< EOS
<script type="text/javascript">
  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<trNodes.length;i++){
        var match = /(\d{1,2})\/(\d{1,2})/.exec(trNodes[i].firstChild.innerHTML);
          if (match){
            var d, month = match[1], date = match[2];
            if (month >= 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<trNodes[i].childNodes.length;j++){
                              trNodes[i].childNodes[j].style.background = "rgb(255, 255, 153)";
                        }
                }
            }
          }
        }
      }

      if (idx == 0) {
         idx = i;
      }

      if (tblNodes[tblIndex].getElementsByTagName("tfoot").length > 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<args.length;i++){
      insertBorder($mode, args[i]);
    }
  }
</script>
EOS;

 // $html = preg_replace('/[\t\n]|\s{2,}/', '', $html);

 return $html;
}
?>