PHP Classes

File: web/SSO/modules/statistics/templates/statistics-tpl.php

Recommend this page to a friend!
  Classes of william amed   Raptor 2   web/SSO/modules/statistics/templates/statistics-tpl.php   Download  
File: web/SSO/modules/statistics/templates/statistics-tpl.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Raptor 2
Framework that takes routes from annotations
Author: By
Last change:
Date: 8 years ago
Size: 9,091 bytes
 

Contents

Class file image Download
<?php
$this
->data['header'] = 'SimpleSAMLphp Statistics';

$this->data['jquery'] = array('version' => '1.6', 'core' => TRUE, 'ui' => TRUE, 'css' => TRUE);

// $this->data['hideLanguageBar'] = TRUE;

$this->data['head'] ='';
$this->data['head'] .= '<script type="text/javascript">
$(document).ready(function() {
    $("#tabdiv").tabs();
});
</script>'
;

$this->includeAtTemplateBase('includes/header.php');


function
getBaseURL($t, $type = 'get', $key = NULL, $value = NULL) {
   
$vars = array(
       
'rule' => $t->data['selected.rule'],
       
'time' => $t->data['selected.time'],
       
'res' => $t->data['selected.timeres'],
    );
    if (isset(
$t->data['selected.delimiter'])) $vars['d'] = $t->data['selected.delimiter'];
    if (!empty(
$t->data['selected.rule2']) && $t->data['selected.rule2'] !== '_') $vars['rule2'] = $t->data['selected.rule2'];
   
    if (isset(
$key)) {
        if (isset(
$vars[$key])) unset($vars[$key]);
        if (isset(
$value)) $vars[$key] = $value;
    }

    if (
$type === 'get') {
        return
'showstats.php?' . http_build_query($vars, '', '&amp;');
    } else {
       
$text = '';
        foreach(
$vars AS $k => $v) {
           
$text .= '<input type="hidden" name="' . $k . '" value="'. htmlspecialchars($v) . '" />' . "\n";
        }
        return
$text;
    }
   
}



?>

    <style type="text/css" media="all">
.ui-tabs-panel { padding: .5em }
div#content {
    margin: .4em ! important;
}
.tableview {
    border-collapse: collapse;
    border: 1px solid #ccc;
    margin: 1em;
    width: 80%;
}
.tableview th, .tableview td{
    border: 1px solid: #ccc;
    padding: 0px 5px;
}
.tableview th {
    background: #e5e5e5;
}
.tableview tr.total td {
    color: #500; font-weight: bold;
}
.tableview tr.even td {
    background: #f5f5f5;
    border-top: 1px solid #e0e0e0;
    border-bottom: 1px solid #e0e0e0;
}
.tableview th.value, .tableview td.value {
    text-align: right;
}
div.corner_t {
    max-width: none ! important;
}
table.timeseries tr.odd td {
    background-color: #f4f4f4;
}
table.timeseries td {
    padding-right: 2em; border: 1px solid #ccc
}
td.datacontent {
    text-align: right;
}
    </style>

<?php
echo('<h1>'. $this->data['available.rules'][$this->data['selected.rule']]['name'] . '</h1>');
echo(
'<p>' . $this->data['available.rules'][$this->data['selected.rule']]['descr'] . '</p>');

// echo('<pre>');
// print_r($this->data);
// exit;


// Report settings
echo '<table class="selecttime" style="width: 100%; border: 1px solid #ccc; background: #eee; margin: 1px 0px; padding: 0px">';
echo(
'<tr><td style="width: 50px; padding: 0px"><img style="margin: 0px" src="../../resources/icons/crystal_project/kchart.32x32.png" alt="Report settings" /></td>');

// Select report
echo '<td>';
echo
'<form style="display: inline">';
echo
getBaseURL($this, 'post', 'rule');
echo
'<select onChange="submit();" name="rule">';
foreach (
$this->data['available.rules'] AS $key => $rule) {
    if (
$key === $this->data['selected.rule']) {
        echo
'<option selected="selected" value="' . $key . '">' . $rule['name'] . '</option>';
    } else {
        echo
'<option value="' . $key . '">' . $rule['name'] . '</option>';
    }
}
echo
'</select></form>';
echo
'</td>';


// Select delimiter
echo '<td style="text-align: right">';

#echo('<pre>here'); print_r($this->data['delimiterPresentation']); echo('</pre>');

echo '<form style="display: inline">';
echo
getBaseURL($this, 'post', 'd');
echo
'<select onChange="submit();" name="d">';
foreach (
$this->data['availdelimiters'] AS $key => $delim) {

   
$delimName = $delim;
    if(
array_key_exists($delim, $this->data['delimiterPresentation'])) $delimName = $this->data['delimiterPresentation'][$delim];

    if (
$key == '_') {
        echo
'<option value="_">Total</option>';
    } elseif (isset(
$_REQUEST['d']) && $delim == $_REQUEST['d']) {
        echo
'<option selected="selected" value="' . htmlspecialchars($delim) . '">' . htmlspecialchars($delimName) . '</option>';
    } else {
        echo
'<option value="' . htmlspecialchars($delim) . '">' . htmlspecialchars($delimName) . '</option>';
    }
}
echo
'</select></form>';
echo
'</td>';

echo
'</table>';

// End report settings




// Select time and date
echo '<table class="selecttime" style="width: 100%; border: 1px solid #ccc; background: #eee; margin: 1px 0px; padding: 0px">';
echo(
'<tr><td style="width: 50px; padding: 0px"><img style="margin: 0px" src="../../resources/icons/crystal_project/date.32x32.png" alt="Select date and time" /></td>');






