Esempio n. 1
0
function hour_table($_dt, $_title, $_n_loops, $_end_increment, $_dt_decrement, $_filters)
{
    $config =& SlimStatConfig::get_instance();
    $thead = array("first" => array(isset($config->i18n->fields[$_title]) ? $config->i18n->fields[$_title] : $_title), "last" => array($config->i18n->hits));
    $tbody = array();
    if ($config->show_visits && !isset($_filters["filter_visit"])) {
        $thead["last"][] = $config->i18n->visits;
    }
    if ($config->show_uniques) {
        $thead["last"][] = $config->i18n->uniques;
    }
    for ($i = 0; $i < $_n_loops; $i++) {
        $dt_start = SlimStat::to_server_time(strtotime(date("Y-m-d H:00:00", $_dt)));
        $dt_end = SlimStat::to_server_time(strtotime(date("Y-m-d H:59:59", $_dt + eval("return (" . $_end_increment . ");"))));
        if (SlimStat::to_server_time($dt_start) <= time()) {
            $row = array("first" => array(), "last" => array());
            $assoc = SlimStat::get_hits_visits_uniques($dt_start, $dt_end, $_filters);
            if ($assoc["hits"] > 0) {
                if ($dt_start == $_filters["filter_dt_start"] && $dt_end == $_filters["filter_dt_end"]) {
                    $row["first"][] = "<em>" . SlimStat::time_period_label($dt_start, $dt_end) . "</em>";
                } else {
                    $filters_copy = $_filters;
                    unset($filters_copy["filter_dt_start"]);
                    unset($filters_copy["filter_dt_end"]);
                    $str = "<a href=\"?" . SlimStat::implode_assoc("=", "&amp;", $filters_copy);
                    $str .= (empty($filters_copy) ? "" : "&amp;") . "filter_dt_start=" . $dt_start . "&amp;filter_dt_end=" . $dt_end;
                    $str .= "\">" . SlimStat::time_period_label($dt_start, $dt_end) . "</a>";
                    $row["first"][] = $str;
                }
                $row["last"][] = $assoc["hits"];
                if ($config->show_visits && !isset($_filters["filter_visit"])) {
                    $row["last"][] = $assoc["visits"];
                }
                if ($config->show_uniques) {
                    $row["last"][] = $assoc["uniques"];
                }
                $tbody[] = $row;
            }
        }
        $_dt -= eval("return (" . $_dt_decrement . ");");
    }
    return SlimStat::render_table($thead, $tbody, true);
}