Newer
Older
highlighter / highlighter.inc.php
<?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();
    $argc = func_num_args();
    $style= "background: repeating-linear-gradient(-45deg, #ffcce7, #ffcce7 3px,#ffe9f4 3px, #ffe9f4 7px);";//default


    if ($argc == 2) {
        $style = $args[0];
        $pat    = $args[1];
    } else {
        $pat    = $args[0];
    }

    if ($argc <= 2) {
        $ret = "<span style='$style'>$pat</span>";
        return $ret;
    }

    return FALSE;
}

function plugin_highlighter_convert() {
    $args  = func_get_args();
    $argc  = func_num_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 reg = new RegExp(pat, "g");
        lst[i].innerHTML = text.replace(reg, '<span 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() {
}
?>