コード例 #1
0
ファイル: api.php プロジェクト: TaiBIF/MyMatch
function render_table($data, $time, $hardcsv = false)
{
    header("Content-type: text/html; charset=utf-8");
    $src_conf = read_src_conf();
    global $against, $best;
    $not_show = array('name_cleaned', 'url_id', 'a_url_id', 'kingdom', 'phylum', 'class', 'order');
    echo "<head>";
    echo "<link href='http://fonts.googleapis.com/css?family=Roboto|Slabo+27px&subset=latin,latin-ext' rel='stylesheet' type='text/css'>";
    echo "<script src='https://code.jquery.com/jquery-2.1.4.min.js'></script>";
    echo "<link href='https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/cerulean/bootstrap.min.css' rel='stylesheet' integrity='sha384-zF4BRsG/fLiTGfR9QL82DrilZxrwgY/+du4p/c7J72zZj+FLYq4zY00RylP9ZjiT' crossorigin='anonymous'>";
    echo "<script src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js' integrity='sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa' crossorigin='anonymous'></script>";
    echo "<script src='./js/diff.js'></script>";
    echo "</head>";
    $prev_name = "";
    $row_class = "even";
    $serial_no = 0;
    echo "<style>";
    echo "table, tr, td { border:solid 1px black;}\n";
    echo ".row_red { background:#FF9999;}\n";
    echo ".row_orange { background:#FFB547;}\n";
    echo ".row_yellow { background:#FFFF70;}\n";
    echo ".row_green { background:#8DE28D;}\n";
    echo ".row_blue { background:#91DAFF;}\n";
    echo ".row_purple { background:#E9A9FF;}\n";
    echo "</style>";
    echo "<body>";
    echo "<div class='navbar navbar-fixed-top navbar-default'>";
    echo "<div class='container-fluid'>";
    echo "<div class='navbar-header'>";
    echo "<button type='button' class='navbar-toggle collapsed' data-toggle='collapse' data-target='#bs-example-navbar-collapse-2'>";
    echo "<span class='sr-only'>Toggle navigation</span>";
    echo "<span class='icon-bar'></span>";
    echo "<span class='icon-bar'></span>";
    echo "<span class='icon-bar'></span>";
    echo "</button>";
    echo "<a class='navbar-brand' href='index.html' style='color:#fff' >NomenMatch</a>";
    echo "</div>";
    echo "<div class='collapse navbar-collapse' id='bs-example-navbar-collapse-2'>";
    echo "<ul class='nav navbar-nav'>";
    echo "<li><a href='about.html'>About</a></li>";
    echo "<li><a href='index.html'>Match</a></li>";
    echo "<li><a href='howto.html'>How-To</a></li>";
    echo "<li><a href='api-doc.html'>API</a></li>";
    echo "</ul>";
    echo "</div>";
    echo "</div>";
    echo "</div><div class='container'><br/><br/><br/></div>";
    echo "<div class='container' style='margin-left:50px;'>";
    echo "<h1 class='navbar-brand m-b-0'>Matching results</h1>";
    echo "<p>";
    echo "query time: " . round($time, 3) . " s<br/>";
    echo "memory usage: " . round(memory_get_usage(true) / (1024 * 1024), 1) . " MB<br/>";
    echo "matched diff: <span style='color:red;'>removed</span> <span style='color:blue;'>added</span> <span style='color:grey;'>common</span><br/>";
    echo "source: <span style='color:red;'>Accepted</span> <span>Invalid</span>";
    echo "</p>";
    echo "<table class='table table-striped table-bordered'>";
    $tmp_data0 = $data[0][0];
    foreach ($not_show as $ns) {
        unset($tmp_data0[$ns]);
    }
    $columns = array_keys($tmp_data0);
    echo "<tr><td>no.</td><td>" . implode("</td><td>", $columns) . "</td></tr>\n";
    $prev_score = -100;
    foreach ($data as $nidx => $name_d) {
        foreach ($name_d as $d) {
            $d['name'] = htmlentities($d['name']);
            /*
            			if ($d['name'] != $prev_name) {
            				$prev_name = $d['name'];
            				$serial_no++;
            				$row_class = color_class($serial_no - 1);
            			}
            			elseif ($d['score'] > $prev_score) {
            				$serial_no++;
            				$row_class = color_class($serial_no - 1);
            			}
            			$prev_score = $d['score'];
            			//*/
            $serial_no = $nidx + 1;
            $row_class = color_class($nidx);
            echo "<tr class='row_result' id='row_" . $serial_no . "'><td>{$serial_no}</td><td>";
            $ncs = $d['namecode'];
            $ancs = $d['accepted_namecode'];
            $sources = $d['source'];
            $url_ids = $d['url_id'];
            $aurl_ids = $d['a_url_id'];
            $html_ncs = array();
            $html_ancs = array();
            $html_sources = array();
            $url_anc_srcs = array();
            foreach ($sources as $src_idx => $src) {
                // TODO: this part must be implemented dynamicaly reading configurations from some file
                if (!empty($src_conf[$src]['url_base'])) {
                    $url_base = $src_conf[$src]['url_base'];
                } else {
                    $url_base = "http://example.org/species/id/";
                }
                $url = $url_base . $url_ids[$src_idx];
                $aurl = $url_base . $aurl_ids[$src_idx];
                $html_ncs[$src_idx] = "<a target='_blank' href='{$url}'>" . $ncs[$src_idx] . "</a>";
                $html_ancs[$src_idx] = "<a target='_blank' href='{$aurl}'>" . $ancs[$src_idx] . "</a>";
                $url_anc_srcs[$src][$ancs[$src_idx]] = "<a target='_blank' href='{$aurl}'>" . $ancs[$src_idx] . "</a>";
                if ($ncs[$src_idx] == $ancs[$src_idx]) {
                    $html_sources[$src_idx] = "<font color='#ff0000'>{$src}</font>";
                } else {
                    $html_sources[$src_idx] = $src;
                }
            }
            $d['source'] = implode("<br/>", $html_sources);
            $d['namecode'] = implode("<br/>", $html_ncs);
            $d['accepted_namecode'] = implode("<br/>", $html_ancs);
            $d['higher_than_family'] = implode("<br/>", $d['higher_than_family']);
            $d['family'] = implode("<br/>", $d['family']);
            $bests = $d['best'];
            if (!empty($bests)) {
                foreach ($bests as $src => $best_anc) {
                    $d['best'][$src] = $src . ":" . $url_anc_srcs[$src][$best_anc];
                }
                $d['best'] = implode("<br/>", $d['best']);
            }
            if (empty($d['best']) && $best == 'yes' && $d['score'] === 'N/A') {
                $d['best'] = "<a target='_blank' href='api.php?names=" . urlencode($d['name']) . "&format=table&best=no&against=" . $against . "'>" . 'undecidable</a>';
            } elseif (empty($d['best'])) {
                $d['best'] = '';
            }
            if ($best !== 'yes') {
                unset($d['best']);
            }
            $d['matched'] = str_replace("|", "<br/>", $d['matched']);
            $d['type'] = str_replace("|", "<br/>", $d['type']);
            $d['name'] = "<span name_cleaned='" . $d['name_cleaned'] . "'>" . $d['name'] . "</span>";
            foreach ($not_show as $ns) {
                unset($d[$ns]);
            }
            if ($hardcsv) {
                echo str_replace("<br/>", "|", implode("</td><td>", $d));
            } else {
                echo implode("</td><td>", $d);
            }
            echo "</td></tr>\n";
        }
    }
    echo "</table>\n";
    echo "<script src='./js/diffName.js'></script>";
}
コード例 #2
0
ファイル: count.php プロジェクト: TaiBIF/MyMatch
<?php

require_once "./include/functions.php";
$src_conf = read_src_conf();
$ep = !empty($_REQUEST['ep']) ? $_REQUEST['ep'] : file_get_contents("./conf/solr_endpoint");
$ep = trim($ep, " /\r\n");
$query_url = $ep . "/select?q=*:*&rows=0&wt=json&facet=true&facet.field=source";
$f_jo = json_decode(file_get_contents($query_url));
$fieldCounts = array();
foreach ($f_jo->facet_counts->facet_fields->source as $idx => $fieldCount) {
    if ($idx & 1) {
        // odd
        if (!$fieldCount) {
            continue;
        }
        $fieldCounts[] = array('source' => $current_field, 'count' => $fieldCount, 'name' => $src_conf[$current_field]['name'], 'citation' => $src_conf[$current_field]['citation'], 'url' => $src_conf[$current_field]['url'], 'version' => $src_conf[$current_field]['version']);
        $current_field = '';
    } else {
        // even
        $current_field = $fieldCount;
    }
}
echo json_encode($fieldCounts);