if (isset(
$this->data['available.times.prev'])) {

    echo(
'<td style=""><a href="' . getBaseURL($this, 'get', 'time', $this->data['available.times.prev']) . '">« Previous</a></td>');
} else {
    echo(
'<td style="color: #ccc">« Previous</td>');
}


echo
'<td style="text-align: right">';
echo
'<form style="display: inline">';
echo
getBaseURL($this, 'post', 'res');
// echo '<input type="hidden" name="rule" value="' . $this->data['selected.rule'] . '" />';
echo '<select onChange="submit();" name="res">';
foreach (
$this->data['available.timeres'] AS $key => $timeresname) {
    if (
$key == $this->data['selected.timeres']) {
        echo
'<option selected="selected" value="' . $key . '">' . $timeresname . '</option>';
    } else {
        echo
'<option value="' . $key . '">' . $timeresname . '</option>';
    }
}
echo
'</select></form>';
echo
'</td>';


echo
'<td style="text-align: left">';
echo
'<form style="display: inline">';
echo
getBaseURL($this, 'post', 'time');
// echo '<input type="hidden" name="rule" value="' . $this->data['selected.rule'] . '" />';
echo '<select onChange="submit();" name="time">';
foreach (
$this->data['available.times'] AS $key => $timedescr) {
    if (
$key == $this->data['selected.time']) {
        echo
'<option selected="selected" value="' . $key . '">' . $timedescr . '</option>';
    } else {
        echo
'<option value="' . $key . '">' . $timedescr . '</option>';
    }
}
echo
'</select></form>';
echo
'</td>';

if (isset(
$this->data['available.times.next'])) {
    echo(
'<td style="text-align: right; padding-right: 4px"><a href="' . getBaseURL($this, 'get', 'time', $this->data['available.times.next']) . '">Next »</a></td>');
} else {
    echo(
'<td style="color: #ccc; text-align: right; padding-right: 4px">Next »</td>');
}




echo
'</tr></table>';







echo
'<div id="tabdiv"><ul class="tabset_tabs">
   <li><a href="#graph">Graph</a></li>
   <li><a href="#table">Summary table</a></li>
   <li><a href="#debug">Time serie</a></li>
</ul>'
;
echo
'

<div id="graph" class="tabset_content">'
;


echo
'<img src="' . htmlspecialchars($this->data['imgurl']) . '" />';


echo
'<form style="display: inline">';
echo(
'<p style="text-align: right">Compare with total from this dataset ');
echo
getBaseURL($this, 'post', 'rule2');
echo
'<select onChange="submit();" name="rule2">';
echo
' <option value="_">None</option>';
foreach (
$this->data['available.rules'] AS $key => $rule) {
    if (
$key === $this->data['selected.rule2']) {
        echo
'<option selected="selected" value="' . $key . '">' . $rule['name'] . '</option>';
    } else {
        echo
'<option value="' . $key . '">' . $rule['name'] . '</option>';
    }
}
echo
'</select></form>';


echo
'</div>'; # end graph content.



/**
 * Handle table view - - - - - -
 */
$classint = array('odd', 'even'); $i = 0;
echo
'<div id="table" class="tabset_content">';

if (isset(
$this->data['pieimgurl'])) {
    echo(
'<img src="' . $this->data['pieimgurl'] . '" />');
}
echo
'<table class="tableview"><tr><th class="value">Value</th><th class="category">Data range</th>';

foreach (
$this->data['summaryDataset'] as $key => $value ) {
   
$clint = $classint[$i++ % 2];
   
   
$keyName = $key;
    if(
array_key_exists($key, $this->data['delimiterPresentation'])) $keyName = $this->data['delimiterPresentation'][$key];

    if (
$key === '_') {
        echo
'<tr class="total ' . $clint . '"><td class="value">' . $value . '</td><td class="category">' . $keyName . '</td></tr>';
    } else {
        echo
'<tr class="' . $clint . '"><td class="value">' . $value . '</td><td class="category">' . $keyName . '</td></tr>';
    }
}

echo
'</table></div>';
// - - - - - - - End table view - - - - - - -


//
// echo('<pre>');
// print_r($this->data['results']);
// exit;


echo '<div id="debug" >';

#echo $this->data['selected.time'];
#echo '<input style="width: 80%" value="' . htmlspecialchars($this->data['imgurl']) . '" />';

echo '<table class="timeseries" style="">';
echo(
'<tr><th>Time</th><th>Total</th>');
foreach(
$this->data['topdelimiters'] AS $key) {
   
$keyName = $key;
    if(
array_key_exists($key, $this->data['delimiterPresentation'])) $keyName = $this->data['delimiterPresentation'][$key];
     echo(
'<th>' . $keyName . '</th>');
}
echo(
'</tr>');


$i = 0;
foreach (
$this->data['debugdata'] AS $slot => $dd) {
    echo(
'<tr class="' . ((++$i % 2) == 0 ? 'odd' : 'even') . '">');
    echo(
'<td style="">' . $dd[0] . '</td>');
    echo(
'<td class="datacontent">' . $dd[1] . '</td>');

    foreach(
$this->data['topdelimiters'] AS $key) {
        echo(
'<td class="datacontent">' .
            (
array_key_exists($key, $this->data['results'][$slot]) ? $this->data['results'][$slot][$key] : '&nbsp;') .
           
'</td>');
    }
    echo(
'</tr>');
}
echo
'</table>';


echo
'</div>'; # End debug tab content
echo('</div>'); # End tab div



$this->includeAtTemplateBase('includes/footer.php');