<?php
// $Id: highlighter.inc.php,v 0.1 2019/10/02
// Copyright (C)
// 2019 Kwansei Gakuin University comp-staff
// License; GPL v2
// highlighter plugin
function plugin_highlighter_inline() {
$args = func_get_args();
$style = "background: repeating-linear-gradient(-45deg, #ffcce7, #ffcce7 3px,#ffe9f4 3px, #ffe9f4 7px);";//default
$len = func_num_args();
if (func_num_args() == 2) {
$style = $args[0];
$pat = $args[1];
} else {
$pat = $args[0];
}
if (func_num_args() <= 2) {
$ret = "<span style='$style'>$pat</span>";
return $ret;
}
return FALSE;
}
function plugin_highlighter_convert() {
$argc = func_num_args();
$args = func_get_args();
$style = "background: repeating-linear-gradient(-45deg, #ffcce7, #ffcce7 3px,#ffe9f4 3px, #ffe9f4 7px);";//default
$wholeline = false;
if (($args[$argc-1] == "true")) {
$wholeline = true;
} else {
$wholelien = false;
}
if ($wholeline) {
$argc -= 1;
}
if ($argc == 2) {
$style = $args[1];
}
if (! $wholeline) {
$pat = $args[0];
$ret = <<<EOT
<script type="text/javascript">
(function() {
let lst = document.getElementsByTagName("li");
let pat = "$pat";
for (let i = 0; i< lst.length; i++) {
if (lst[i].parentNode.classList.contains("list1")){
var text = lst[i].innerHTML;
var elm = lst[i].children;
if (elm.length > 0 && elm[0].classList.contains("highlighter")) {
} else {
var reg = new RegExp(pat, "g");
lst[i].innerHTML = text.replace(reg, '<span class="highlighter" style="$style">$&</span>');
}
}
}
})()
</script>
EOT;
return $ret;
} else {
$pat = $args[0];
$sytle = $args[1];
$ret = <<<EOT
<script type="text/javascript">
let lst = document.getElementsByTagName("li");
let pat = "$pat";
let style = "background: green;"
for (let i = 0; i< lst.length; i++) {
if (lst[i].parentNode.classList.contains("list1")){
var reg = RegExp(pat);
var text = lst[i].innerHTML;
if (text.match(reg)) {
lst[i].style = "$args[1]";
}
}
}
</script>
EOT;
return $ret;
}
return FALSE;
}
function plugin_highlighter_init() {
}
?>