Newer
Older
pukiwikiplugin / tagselect.inc.php
<?php
// $Id: tagselect.inc.php, v 0.1 2017/04/03
// Copyright (C)
//   2016 Kwansei Gakuin University comp-staff
// License; GPL v2
// Showing Tagged Items

function plugin_tagselect_convert() {
  $args	= func_get_args();
  $argnum = func_num_args();

  $tags = "";
  $elenum = 0;
  foreach($args as $name) {
    $tags .= "<input type=\"checkbox\" value=\"{$name}\" checked=\"checked\">{$name}";
    if($elenum == 4) {
      $tags .= "<br />\n";
      $elenum = 0;
    }
    else {
      $tags .= "&emsp;&emsp;\n";
      $elenum++;
    }
  }
  if($elenum != 0) {
    $tags .= "<br />\n";
  }
  // End Of Plugin Output
  $result = <<< EOPO
<script>
function showTags() {
  var taglist = document.getElementById("php-plugin-tagselectformlist");
  var tag = "";
  for(var i = 0; i < taglist.elements.length; ++i) {
    if(taglist.elements[i].checked) {
      if(tag != "") tag = tag + "|";

      tag=tag+taglist.elements[i].value;
    }
  }

  var uls = document.getElementsByClassName("list1");

  var pat = ("^\\\\(("+tag+")\\\\)");
  var reg = new RegExp(pat);

  for (var i = 0; i < uls.length; ++i) {
    var lis = uls[i].children;
    for(var j = 0; j < lis.length; ++j) {
      var child = lis[j];
      if(child.tagName != "LI") continue;
      if(!(/^\\(/g.test(child.innerHTML))) continue;

      if(reg.test(child.innerHTML)) {
        child.style.display = "";
      }
      else {
        child.style.display = "none";
      }
    }
  }
}
</script>

<form id="php-plugin-tagselectformlist">
表示するタグを選択<br />
{$tags}
<input type="button" value="表示" onclick="showTags()">
</form>
EOPO;

  return $result;
}
?>