Example #1
0
function iriStatPressMain()
{
    global $wpdb;
    $table_name = $wpdb->prefix . "statpress";
    // OVERVIEW table
    $unique_color = "#114477";
    $web_color = "#3377B6";
    $rss_color = "#f38f36";
    $spider_color = "#83b4d8";
    $lastmonth = iri_StatPress_lastmonth();
    $thismonth = gmdate('Ym', current_time('timestamp'));
    $yesterday = gmdate('Ymd', current_time('timestamp') - 86400);
    $today = gmdate('Ymd', current_time('timestamp'));
    $tlm[0] = my_substr($lastmonth, 0, 4);
    $tlm[1] = my_substr($lastmonth, 4, 2);
    print "<div class='wrap'><h2>" . __('Overview', 'statpress') . "</h2>";
    print "<table class='widefat'><thead><tr>\r\n  <th scope='col'></th>\r\n  <th scope='col'>" . __('Total', 'statpress') . "</th>\r\n  <th scope='col'>" . __('Last month', 'statpress') . "<br /><font size=1>" . gmdate('M, Y', gmmktime(0, 0, 0, $tlm[1], 1, $tlm[0])) . "</font></th>\r\n  <th scope='col'>" . __('This month', 'statpress') . "<br /><font size=1>" . gmdate('M, Y', current_time('timestamp')) . "</font></th>\r\n  <th scope='col'>" . __('Target', 'statpress') . " " . __('This month', 'statpress') . "<br /><font size=1>" . gmdate('M, Y', current_time('timestamp')) . "</font></th>\r\n  <th scope='col'>" . __('Yesterday', 'statpress') . "<br /><font size=1>" . gmdate('d M, Y', current_time('timestamp') - 86400) . "</font></th>\r\n  <th scope='col'>" . __('Today', 'statpress') . "<br /><font size=1>" . gmdate('d M, Y', current_time('timestamp')) . "</font></th>\r\n  </tr></thead>\r\n  <tbody id='the-list'>";
    //###############################################################################################
    // VISITORS ROW
    print "<tr><td><div style='background:{$unique_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Visitors', 'statpress') . "</td>";
    //TOTAL
    $qry_total = $wpdb->get_row("\r\n    SELECT count(DISTINCT ip) AS visitors\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider=''\r\n  ");
    print "<td>" . $qry_total->visitors . "</td>\n";
    //LAST MONTH
    $qry_lmonth = $wpdb->get_row("\r\n    SELECT count(DISTINCT ip) AS visitors\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider=''\r\n    AND date LIKE '" . mysql_real_escape_string($lastmonth) . "%'\r\n  ");
    print "<td>" . $qry_lmonth->visitors . "</td>\n";
    //THIS MONTH
    $qry_tmonth = $wpdb->get_row("\r\n    SELECT count(DISTINCT ip) AS visitors\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider=''\r\n    AND date LIKE '" . mysql_real_escape_string($thismonth) . "%'\r\n  ");
    if ($qry_lmonth->visitors != 0) {
        $pc = round(100 * ($qry_tmonth->visitors / $qry_lmonth->visitors) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->visitors . $qry_tmonth->change . "</td>\n";
    //TARGET
    $qry_tmonth->target = round($qry_tmonth->visitors / (time() - mktime(0, 0, 0, date('m'), date('1'), date('Y'))) * (86400 * date('t')));
    if ($qry_lmonth->visitors != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->visitors) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    //YESTERDAY
    $qry_y = $wpdb->get_row("\r\n    SELECT count(DISTINCT ip) AS visitors\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider=''\r\n    AND date = '" . mysql_real_escape_string($yesterday) . "'\r\n  ");
    print "<td>" . $qry_y->visitors . "</td>\n";
    //TODAY
    $qry_t = $wpdb->get_row("\r\n    SELECT count(DISTINCT ip) AS visitors\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider=''\r\n    AND date = '" . mysql_real_escape_string($today) . "'\r\n  ");
    print "<td>" . $qry_t->visitors . "</td>\n";
    print "</tr>";
    //###############################################################################################
    // PAGEVIEWS ROW
    print "<tr><td><div style='background:{$web_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Pageviews', 'statpress') . "</td>";
    //TOTAL
    $qry_total = $wpdb->get_row("\r\n    SELECT count(date) as pageview\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider=''\r\n  ");
    print "<td>" . $qry_total->pageview . "</td>\n";
    //LAST MONTH
    $prec = 0;
    $qry_lmonth = $wpdb->get_row("\r\n    SELECT count(date) as pageview\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider=''\r\n    AND date LIKE '" . mysql_real_escape_string($lastmonth) . "%'\r\n  ");
    print "<td>" . $qry_lmonth->pageview . "</td>\n";
    //THIS MONTH
    $qry_tmonth = $wpdb->get_row("\r\n    SELECT count(date) as pageview\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider=''\r\n    AND date LIKE '" . mysql_real_escape_string($thismonth) . "%'\r\n  ");
    if ($qry_lmonth->pageview != 0) {
        $pc = round(100 * ($qry_tmonth->pageview / $qry_lmonth->pageview) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->pageview . $qry_tmonth->change . "</td>\n";
    //TARGET
    $qry_tmonth->target = round($qry_tmonth->pageview / (time() - mktime(0, 0, 0, date('m'), date('1'), date('Y'))) * (86400 * date('t')));
    if ($qry_lmonth->pageview != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->pageview) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    //YESTERDAY
    $qry_y = $wpdb->get_row("\r\n    SELECT count(date) as pageview\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider=''\r\n    AND date = '" . mysql_real_escape_string($yesterday) . "'\r\n  ");
    print "<td>" . $qry_y->pageview . "</td>\n";
    //TODAY
    $qry_t = $wpdb->get_row("\r\n    SELECT count(date) as pageview\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider=''\r\n    AND date = '" . mysql_real_escape_string($today) . "'\r\n  ");
    print "<td>" . $qry_t->pageview . "</td>\n";
    print "</tr>";
    //###############################################################################################
    // SPIDERS ROW
    print "<tr><td><div style='background:{$spider_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Spiders', 'statpress') . "</td>";
    //TOTAL
    $qry_total = $wpdb->get_row("\r\n    SELECT count(date) as spiders\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider<>''\r\n  ");
    print "<td>" . $qry_total->spiders . "</td>\n";
    //LAST MONTH
    $prec = 0;
    $qry_lmonth = $wpdb->get_row("\r\n    SELECT count(date) as spiders\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider<>''\r\n    AND date LIKE '" . mysql_real_escape_string($lastmonth) . "%'\r\n  ");
    print "<td>" . $qry_lmonth->spiders . "</td>\n";
    //THIS MONTH
    $prec = $qry_lmonth->spiders;
    $qry_tmonth = $wpdb->get_row("\r\n    SELECT count(date) as spiders\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider<>''\r\n    AND date LIKE '" . mysql_real_escape_string($thismonth) . "%'\r\n  ");
    if ($qry_lmonth->spiders != 0) {
        $pc = round(100 * ($qry_tmonth->spiders / $qry_lmonth->spiders) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->spiders . $qry_tmonth->change . "</td>\n";
    //TARGET
    $qry_tmonth->target = round($qry_tmonth->spiders / (time() - mktime(0, 0, 0, date('m'), date('1'), date('Y'))) * (86400 * date('t')));
    if ($qry_lmonth->spiders != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->spiders) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    //YESTERDAY
    $qry_y = $wpdb->get_row("\r\n    SELECT count(date) as spiders\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider<>''\r\n    AND date = '" . mysql_real_escape_string($yesterday) . "'\r\n  ");
    print "<td>" . $qry_y->spiders . "</td>\n";
    //TODAY
    $qry_t = $wpdb->get_row("\r\n    SELECT count(date) as spiders\r\n    FROM {$table_name}\r\n    WHERE feed=''\r\n    AND spider<>''\r\n    AND date = '" . mysql_real_escape_string($today) . "'\r\n  ");
    print "<td>" . $qry_t->spiders . "</td>\n";
    print "</tr>";
    //###############################################################################################
    // FEEDS ROW
    print "<tr><td><div style='background:{$rss_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Feeds', 'statpress') . "</td>";
    //TOTAL
    $qry_total = $wpdb->get_row("\r\n    SELECT count(date) as feeds\r\n    FROM {$table_name}\r\n    WHERE feed<>''\r\n    AND spider=''\r\n  ");
    print "<td>" . $qry_total->feeds . "</td>\n";
    //LAST MONTH
    $qry_lmonth = $wpdb->get_row("\r\n    SELECT count(date) as feeds\r\n    FROM {$table_name}\r\n    WHERE feed<>''\r\n    AND spider=''\r\n    AND date LIKE '" . mysql_real_escape_string($lastmonth) . "%'\r\n  ");
    print "<td>" . $qry_lmonth->feeds . "</td>\n";
    //THIS MONTH
    $qry_tmonth = $wpdb->get_row("\r\n    SELECT count(date) as feeds\r\n    FROM {$table_name}\r\n    WHERE feed<>''\r\n    AND spider=''\r\n    AND date LIKE '" . mysql_real_escape_string($thismonth) . "%'\r\n  ");
    if ($qry_lmonth->feeds != 0) {
        $pc = round(100 * ($qry_tmonth->feeds / $qry_lmonth->feeds) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->feeds . $qry_tmonth->change . "</td>\n";
    //TARGET
    $qry_tmonth->target = round($qry_tmonth->feeds / (time() - mktime(0, 0, 0, date('m'), date('1'), date('Y'))) * (86400 * date('t')));
    if ($qry_lmonth->feeds != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->feeds) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    $qry_y = $wpdb->get_row("\r\n    SELECT count(date) as feeds\r\n    FROM {$table_name}\r\n    WHERE feed<>''\r\n    AND spider=''\r\n    AND date = '" . mysql_real_escape_string($yesterday) . "'\r\n  ");
    print "<td>" . $qry_y->feeds . "</td>\n";
    $qry_t = $wpdb->get_row("\r\n    SELECT count(date) as feeds\r\n    FROM {$table_name}\r\n    WHERE feed<>''\r\n    AND spider=''\r\n    AND date = '" . mysql_real_escape_string($today) . "'\r\n  ");
    print "<td>" . $qry_t->feeds . "</td>\n";
    print "</tr></table><br />\n\n";
    //###############################################################################################
    //###############################################################################################
    // THE GRAPHS
    // last "N" days graph  NEW
    $gdays = get_option('statpress_daysinoverviewgraph');
    if ($gdays == 0) {
        $gdays = 20;
    }
    //  $start_of_week = get_settings('start_of_week');
    $start_of_week = get_option('start_of_week');
    print '<table width="100%" border="0"><tr>';
    $qry = $wpdb->get_row("\r\n    SELECT count(date) as pageview, date\r\n    FROM {$table_name}\r\n    GROUP BY date HAVING date >= '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gdays) . "'\r\n    ORDER BY pageview DESC\r\n    LIMIT 1\r\n  ");
    $maxxday = $qry->pageview;
    if ($maxxday == 0) {
        $maxxday = 1;
    }
    // Y
    $gd = 90 / $gdays . '%';
    for ($gg = $gdays - 1; $gg >= 0; $gg--) {
        //TOTAL VISITORS
        $qry_visitors = $wpdb->get_row("\r\n      SELECT count(DISTINCT ip) AS total\r\n      FROM {$table_name}\r\n      WHERE feed=''\r\n      AND spider=''\r\n      AND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\r\n    ");
        $px_visitors = round($qry_visitors->total * 100 / $maxxday);
        //TOTAL PAGEVIEWS (we do not delete the uniques, this is falsing the info.. uniques are not different visitors!)
        $qry_pageviews = $wpdb->get_row("\r\n      SELECT count(date) as total\r\n      FROM {$table_name}\r\n      WHERE feed=''\r\n      AND spider=''\r\n      AND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\r\n    ");
        $px_pageviews = round($qry_pageviews->total * 100 / $maxxday);
        //TOTAL SPIDERS
        $qry_spiders = $wpdb->get_row("\r\n      SELECT count(ip) AS total\r\n      FROM {$table_name}\r\n      WHERE feed=''\r\n      AND spider<>''\r\n      AND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\r\n    ");
        $px_spiders = round($qry_spiders->total * 100 / $maxxday);
        //TOTAL FEEDS
        $qry_feeds = $wpdb->get_row("\r\n      SELECT count(ip) AS total\r\n      FROM {$table_name}\r\n      WHERE feed<>''\r\n      AND spider=''\r\n      AND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\r\n    ");
        $px_feeds = round($qry_feeds->total * 100 / $maxxday);
        $px_white = 100 - $px_feeds - $px_spiders - $px_pageviews - $px_visitors;
        print '<td width="' . $gd . '" valign="bottom"';
        if ($start_of_week == gmdate('w', current_time('timestamp') - 86400 * $gg)) {
            print ' style="border-left:2px dotted gray;"';
        }
        // week-cut
        print "><div style='float:left;height: 100%;width:100%;font-family:Helvetica;font-size:7pt;text-align:center;border-right:1px solid white;color:black;'>\r\n    <div style='background:#ffffff;width:100%;height:" . $px_white . "px;'></div>\r\n    <div style='background:{$unique_color};width:100%;height:" . $px_visitors . "px;' title='" . $qry_visitors->total . " " . __('visitors', 'statpress') . "'></div>\r\n    <div style='background:{$web_color};width:100%;height:" . $px_pageviews . "px;' title='" . $qry_pageviews->total . " " . __('pageviews', 'statpress') . "'></div>\r\n    <div style='background:{$spider_color};width:100%;height:" . $px_spiders . "px;' title='" . $qry_spiders->total . " " . __('spiders', 'statpress') . "'></div>\r\n    <div style='background:{$rss_color};width:100%;height:" . $px_feeds . "px;' title='" . $qry_feeds->total . " " . __('feeds', 'statpress') . "'></div>\r\n    <div style='background:gray;width:100%;height:1px;'></div>\r\n    <br />" . gmdate('d', current_time('timestamp') - 86400 * $gg) . ' ' . gmdate('M', current_time('timestamp') - 86400 * $gg) . "</div></td>\n";
    }
    print '</tr></table>';
    print '</div>';
    // END OF OVERVIEW
    //###################################################################################################
    $querylimit = "LIMIT 20";
    // Tabella Last hits
    print "<div class='wrap'><h2>" . __('Last hits', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('IP', 'statpress') . "</th><th scope='col'>" . __('Threat', 'statpress') . "</th><th scope='col'>" . __('Domain', 'statpress') . "</th><th scope='col'>" . __('Page', 'statpress') . "</th><th scope='col'>" . __('OS', 'statpress') . "</th><th scope='col'>" . __('Browser', 'statpress') . "</th><th scope='col'>" . __('Feed', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $fivesdrafts = $wpdb->get_results("SELECT * FROM {$table_name} WHERE (os<>'' OR feed<>'') order by id DESC {$querylimit}");
    foreach ($fivesdrafts as $fivesdraft) {
        print "<tr>";
        print "<td>" . irihdate($fivesdraft->date) . "</td>";
        print "<td>" . $fivesdraft->time . "</td>";
        print "<td>" . $fivesdraft->ip . "</td>";
        print "<td>" . $fivesdraft->threat_score;
        if ($fivesdraft->threat_score > 0) {
            print "/";
            if ($fivesdraft->threat_type == 0) {
                print "Sp";
            } else {
                if (($fivesdraft->threat_type & 1) == 1) {
                    print "S";
                }
                // Suspicious
                if (($fivesdraft->threat_type & 2) == 2) {
                    print "H";
                }
                // Harvester
                if (($fivesdraft->threat_type & 4) == 4) {
                    print "C";
                }
                // Comment spammer
            }
        }
        print "<td>" . $fivesdraft->nation . "</td>";
        print "<td>" . iri_StatPress_Abbrevia(iri_StatPress_Decode($fivesdraft->urlrequested), 30) . "</td>";
        print "<td>" . $fivesdraft->os . "</td>";
        print "<td>" . $fivesdraft->browser . "</td>";
        print "<td>" . $fivesdraft->feed . "</td>";
        print "</tr>";
    }
    print "</table></div>";
    // Last Search terms
    print "<div class='wrap'><h2>" . __('Last search terms', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('Terms', 'statpress') . "</th><th scope='col'>" . __('Engine', 'statpress') . "</th><th scope='col'>" . __('Result', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,referrer,urlrequested,search,searchengine FROM {$table_name} WHERE search<>'' ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td><a href='" . $rk->referrer . "'>" . $rk->search . "</a></td><td>" . $rk->searchengine . "</td><td><a href='" . irigetblogurl() . (strpos($rk->urlrequested, 'index.php') === FALSE ? $rk->urlrequested : '') . "'>" . __('page viewed', 'statpress') . "</a></td></tr>\n";
    }
    print "</table></div>";
    // Referrer
    print "<div class='wrap'><h2>" . __('Last referrers', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('URL', 'statpress') . "</th><th scope='col'>" . __('Result', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,referrer,urlrequested FROM {$table_name} WHERE ((referrer NOT LIKE '" . get_option('home') . "%') AND (referrer <>'') AND (searchengine='')) ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td><a href='" . $rk->referrer . "'>" . iri_StatPress_Abbrevia($rk->referrer, 80) . "</a></td><td><a href='" . irigetblogurl() . (strpos($rk->urlrequested, 'index.php') === FALSE ? $rk->urlrequested : '') . "'>" . __('page viewed', 'statpress') . "</a></td></tr>\n";
    }
    print "</table></div>";
    // Last Agents
    print "<div class='wrap'><h2>" . __('Last agents', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('Agent', 'statpress') . "</th><th scope='col'>" . __('What', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,agent,os,browser,spider FROM {$table_name} WHERE (agent <>'') ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td>" . $rk->agent . "</td><td> " . $rk->os . " " . $rk->browser . " " . $rk->spider . "</td></tr>\n";
    }
    print "</table></div>";
    // Last pages
    print "<div class='wrap'><h2>" . __('Last pages', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('Page', 'statpress') . "</th><th scope='col'>" . __('What', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,urlrequested,os,browser,spider FROM {$table_name} WHERE (spider='' AND feed='') ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td>" . iri_StatPress_Abbrevia(iri_StatPress_Decode($rk->urlrequested), 60) . "</td><td> " . $rk->os . " " . $rk->browser . " " . $rk->spider . "</td></tr>\n";
    }
    print "</table></div>";
    // Last Spiders
    print "<div class='wrap'><h2>" . __('Last spiders', 'statpress') . "</h2>";
    print "<table class='widefat'><thead><tr>";
    print "<th scope='col'>" . __('Date', 'statpress') . "</th>";
    print "<th scope='col'>" . __('Time', 'statpress') . "</th>";
    print "<th scope='col'>" . __('Spider', 'statpress') . "</th>";
    print "<th scope='col'>" . __('Page', 'statpress') . "</th>";
    print "<th scope='col'>" . __('Agent', 'statpress') . "</th>";
    print "</tr></thead><tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,agent,spider,urlrequested,agent FROM {$table_name} WHERE (spider<>'') ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td>";
        print "<td>" . $rk->time . "</td>";
        print "<td>" . $rk->spider . "</td>";
        print "<td>" . iri_StatPress_Abbrevia(iri_StatPress_Decode($rk->urlrequested), 30) . "</td>";
        print "<td> " . $rk->agent . "</td></tr>\n";
    }
    print "</table></div>";
    print "<br />";
    print "&nbsp;<i>" . __('StatPress table size', 'statpress') . ": <b>" . iritablesize($wpdb->prefix . "statpress") . "</b></i><br />";
    print "&nbsp;<i>" . __('StatPress current time', 'statpress') . ": <b>" . current_time('mysql') . "</b></i><br />";
    print "&nbsp;<i>" . __('RSS2 url', 'statpress') . ": <b>" . get_bloginfo('rss2_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('rss2_url')) . ")</b></i><br />";
    print "&nbsp;<i>" . __('ATOM url', 'statpress') . ": <b>" . get_bloginfo('atom_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('atom_url')) . ")</b></i><br />";
    print "&nbsp;<i>" . __('RSS url', 'statpress') . ": <b>" . get_bloginfo('rss_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('rss_url')) . ")</b></i><br />";
    print "&nbsp;<i>" . __('COMMENT RSS2 url', 'statpress') . ": <b>" . get_bloginfo('comments_rss2_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('comments_rss2_url')) . ")</b></i><br />";
    print "&nbsp;<i>" . __('COMMENT ATOM url', 'statpress') . ": <b>" . get_bloginfo('comments_atom_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('comments_atom_url')) . ")</b></i><br />";
}
Example #2
0
function iriStatPressMain()
{
    global $wpdb;
    $table_name = $wpdb->prefix . "statpress";
    # Tabella OVERVIEW
    $unique_color = "#114477";
    $web_color = "#3377B6";
    $rss_color = "#f38f36";
    $spider_color = "#83b4d8";
    $lastmonth = iri_StatPress_lastmonth();
    $thismonth = gmdate('Ym', current_time('timestamp'));
    $lastyear = gmdate('Y', gmmktime(0, 0, 0, gmdate('m'), gmdate('d'), gmdate('y') - 1));
    $thisyear = gmdate('Y', current_time('timestamp'));
    $yesterday = gmdate('Ymd', current_time('timestamp') - 86400);
    $today = gmdate('Ymd', current_time('timestamp'));
    $tlm[0] = substr($lastmonth, 0, 4);
    $tlm[1] = substr($lastmonth, 4, 2);
    $normallimit = " and (statuscode!='404' or statuscode is null)";
    $lastyearvisitors = get_option("statpress_archive_lastyear_visitors");
    $lastmonthvisitors = get_option("statpress_archive_lastmonth_visitors");
    print "<div class='wrap'><h2>" . __('Overview', 'statpresscn') . "</h2>";
    print "<table class='widefat'><thead><tr>\r\n<th scope='col'></th>\r\n<th scope='col'>" . __('Total', 'statpresscn') . "</th>";
    if ($lastyearvisitors != 0) {
        print "<th scope='col'>" . __('Last year', 'statpresscn') . "<br /><font size=1>" . $lastyear . "</font></th>";
    }
    print "<th scope='col'>" . __('This year', 'statpresscn') . "<br /><font size=1>" . $thisyear . "</font></th>";
    print "<th scope='col'>" . __('Target This year', 'statpresscn') . "<br /><font size=1>" . $thisyear . "</font></th>";
    if ($lastmonthvisitors != 0) {
        print "<th scope='col'>" . __('Last month', 'statpresscn') . "<br /><font size=1>" . gmdate('M, Y', gmmktime(0, 0, 0, $tlm[1], 1, $tlm[0])) . "</font></th>";
    }
    print "<th scope='col'>" . __('This month', 'statpresscn') . "<br /><font size=1>" . gmdate('M, Y', current_time('timestamp')) . "</font></th>\r\n<th scope='col'>" . __('Target This month', 'statpresscn') . "<br /><font size=1>" . gmdate('M, Y', current_time('timestamp')) . "</font></th>\r\n<th scope='col'>" . __('Yesterday', 'statpresscn') . "<br /><font size=1>" . gmdate('d M, Y', current_time('timestamp') - 86400) . "</font></th>\r\n<th scope='col'>" . __('Today', 'statpresscn') . "<br /><font size=1>" . gmdate('d M, Y', current_time('timestamp')) . "</font></th>\r\n</tr></thead>\r\n<tbody id='the-list'>";
    ################################################################################################
    # VISITORS ROW
    print "<tr><td><div style='background:{$unique_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Visitors', 'statpresscn') . "</td>";
    #TOTAL
    $totalvisitors = $wpdb->get_var("\r\nSELECT count(DISTINCT ip)\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider=''{$normallimit}\r\n        ");
    print "<td>" . $totalvisitors . "</td>\n";
    #LAST YEAR
    if ($lastyearvisitors != 0) {
        print "<td>" . $lastyearvisitors . "</td>\n";
    }
    #THIS YEAR
    $qry_thisyear = $wpdb->get_row("\r\nSELECT count(DISTINCT ip) AS visitors\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider=''\r\nAND date LIKE '" . $thisyear . "%'{$normallimit}\r\n        ");
    if ($lastyearvisitors != 0) {
        $pc = round(100 * ($qry_thisyear->visitors / $lastyearvisitors) - 100);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_thisyear->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_thisyear->visitors . $qry_thisyear->change . "</td>\n";
    #TARGET THIS YEAR
    $datearray1 = getdate();
    $tmpdatestr = get_option("statpress_date_first_sets");
    $tmpdatestr1 = substr($tmpdatestr, 0, 4) . '-' . substr($tmpdatestr, 4, 2) . '-' . substr($tmpdatestr, -2);
    //    print $tmpdatestr1;
    $datearray2 = getdate(strtotime($tmpdatestr1));
    //    print " ".$datearray1['yday']."--".$datearray2['yday'];
    $diffdayofyear = $datearray1['year'] == $datearray2['year'] ? $datearray2['yday'] : 0;
    $diffdayofmonth = $datearray1['year'] == $datearray2['year'] && $datearray1['month'] == $datearray2['month'] ? $datearray2['mday'] : 0;
    $lastyeardays = $datearray1['year'] - $datearray2['year'] > 1 ? 365 : 365 - $datearray2['yday'];
    //    print "|||".$lastyeardays;
    $qry_thisyear->target = round($qry_thisyear->visitors / ($datearray1['yday'] + 1 - $diffdayofyear) * 365);
    if ($lastyearvisitors != 0) {
        $pt = round(100 * ($qry_thisyear->target / ($lastyearvisitors * (365 / $lastyeardays))) - 100);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_thisyear->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_thisyear->target . $qry_thisyear->added . "</td>\n";
    #LAST MONTH
    if ($lastmonthvisitors != 0) {
        print "<td>" . $lastmonthvisitors . "</td>\n";
    }
    #THIS MONTH
    $qry_tmonth = $wpdb->get_row("\r\nSELECT count(DISTINCT ip) AS visitors\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider=''\r\nAND date LIKE '" . $thismonth . "%'{$normallimit}\r\n        ");
    if ($lastmonthvisitors != 0) {
        $pc = round(100 * ($qry_tmonth->visitors / $lastmonthvisitors) - 100);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->visitors . $qry_tmonth->change . "</td>\n";
    #TARGET THIS MONTH
    $qry_tmonth->target = round($qry_tmonth->visitors / ($datearray1['mday'] - $diffdayofmonth) * 30);
    if ($lastmonthvisitors != 0) {
        $pt = round(100 * ($qry_tmonth->target / $lastmonthvisitors) - 100);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    #YESTERDAY
    print "<td>" . get_option("statpress_archive_yesterday_visitors") . "</td>\n";
    #TODAY
    $qry_t = $wpdb->get_row("\r\nSELECT count(DISTINCT ip) AS visitors\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider=''\r\nAND date = '{$today}'{$normallimit}\r\n        ");
    print "<td>" . $qry_t->visitors . "</td>\n";
    print "</tr>";
    ################################################################################################
    # PAGEVIEWS ROW
    print "<tr><td><div style='background:{$web_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Pageviews', 'statpresscn') . "</td>";
    #TOTAL
    $totalpageviews = $wpdb->get_var("\r\nSELECT count(date) as pageview\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider=''{$normallimit}\r\n        ");
    print "<td>" . $totalpageviews . "</td>\n";
    #LAST YEAR
    $lastyearpageviews = get_option("statpress_archive_lastyear_pageviews");
    if ($lastyearvisitors != 0) {
        print "<td>" . $lastyearpageviews . "</td>\n";
    }
    #THIS YEAR
    $qry_thisyear = $wpdb->get_row("\r\nSELECT count(date) as pageview\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider=''\r\nAND date LIKE '" . $thisyear . "%'{$normallimit}\r\n        ");
    if ($lastyearpageviews != 0) {
        $pc = round(100 * ($qry_thisyear->pageview / $lastyearpageviews) - 100);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_thisyear->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_thisyear->pageview . $qry_thisyear->change . "</td>\n";
    #TARGET THIS YEAR
    $qry_thisyear->target = round($qry_thisyear->pageview / ($datearray1['yday'] + 1 - $diffdayofyear) * 365);
    if ($lastyearpageviews != 0) {
        $pt = round(100 * ($qry_thisyear->target / ($lastyearpageviews * (365 / $lastyeardays))) - 100);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_thisyear->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_thisyear->target . $qry_thisyear->added . "</td>\n";
    #LAST MONTH
    $lastmonthpageviews = get_option("statpress_archive_lastmonth_pageviews");
    if ($lastmonthvisitors != 0) {
        print "<td>" . $lastmonthpageviews . "</td>\n";
    }
    #THIS MONTH
    $qry_tmonth = $wpdb->get_row("\r\nSELECT count(date) as pageview\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider=''\r\nAND date LIKE '" . $thismonth . "%'{$normallimit}\r\n        ");
    if ($lastmonthpageviews != 0) {
        $pc = round(100 * ($qry_tmonth->pageview / $lastmonthpageviews) - 100);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->pageview . $qry_tmonth->change . "</td>\n";
    #TARGET THIS MONTH
    $qry_tmonth->target = round($qry_tmonth->pageview / ($datearray1['mday'] - $diffdayofmonth) * 30);
    if ($lastmonthpageviews != 0) {
        $pt = round(100 * ($qry_tmonth->target / $lastmonthpageviews) - 100);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    #YESTERDAY
    print "<td>" . get_option("statpress_archive_yesterday_pageviews") . "</td>\n";
    #TODAY
    $qry_t = $wpdb->get_row("\r\nSELECT count(date) as pageview\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider=''\r\nAND date = '{$today}'{$normallimit}\r\n        ");
    print "<td>" . $qry_t->pageview . "</td>\n";
    print "</tr>";
    ################################################################################################
    # SPIDERS ROW
    print "<tr><td><div style='background:{$spider_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Spiders', 'statpresscn') . "</td>";
    #TOTAL
    $totalspiders = $wpdb->get_var("\r\nSELECT count(date) as spiders\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider!=''{$normallimit}\r\n        ");
    print "<td>" . $totalspiders . "</td>\n";
    #LAST YEAR
    $lastyearspiders = get_option("statpress_archive_lastyear_spiders");
    if ($lastyearvisitors != 0) {
        print "<td>" . $lastyearspiders . "</td>\n";
    }
    #THIS YEAR
    $prec = $qry_lastyear->spiders;
    $qry_thisyear = $wpdb->get_row("\r\nSELECT count(date) as spiders\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider!=''\r\nAND date LIKE '" . $thisyear . "%'{$normallimit}\r\n        ");
    if ($lastyearspiders != 0) {
        $pc = round(100 * ($qry_thisyear->spiders / $lastyearspiders) - 100);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_thisyear->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_thisyear->spiders . $qry_thisyear->change . "</td>\n";
    #TARGET THIS YEAR
    $qry_thisyear->target = round($qry_thisyear->spiders / ($datearray1['yday'] + 1 - $diffdayofyear) * 365);
    if ($lastyearspiders != 0) {
        $pt = round(100 * ($qry_thisyear->target / ($lastyearspiders * (365 / $lastyeardays))) - 100);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_thisyear->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_thisyear->target . $qry_thisyear->added . "</td>\n";
    #LAST MONTH
    $lastmonthspiders = get_option("statpress_archive_lastmonth_spiders");
    if ($lastmonthvisitors != 0) {
        print "<td>" . $lastmonthspiders . "</td>\n";
    }
    #THIS MONTH
    $prec = $qry_lmonth->spiders;
    $qry_tmonth = $wpdb->get_row("\r\nSELECT count(date) as spiders\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider!=''\r\nAND date LIKE '" . $thismonth . "%'{$normallimit}\r\n        ");
    if ($lastmonthspiders != 0) {
        $pc = round(100 * ($qry_tmonth->spiders / $lastmonthspiders) - 100);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->spiders . $qry_tmonth->change . "</td>\n";
    #TARGET THIS MONTH
    $qry_tmonth->target = round($qry_tmonth->spiders / ($datearray1['mday'] - $diffdayofmonth) * 30);
    if ($lastmonthspiders != 0) {
        $pt = round(100 * ($qry_tmonth->target / $lastmonthspiders) - 100);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    #YESTERDAY
    print "<td>" . get_option("statpress_archive_yesterday_spiders") . "</td>\n";
    #TODAY
    $qry_t = $wpdb->get_row("\r\nSELECT count(date) as spiders\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider!=''\r\nAND date = '{$today}'{$normallimit}\r\n        ");
    print "<td>" . $qry_t->spiders . "</td>\n";
    print "</tr>";
    ################################################################################################
    # FEEDS ROW
    print "<tr><td><div style='background:{$rss_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Feeds', 'statpresscn') . "</td>";
    #TOTAL
    $totalfeeds = $wpdb->get_var("\r\nSELECT count(date) as feeds\r\nFROM {$table_name}\r\nWHERE feed!=''{$normallimit}\r\n        ");
    print "<td>" . $totalfeeds . "</td>\n";
    #LAST YEAR
    $lastyearfeeds = get_option("statpress_archive_lastyear_feeds");
    if ($lastyearvisitors != 0) {
        print "<td>" . $lastyearfeeds . "</td>\n";
    }
    #THIS YEAR
    $qry_thisyear = $wpdb->get_row("\r\nSELECT count(date) as feeds\r\nFROM {$table_name}\r\nWHERE feed!=''\r\nAND date LIKE '" . $thisyear . "%'{$normallimit}\r\n        ");
    if ($lastyearfeeds != 0) {
        $pc = round(100 * ($qry_thisyear->feeds / $lastyearfeeds) - 100);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_thisyear->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_thisyear->feeds . $qry_thisyear->change . "</td>\n";
    #TARGET THIS YEAR
    $qry_thisyear->target = round($qry_thisyear->feeds / ($datearray1['yday'] + 1 - $diffdayofyear) * 365);
    if ($lastyearfeeds != 0) {
        $pt = round(100 * ($qry_thisyear->target / ($lastyearfeeds * (365 / $lastyeardays))) - 100);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_thisyear->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_thisyear->target . $qry_thisyear->added . "</td>\n";
    #LAST MONTH
    $lastmonthfeeds = get_option("statpress_archive_lastmonth_feeds");
    if ($lastmonthvisitors != 0) {
        print "<td>" . $lastmonthfeeds . "</td>\n";
    }
    #THIS MONTH
    $qry_tmonth = $wpdb->get_row("\r\nSELECT count(date) as feeds\r\nFROM {$table_name}\r\nWHERE feed!=''\r\nAND date LIKE '" . $thismonth . "%'{$normallimit}\r\n        ");
    if ($lastmonthfeeds != 0) {
        $pc = round(100 * ($qry_tmonth->feeds / $lastmonthfeeds) - 100);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->feeds . $qry_tmonth->change . "</td>\n";
    #TARGET THIS MONTH
    $qry_tmonth->target = round($qry_tmonth->feeds / ($datearray1['mday'] - $diffdayofmonth) * 30);
    if ($lastmonthfeeds != 0) {
        $pt = round(100 * ($qry_tmonth->target / $lastmonthfeeds) - 100);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    #YESTERDAY
    print "<td>" . get_option("statpress_archive_yesterday_feeds") . "</td>\n";
    $qry_t = $wpdb->get_row("\r\nSELECT count(date) as feeds\r\nFROM {$table_name}\r\nWHERE feed!=''\r\nAND date = '{$today}'{$normallimit}\r\n        ");
    print "<td>" . $qry_t->feeds . "</td>\n";
    print "</tr></table><br />\n\n";
    ################################################################################################
    ################################################################################################
    # THE GRAPHS
    # last "N" days graph  NEW
    $gdays = get_option('statpress_daysinoverviewgraph');
    if ($gdays == 0) {
        $gdays = 20;
    }
    //	$start_of_week = get_settings('start_of_week');
    $start_of_week = get_option('start_of_week');
    print '<table width="100%" border="0"><tr>';
    $qry = $wpdb->get_row("\r\nSELECT count(date) as pageview, date\r\nFROM {$table_name}\r\nGROUP BY date HAVING date >= '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gdays) . "'\r\nORDER BY pageview DESC\r\nLIMIT 1\r\n");
    $maxxday = $qry->pageview;
    if ($maxxday == 0) {
        $maxxday = 1;
    }
    # Y
    $gd = 90 / $gdays . '%';
    for ($gg = $gdays - 1; $gg >= 0; $gg--) {
        #TOTAL VISITORS
        $qry_visitors = $wpdb->get_row("\r\nSELECT count(DISTINCT ip) AS total\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider=''\r\nAND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\r\n" . $normallimit);
        $px_visitors = round($qry_visitors->total * 100 / $maxxday);
        #TOTAL PAGEVIEWS (we do not delete the uniques, this is falsing the info.. uniques are not different visitors!)
        $qry_pageviews = $wpdb->get_row("\r\nSELECT count(date) as total\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider=''\r\nAND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\r\n" . $normallimit);
        $px_pageviews = round($qry_pageviews->total * 100 / $maxxday);
        #TOTAL SPIDERS
        $qry_spiders = $wpdb->get_row("\r\nSELECT count(ip) AS total\r\nFROM {$table_name}\r\nWHERE feed=''\r\nAND spider!=''\r\nAND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\r\n");
        $px_spiders = round($qry_spiders->total * 100 / $maxxday);
        #TOTAL FEEDS
        $qry_feeds = $wpdb->get_row("\r\nSELECT count(ip) AS total\r\nFROM {$table_name}\r\nWHERE feed!=''\r\nAND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\r\n");
        $px_feeds = round($qry_feeds->total * 100 / $maxxday);
        $px_white = 100 - $px_feeds - $px_spiders - $px_pageviews - $px_visitors;
        print '<td width="' . $gd . '" valign="bottom"';
        if ($start_of_week == gmdate('w', current_time('timestamp') - 86400 * $gg)) {
            print ' style="border-left:2px dotted gray;"';
        }
        # week-cut
        print "><div style='float:left;height: 100%;width:100%;font-family:Helvetica;font-size:7pt;text-align:center;border-right:1px solid white;color:black;'>\r\n<div style='background:#ffffff;width:100%;height:" . $px_white . "px;'></div>\r\n<div style='background:{$unique_color};width:100%;height:" . $px_visitors . "px;' title='" . $qry_visitors->total . " visitors'></div>\r\n<div style='background:{$web_color};width:100%;height:" . $px_pageviews . "px;' title='" . $qry_pageviews->total . " pageviews'></div>\r\n<div style='background:{$spider_color};width:100%;height:" . $px_spiders . "px;' title='" . $qry_spiders->total . " spiders'></div>\r\n<div style='background:{$rss_color};width:100%;height:" . $px_feeds . "px;' title='" . $qry_feeds->total . " feeds'></div>\r\n<div style='background:gray;width:100%;height:1px;'></div>\r\n<br />" . gmdate('d', current_time('timestamp') - 86400 * $gg) . ' ' . gmdate('M', current_time('timestamp') - 86400 * $gg) . "</div></td>\n";
    }
    print '</tr></table>';
    print '</div>';
    # END OF OVERVIEW
    ####################################################################################################
    function heart5_short_date($datestr)
    {
        return substr($datestr, 4, 2) . "-" . substr($datestr, 6, 2);
    }
    $querylimit = "LIMIT 15";
    # Tabella Last hits
    print "<div class='wrap'><h2>" . __('Last hits', 'statpresscn') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Time', 'statpresscn') . "</th><th scope='col'>" . __("IP|Visitor", "statpresscn") . "</th><th scope='col'>" . __('From', 'statpresscn') . "</th><th scope='col'>" . __('Page', 'statpresscn') . "</th><th scope='col'>" . __('OS', 'statpresscn') . "</th><th scope='col'>" . __('Browser', 'statpresscn') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    #通过os和feed字段判断是否显示最后浏览信息,。os<>'' OR feed<>''
    if (strlen(get_option('statpress_ipsearchtools')) == 0) {
        update_option('statpress_ipsearchtools', 'http://en.utrace.de/?query=');
    }
    $ipsearchtools = get_option('statpress_ipsearchtools');
    $fivesdrafts = $wpdb->get_results("SELECT * FROM {$table_name} WHERE (feed=''){$normallimit} order by id DESC {$querylimit}");
    foreach ($fivesdrafts as $fivesdraft) {
        print "<tr>";
        //        print "<td>". irihdate($fivesdraft->date) ."</td>";
        print "<td>" . heart5_short_date($fivesdraft->date) . " " . $fivesdraft->time . "</td>";
        if (strlen($fivesdraft->user) > 0) {
            print "<td>" . $fivesdraft->user . "</td>";
        } else {
            print "<td><a href=" . $ipsearchtools . $fivesdraft->ip . " target=_heart5>" . $fivesdraft->ip . "</a></td>";
        }
        print "<td>" . $fivesdraft->nation . "</td>";
        print "<td><a href=" . heart5_config_url($fivesdraft->urlrequested) . " target='statpresscn'>" . iri_StatPress_Abbrevia(urldecode(iri_StatPress_Decode($fivesdraft->urlrequested)), 35) . "</a></td>";
        print "<td>" . $fivesdraft->os . "</td>";
        print "<td>" . $fivesdraft->browser . "</td>";
        print "</tr>";
    }
    print "</table></div>";
    # Last Search terms
    print "<div class='wrap'><h2>" . __('Last search terms', 'statpresscn') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Time', 'statpresscn') . "</th><th scope='col'>" . __("IP|Visitor", "statpresscn") . "</th><th scope='col'>" . __('Terms', 'statpresscn') . "</th><th scope='col'>" . __('Engine', 'statpresscn') . "</th><th scope='col'>" . __('Result', 'statpresscn') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,ip,referrer,urlrequested,search,searchengine,user FROM {$table_name} WHERE search!=''{$normallimit} ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . heart5_short_date($rk->date) . " " . $rk->time . "</td>";
        if (strlen($rk->user) > 0) {
            print "<td>" . $rk->user . "</td>";
        } else {
            print "<td><a href=" . $ipsearchtools . $rk->ip . " target=_heart5>" . $rk->ip . "</a></td>";
        }
        print "<td><a href='" . $rk->referrer . "' target=_statpresscn>" . $rk->search . "</a></td><td>" . $rk->searchengine . "</td><td><a href='" . heart5_config_url($rk->urlrequested) . "' target=_statpresscn>" . __('page viewed', 'statpresscn') . "</a></td></tr>\n";
    }
    print "</table></div>";
    # Referrer
    print "<div class='wrap'><h2>" . __('Last referrers', 'statpresscn') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Time', 'statpresscn') . "</th><th scope='col'>" . __("IP|Visitor", "statpresscn") . "</th><th scope='col'>" . __('URL', 'statpresscn') . "</th><th scope='col'>" . __('Result', 'statpresscn') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    #增加对feed的判断,应该为空
    $qry = $wpdb->get_results("SELECT date,time,ip,referrer,urlrequested,user FROM {$table_name} WHERE ((referrer NOT LIKE '" . get_option('home') . "%') AND (referrer !='') AND (searchengine='') AND (feed='')){$normallimit} ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . heart5_short_date($rk->date) . " " . $rk->time . "</td>";
        if (strlen($rk->user) > 0) {
            print "<td>" . $rk->user . "</td>";
        } else {
            print "<td><a href=" . $ipsearchtools . $rk->ip . " target=_heart5>" . $rk->ip . "</a></td>";
        }
        print "<td><a href='" . $rk->referrer . "' target=_statpresscn>" . iri_StatPress_Abbrevia($rk->referrer, 50) . "</a></td><td><a href='" . heart5_config_url($rk->urlrequested) . "' target=_statpresscn>" . __('page viewed', 'statpresscn') . "</a></td></tr>\n";
    }
    print "</table></div>";
    # Last feed
    print "<div class='wrap'><h2>" . __('Last feed', 'statpresscn') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Time', 'statpresscn') . "</th><th scope='col'>" . __('IP|Visitor', 'statpresscn') . "</th><th scope='col'>" . __('OS', 'statpresscn') . "</th><th scope='col'>" . __('Browser', 'statpresscn') . "</th><th scope='col'>" . __('page viewed', 'statpresscn') . "</th><th scope='col'>" . __('Feeds', 'statpresscn') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT * FROM {$table_name} WHERE (feed!='' and spider ='' and os !='' and browser!='') ORDER BY id DESC {$querylimit}");
    $qry = $wpdb->get_results("SELECT * FROM {$table_name} WHERE feed!='' ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . heart5_short_date($rk->date) . " " . $rk->time . "</td>";
        if (strlen($rk->user) > 0) {
            print "<td>" . $rk->user . "</td>";
        } else {
            print "<td><a href=" . $ipsearchtools . $rk->ip . " target=_heart5>" . $rk->ip . "</a></td>";
        }
        print "<td>" . $rk->os . "</td><td>" . $rk->browser . "</td><td>" . $rk->urlrequested . "</td><td> " . $rk->feed . "</td></tr>\n";
    }
    print "</table></div>";
    # Last Agents
    print "<div class='wrap'><h2>" . __('Last agents', 'statpresscn') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Time', 'statpresscn') . "</th><th scope='col'>" . __('IP|Visitor', 'statpresscn') . "</th><th scope='col'>" . __('From', 'statpresscn') . "</th><th scope='col'>" . __('Agent', 'statpresscn') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,ip,nation,agent,os,browser,spider,user FROM {$table_name} WHERE (agent !='' and feed='') ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . heart5_short_date($rk->date) . " " . $rk->time . "</td>";
        if (strlen($rk->user) > 0) {
            print "<td>" . $rk->user . "</td>";
        } else {
            print "<td><a href=" . $ipsearchtools . $rk->ip . " target=_heart5>" . $rk->ip . "</a></td>";
        }
        print "<td>" . $rk->nation . "</td><td>" . $rk->agent . "</td></tr>\n";
    }
    print "</table></div>";
    heart5_print_spc_footer();
}
Example #3
0
function iriStatPressMain()
{
    global $wpdb;
    $table_name = $wpdb->prefix . "statpress";
    // OVERVIEW table
    $unique_color = "#114477";
    $web_color = "#3377B6";
    $rss_color = "#f38f36";
    $spider_color = "#83b4d8";
    $lastmonth = iri_StatPress_lastmonth();
    $thismonth = gmdate('Ym', current_time('timestamp'));
    $yesterday = gmdate('Ymd', current_time('timestamp') - 86400);
    $today = gmdate('Ymd', current_time('timestamp'));
    $tlm[0] = my_substr($lastmonth, 0, 4);
    $tlm[1] = my_substr($lastmonth, 4, 2);
    print "<div class='wrap'><h2>" . __('Overview', 'statpress') . "</h2>";
    print "<table class='widefat'><thead><tr>\n\t<th scope='col'></th>\n\t<th scope='col'>" . __('Total', 'statpress') . "</th>\n\t<th scope='col'>" . __('Last month', 'statpress') . "<br /><font size=1>" . gmdate('M, Y', gmmktime(0, 0, 0, $tlm[1], 1, $tlm[0])) . "</font></th>\n\t<th scope='col'>" . __('This month', 'statpress') . "<br /><font size=1>" . gmdate('M, Y', current_time('timestamp')) . "</font></th>\n\t<th scope='col'>" . __('Target This month', 'statpress') . "<br /><font size=1>" . gmdate('M, Y', current_time('timestamp')) . "</font></th>\n\t<th scope='col'>" . __('Yesterday', 'statpress') . "<br /><font size=1>" . gmdate('d M, Y', current_time('timestamp') - 86400) . "</font></th>\n\t<th scope='col'>" . __('Today', 'statpress') . "<br /><font size=1>" . gmdate('d M, Y', current_time('timestamp')) . "</font></th>\n\t</tr></thead>\n\t<tbody id='the-list'>";
    //###############################################################################################
    // VISITORS ROW
    print "<tr><td><div style='background:{$unique_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Visitors', 'statpress') . "</td>";
    //TOTAL
    $qry_total = $wpdb->get_row("SELECT count(DISTINCT ip) AS visitors\n                                       FROM {$table_name}\n                                       WHERE feed='' AND spider='' AND ip IS NOT NULL ");
    print "<td>" . $qry_total->visitors . "</td>\n";
    //LAST MONTH
    $qry_lmonth = $wpdb->get_row("SELECT count(DISTINCT ip) AS visitors\n                                        FROM {$table_name}\n                                        WHERE feed='' AND spider=''  AND ip IS NOT NULL AND date LIKE '" . mysql_real_escape_string($lastmonth) . "%'");
    print "<td>" . $qry_lmonth->visitors . "</td>\n";
    //THIS MONTH
    $qry_tmonth = $wpdb->get_row("SELECT count(DISTINCT ip) AS visitors\n                                        FROM {$table_name}\n                                        WHERE feed='' AND spider=''  AND ip IS NOT NULL AND date LIKE '" . mysql_real_escape_string($thismonth) . "%'");
    if ($qry_lmonth->visitors != 0) {
        $pc = round(100 * ($qry_tmonth->visitors / $qry_lmonth->visitors) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->visitors . $qry_tmonth->change . "</td>\n";
    //TARGET
    $tmonthtarget = round($qry_tmonth->visitors / (time() - mktime(0, 0, 0, date('m'), date('1'), date('Y'))) * (86400 * date('t')));
    if ($qry_lmonth->visitors != 0) {
        $pt = round(100 * ($tmonthtarget / $qry_lmonth->visitors) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $tmonthadded = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $tmonthtarget . $tmonthadded . "</td>\n";
    //YESTERDAY
    $qry_y = $wpdb->get_row("SELECT count(DISTINCT ip) AS visitors\n                                   FROM {$table_name}\n                                   WHERE feed='' AND spider=''  AND ip IS NOT NULL AND date = '" . mysql_real_escape_string($yesterday) . "'");
    print "<td>" . $qry_y->visitors . "</td>\n";
    //TODAY
    $qry_t = $wpdb->get_row("SELECT count(DISTINCT ip) AS visitors\n                                   FROM {$table_name}\n                                   WHERE feed='' AND spider=''  AND ip IS NOT NULL AND date = '" . mysql_real_escape_string($today) . "'");
    print "<td>" . $qry_t->visitors . "</td>\n";
    print "</tr>";
    //###############################################################################################
    // PAGEVIEWS ROW
    print "<tr><td><div style='background:{$web_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Pageviews', 'statpress') . "</td>";
    //TOTAL
    $qry_total = $wpdb->get_row("SELECT count(ip) as pageview\n                                       FROM {$table_name}\n                                       WHERE feed='' AND spider='' AND ip IS NOT NULL ");
    print "<td>" . $qry_total->pageview . "</td>\n";
    //LAST MONTH
    $prec = 0;
    $qry_lmonth = $wpdb->get_row("SELECT count(ip) as pageview\n                                        FROM {$table_name}\n                                        WHERE feed='' AND spider='' AND ip IS NOT NULL AND date LIKE '" . mysql_real_escape_string($lastmonth) . "%'");
    print "<td>" . $qry_lmonth->pageview . "</td>\n";
    //THIS MONTH
    $qry_tmonth = $wpdb->get_row("SELECT count(ip) as pageview\n                                        FROM {$table_name}\n                                        WHERE feed='' AND spider='' AND ip IS NOT NULL AND date LIKE '" . mysql_real_escape_string($thismonth) . "%'");
    if ($qry_lmonth->pageview != 0) {
        $pc = round(100 * ($qry_tmonth->pageview / $qry_lmonth->pageview) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->pageview . $qry_tmonth->change . "</td>\n";
    //TARGET
    $qry_tmonth->target = round($qry_tmonth->pageview / (time() - mktime(0, 0, 0, date('m'), date('1'), date('Y'))) * (86400 * date('t')));
    if ($qry_lmonth->pageview != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->pageview) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    //YESTERDAY
    $qry_y = $wpdb->get_row("SELECT count(ip) as pageview\n                                   FROM {$table_name}\n                                   WHERE feed='' AND spider='' AND ip IS NOT NULL AND date = '" . mysql_real_escape_string($yesterday) . "'");
    print "<td>" . $qry_y->pageview . "</td>\n";
    //TODAY
    $qry_t = $wpdb->get_row("SELECT count(ip) as pageview\n                                   FROM {$table_name}\n                                   WHERE feed='' AND spider='' AND ip IS NOT NULL AND date = '" . mysql_real_escape_string($today) . "'");
    print "<td>" . $qry_t->pageview . "</td>\n";
    print "</tr>";
    //###############################################################################################
    // SPIDERS ROW
    print "<tr><td><div style='background:{$spider_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Spiders', 'statpress') . "</td>";
    //TOTAL
    $qry_total = $wpdb->get_row("SELECT count(ip) as spiders\n                                       FROM {$table_name}\n                                       WHERE feed='' AND spider<>'' AND ip IS NOT NULL ");
    print "<td>" . $qry_total->spiders . "</td>\n";
    //LAST MONTH
    $prec = 0;
    $qry_lmonth = $wpdb->get_row("SELECT count(ip) as spiders\n                                        FROM {$table_name}\n                                        WHERE feed='' AND spider<>'' AND ip IS NOT NULL AND date LIKE '" . mysql_real_escape_string($lastmonth) . "%'");
    print "<td>" . $qry_lmonth->spiders . "</td>\n";
    //THIS MONTH
    $prec = $qry_lmonth->spiders;
    $qry_tmonth = $wpdb->get_row("SELECT count(ip) as spiders\n                                        FROM {$table_name}\n                                        WHERE feed='' AND spider<>'' AND ip IS NOT NULL AND date LIKE '" . mysql_real_escape_string($thismonth) . "%'");
    if ($qry_lmonth->spiders != 0) {
        $pc = round(100 * ($qry_tmonth->spiders / $qry_lmonth->spiders) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->spiders . $qry_tmonth->change . "</td>\n";
    //TARGET
    $qry_tmonth->target = round($qry_tmonth->spiders / (time() - mktime(0, 0, 0, date('m'), date('1'), date('Y'))) * (86400 * date('t')));
    if ($qry_lmonth->spiders != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->spiders) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    //YESTERDAY
    $qry_y = $wpdb->get_row("SELECT count(ip) as spiders\n                                   FROM {$table_name}\n                                   WHERE feed='' AND spider<>''  AND ip IS NOT NULL AND date = '" . mysql_real_escape_string($yesterday) . "'");
    print "<td>" . $qry_y->spiders . "</td>\n";
    //TODAY
    $qry_t = $wpdb->get_row("SELECT count(ip) as spiders\n                                   FROM {$table_name}\n                                   WHERE feed='' AND spider<>''  AND ip IS NOT NULL AND date = '" . mysql_real_escape_string($today) . "'");
    print "<td>" . $qry_t->spiders . "</td>\n";
    print "</tr>";
    //###############################################################################################
    // FEEDS ROW
    print "<tr><td><div style='background:{$rss_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Feeds', 'statpress') . "</td>";
    //TOTAL
    $qry_total = $wpdb->get_row("SELECT count(ip) as feeds\n                                       FROM {$table_name}\n                                       WHERE feed<>'' AND spider='' AND ip IS NOT NULL ");
    print "<td>" . $qry_total->feeds . "</td>\n";
    //LAST MONTH
    $qry_lmonth = $wpdb->get_row("SELECT count(ip) as feeds\n                                        FROM {$table_name}\n                                        WHERE feed<>'' AND spider=''  AND ip IS NOT NULL AND date LIKE '" . mysql_real_escape_string($lastmonth) . "%'");
    print "<td>" . $qry_lmonth->feeds . "</td>\n";
    //THIS MONTH
    $qry_tmonth = $wpdb->get_row("SELECT count(ip) as feeds\n                                        FROM {$table_name}\n                                        WHERE feed<>'' AND spider=''  AND ip IS NOT NULL AND date LIKE '" . mysql_real_escape_string($thismonth) . "%'");
    if ($qry_lmonth->feeds != 0) {
        $pc = round(100 * ($qry_tmonth->feeds / $qry_lmonth->feeds) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->feeds . $qry_tmonth->change . "</td>\n";
    //TARGET
    $qry_tmonth->target = round($qry_tmonth->feeds / (time() - mktime(0, 0, 0, date('m'), date('1'), date('Y'))) * (86400 * date('t')));
    if ($qry_lmonth->feeds != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->feeds) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    $qry_y = $wpdb->get_row("SELECT count(ip) as feeds\n                                   FROM {$table_name}\n                                   WHERE feed<>'' AND spider=''  AND ip IS NOT NULL AND date = '" . mysql_real_escape_string($yesterday) . "'");
    print "<td>" . $qry_y->feeds . "</td>\n";
    $qry_t = $wpdb->get_row("SELECT count(ip) as feeds\n                                   FROM {$table_name}\n                                   WHERE feed<>'' AND spider=''  AND ip IS NOT NULL AND date = '" . mysql_real_escape_string($today) . "'");
    print "<td>" . $qry_t->feeds . "</td>\n";
    print "</tr></table><br />\n\n";
    //###############################################################################################
    //###############################################################################################
    // THE GRAPHS
    // last "N" days graph  NEW
    $graphdays = get_option('statpress_daysinoverviewgraph');
    if ($graphdays == 0) {
        $graphdays = 7;
    }
    if (isset($_GET['pp'])) {
        // Get Current page from URL
        $pagePeriode = $_GET['pp'];
        if ($pagePeriode <= 0) {
            // Page is less than 0 then set it to 1
            $pagePeriode = 1;
        }
    } else {
        // URL does not show the page set it to 1
        $pagePeriode = 1;
    }
    // selection of the older day with real visit
    $strqry = "SELECT date FROM {$table_name} WHERE (IP IS NOT NULL) GROUP BY date ORDER BY date ASC LIMIT 1";
    $query = $wpdb->get_row($strqry);
    $old_date = $query->date;
    if (isset($old_date)) {
        $nbjours = ceil((current_time('timestamp') - strtotime($old_date)) / 86400);
    } else {
        $nbjours = 0;
    }
    $NumberOfPagesPeriode = $nbjours / $graphdays;
    $LimitValue = $pagePeriode * $graphdays - $graphdays;
    $limitdate = gmdate('Ymd', current_time('timestamp') - 86400 * $graphdays * $pagePeriode + 86400);
    $currentdate = gmdate('Ymd', current_time('timestamp') - 86400 * $graphdays * ($pagePeriode - 1));
    $start_of_week = get_option('start_of_week');
    luc_Verify_continuity($graphdays, $pagePeriode, $limitdate, $currentdate);
    // Verify continuity of days in the database
    print "Period of days : ";
    luc_printperiodelink($NumberOfPagesPeriode, $pagePeriode, "overview");
    $qry = $wpdb->get_row("SELECT count(ip) AS pageview\n            FROM {$table_name}\n\t\t\tWHERE ip IS NOT NULL AND date BETWEEN {$limitdate} AND {$currentdate}\n            GROUP BY date \n            ORDER BY pageview DESC LIMIT 1 ");
    $maxxday = $qry->pageview;
    if ($maxxday == 0) {
        $maxxday = 1;
    }
    $day0visit = "SELECT 0 AS total, date\n\t                     FROM {$table_name} \n\t                     WHERE date BETWEEN {$limitdate} AND {$currentdate}";
    // set of all days with 0 visit
    //TOTAL VISITORS
    $qry_visitors = $wpdb->get_results(" SELECT total AS totalvisitors, date\n\t        FROM ((SELECT count(DISTINCT ip) AS total, date \n\t               FROM {$table_name} \n\t               WHERE feed='' AND spider='' AND date BETWEEN {$limitdate} AND {$currentdate}\n                   GROUP BY date )\n\t        UNION (" . $day0visit . ")\n\t\t\t\t  ) visitor \n\t        GROUP BY date ");
    // return 0 if 0 visit else real totalvisitors
    $i = 0;
    foreach ($qry_visitors as $qry) {
        $visitors[$i] = $qry->totalvisitors;
        $totalvisitors += $visitors[$i];
        $px_visitors[$i] = round($visitors[$i] * 100 / $maxxday);
        $px_white[$i] = 130 - $px_visitors[$i];
        $i++;
    }
    //TOTAL PAGEVIEWS (we do not delete the uniques, this is falsing the info.. uniques are not different visitors!)
    $qry_pageviews = $wpdb->get_results(" SELECT total AS totalpageviews, date\n\t        FROM ((SELECT count(ip) AS total, date \n\t               FROM {$table_name} \n\t               WHERE feed='' AND spider='' AND date BETWEEN {$limitdate} AND {$currentdate}\n                   GROUP BY date )\n\t        UNION (" . $day0visit . ")\n\t\t\t      ) pageviews\n\t        GROUP BY date ");
    $i = 0;
    foreach ($qry_pageviews as $qry) {
        $pageviews[$i] = $qry->totalpageviews;
        $totalpageviews += $pageviews[$i];
        $px_pageviews[$i] = round($pageviews[$i] * 100 / $maxxday);
        $px_white[$i] -= $px_pageviews[$i];
        $i++;
    }
    //TOTAL SPIDERS
    $qry_spiders = $wpdb->get_results(" SELECT total AS totalspiders, date\n\t        FROM ((SELECT count(ip) AS total, date \n\t               FROM {$table_name} \n\t               WHERE spider<>'' AND feed='' AND date BETWEEN {$limitdate} AND {$currentdate}\n                   GROUP BY date )\n\t        UNION (" . $day0visit . ")\n\t             ) spiders\n\t        GROUP BY date ");
    $i = 0;
    foreach ($qry_spiders as $qry) {
        $spiders[$i] = $qry->totalspiders;
        $totalspiders += $spiders[$i];
        $px_spiders[$i] = round($spiders[$i] * 100 / $maxxday);
        $px_white[$i] -= $px_spiders[$i];
        $i++;
    }
    //TOTAL FEEDS
    $qry_feeds = $wpdb->get_results(" SELECT total AS totalfeeds, date\n\t        FROM ((SELECT count(ip) AS total, date \n\t               FROM {$table_name} \n\t               WHERE feed<>'' AND spider='' AND date BETWEEN {$limitdate} AND {$currentdate}\n                   GROUP BY date )\n\t        UNION (" . $day0visit . ")\n\t              ) feeds\n\t        GROUP BY date ");
    $i = 0;
    foreach ($qry_feeds as $qry) {
        $feeds[$i] = $qry->totalfeeds;
        $totalfeeds += $feeds[$i];
        $px_feeds[$i] = round($feeds[$i] * 100 / $maxxday);
        $px_white[$i] -= $px_feeds[$i];
        $i++;
    }
    print '<table width="100%" border="0"><tr></tr></table>';
    print "Average : " . round($totalvisitors / $graphdays, 1) . " Visitors,";
    print "   " . round($totalpageviews / $graphdays, 1) . " Pageviews,";
    print "   " . round($totalspiders / $graphdays, 1) . " Spiders,";
    print "   " . round($totalfeeds / $graphdays, 1) . " Feeds  by day";
    print '<table width="100%" border="0"><tr>';
    // Y
    $gd = 90 / $graphdays . '%';
    for ($i = 0; $i < $graphdays; $i++) {
        print '<td width="' . $gd . '" valign="bottom"';
        if ($start_of_week == gmdate('w', current_time('timestamp') - 86400 * ($graphdays * $pagePeriode - $i - 1))) {
            // week-cut
            print ' style="border-left:2px dotted gray;"';
        }
        print "><div style='float:left;height: 100%;width:100%;font-family:Helvetica;font-size:7pt;text-align:center;border-right:1px solid white;color:black;'>\n                  <div style='background:#ffffff;width:100%;height:" . $px_white[$i] . "px;'></div>\n                  <div style='background:{$unique_color};width:100%;height:" . $px_visitors[$i] . "px;' title='" . $visitors[$i] . " " . __('visitors', 'statpress') . "'></div>\n                  <div style='background:{$web_color};width:100%;height:" . $px_pageviews[$i] . "px;' title='" . $pageviews[$i] . " " . __('pageviews', 'statpress') . "'></div>\n                  <div style='background:{$spider_color};width:100%;height:" . $px_spiders[$i] . "px;' title='" . $spiders[$i] . " " . __('spiders', 'statpress') . "'></div>\n                  <div style='background:{$rss_color};width:100%;height:" . $px_feeds[$i] . "px;' title='" . $feeds[$i] . " " . __('feeds', 'statpress') . "'></div>\n                  <div style='background:gray;width:100%;height:1px;'></div>\n                  <br />" . gmdate('d', current_time('timestamp') - 86400 * ($graphdays * $pagePeriode - $i - 1)) . ' ' . gmdate('M', current_time('timestamp') - 86400 * ($graphdays * $pagePeriode - $i - 1)) . "</div></td>\n";
    }
    print '</tr></table>';
    print '</div>';
    // END OF OVERVIEW
    //###################################################################################################
    $querylimit = "LIMIT 20";
    // Tabella Last hits
    print "<div class='wrap'><h2>" . __('Last hits', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('IP', 'statpress') . "</th><th scope='col'>" . __('Threat', 'statpress') . "</th><th scope='col'>" . __('Domain', 'statpress') . "</th><th scope='col'>" . __('Page', 'statpress') . "</th><th scope='col'>" . __('OS', 'statpress') . "</th><th scope='col'>" . __('Browser', 'statpress') . "</th><th scope='col'>" . __('Feed', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $fivesdrafts = $wpdb->get_results("SELECT * FROM {$table_name} WHERE (os<>'' OR feed<>'')  AND ip IS NOT NULL order by id DESC {$querylimit}");
    foreach ($fivesdrafts as $fivesdraft) {
        print "<tr>";
        print "<td>" . irihdate($fivesdraft->date) . "</td>";
        print "<td>" . $fivesdraft->time . "</td>";
        print "<td>" . $fivesdraft->ip . "</td>";
        print "<td>" . $fivesdraft->threat_score;
        if ($fivesdraft->threat_score > 0) {
            print "/";
            if ($fivesdraft->threat_type == 0) {
                print "Sp";
            } else {
                if (($fivesdraft->threat_type & 1) == 1) {
                    print "S";
                }
                // Suspicious
                if (($fivesdraft->threat_type & 2) == 2) {
                    print "H";
                }
                // Harvester
                if (($fivesdraft->threat_type & 4) == 4) {
                    print "C";
                }
                // Comment spammer
            }
        }
        print "<td>" . $fivesdraft->nation . "</td>";
        print "<td>" . iri_StatPress_Abbrevia(iri_StatPress_Decode($fivesdraft->urlrequested), 30) . "</td>";
        print "<td>" . $fivesdraft->os . "</td>";
        print "<td>" . $fivesdraft->browser . "</td>";
        print "<td>" . $fivesdraft->feed . "</td>";
        print "</tr>";
    }
    print "</table></div>";
    // Last Search terms
    print "<div class='wrap'><h2>" . __('Last search terms', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('Terms', 'statpress') . "</th><th scope='col'>" . __('Engine', 'statpress') . "</th><th scope='col'>" . __('Result', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,referrer,urlrequested,search,searchengine FROM {$table_name} WHERE search<>''  AND ip IS NOT NULL ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td><a href='" . $rk->referrer . "'>" . urldecode($rk->search) . "</a></td><td>" . $rk->searchengine . "</td><td><a href='" . irigetblogurl() . (strpos($rk->urlrequested, 'index.php') === FALSE ? $rk->urlrequested : '') . "'>" . __('page viewed', 'statpress') . "</a></td></tr>\n";
    }
    print "</table></div>";
    // Referrer
    print "<div class='wrap'><h2>" . __('Last referrers', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('URL', 'statpress') . "</th><th scope='col'>" . __('Result', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,referrer,urlrequested FROM {$table_name} WHERE ((referrer NOT LIKE '" . get_option('home') . "%') AND (referrer <>'') AND (searchengine='') AND ip IS NOT NULL ) ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td><a href='" . $rk->referrer . "'>" . iri_StatPress_Abbrevia($rk->referrer, 80) . "</a></td><td><a href='" . irigetblogurl() . (strpos($rk->urlrequested, 'index.php') === FALSE ? $rk->urlrequested : '') . "'>" . __('page viewed', 'statpress') . "</a></td></tr>\n";
    }
    print "</table></div>";
    // Last pages
    print "<div class='wrap'><h2>" . __('Last pages', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('Page', 'statpress') . "</th><th scope='col'>" . __('What', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,urlrequested,os,browser,spider FROM {$table_name} WHERE spider='' AND feed='' AND ip IS NOT NULL ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td>" . iri_StatPress_Abbrevia(iri_StatPress_Decode($rk->urlrequested), 60) . "</td><td> " . $rk->os . " " . $rk->browser . " " . $rk->spider . "</td></tr>\n";
    }
    print "</table></div>";
    // Last Spiders
    print "<div class='wrap'><h2>" . __('Last spiders', 'statpress') . "</h2>";
    print "<table class='widefat'><thead><tr>";
    print "<th scope='col'>" . __('Date', 'statpress') . "</th>";
    print "<th scope='col'>" . __('Time', 'statpress') . "</th>";
    print "<th scope='col'>" . __('Spider', 'statpress') . "</th>";
    print "<th scope='col'>" . __('Page', 'statpress') . "</th>";
    print "<th scope='col'>" . __('Agent', 'statpress') . "</th>";
    print "</tr></thead><tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,agent,spider,urlrequested,agent FROM {$table_name} WHERE spider<>'' AND ip IS NOT NULL  ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td>";
        print "<td>" . $rk->time . "</td>";
        print "<td>" . $rk->spider . "</td>";
        print "<td>" . iri_StatPress_Abbrevia(iri_StatPress_Decode($rk->urlrequested), 30) . "</td>";
        print "<td> " . $rk->agent . "</td></tr>\n";
    }
    print "</table></div>";
    print "<br />";
    print "&nbsp;<i>" . __('StatPress table size', 'statpress') . ": <b>" . iritablesize($wpdb->prefix . "statpress") . "</b></i><br />";
    print "&nbsp;<i>" . __('StatPress current time', 'statpress') . ": <b>" . current_time('mysql') . "</b></i><br />";
    print "&nbsp;<i>" . __('RSS2 url', 'statpress') . ": <b>" . get_bloginfo('rss2_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('rss2_url')) . ")</b></i><br />";
    print "&nbsp;<i>" . __('ATOM url', 'statpress') . ": <b>" . get_bloginfo('atom_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('atom_url')) . ")</b></i><br />";
    print "&nbsp;<i>" . __('RSS url', 'statpress') . ": <b>" . get_bloginfo('rss_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('rss_url')) . ")</b></i><br />";
    print "&nbsp;<i>" . __('COMMENT RSS2 url', 'statpress') . ": <b>" . get_bloginfo('comments_rss2_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('comments_rss2_url')) . ")</b></i><br />";
    print "&nbsp;<i>" . __('COMMENT ATOM url', 'statpress') . ": <b>" . get_bloginfo('comments_atom_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('comments_atom_url')) . ")</b></i><br />";
}
function iriStatPressMain()
{
    global $wpdb;
    $table_name = $wpdb->prefix . "statpress";
    # Tabella OVERVIEW
    $unique_color = "#114477";
    $web_color = "#3377B6";
    $rss_color = "#f38f36";
    $spider_color = "#83b4d8";
    $lastmonth = iri_StatPress_lastmonth();
    $thismonth = gmdate('Ym', current_time('timestamp'));
    $yesterday = gmdate('Ymd', current_time('timestamp') - 86400);
    $today = gmdate('Ymd', current_time('timestamp'));
    $tlm[0] = substr($lastmonth, 0, 4);
    $tlm[1] = substr($lastmonth, 4, 2);
    print "<div class='wrap'><h2>" . __('Overview', 'statpress') . "</h2>";
    print "<table class='widefat'><thead><tr>\n\t<th scope='col'></th>\n\t<th scope='col'>" . __('Total', 'statpress') . "</th>\n\t<th scope='col'>" . __('Last month', 'statpress') . "<br /><font size=1>" . gmdate('M, Y', gmmktime(0, 0, 0, $tlm[1], 1, $tlm[0])) . "</font></th>\n\t<th scope='col'>" . __('This month', 'statpress') . "<br /><font size=1>" . gmdate('M, Y', current_time('timestamp')) . "</font></th>\n\t<th scope='col'>Target " . __('This month', 'statpress') . "<br /><font size=1>" . gmdate('M, Y', current_time('timestamp')) . "</font></th>\n\t<th scope='col'>" . __('Yesterday', 'statpress') . "<br /><font size=1>" . gmdate('d M, Y', current_time('timestamp') - 86400) . "</font></th>\n\t<th scope='col'>" . __('Today', 'statpress') . "<br /><font size=1>" . gmdate('d M, Y', current_time('timestamp')) . "</font></th>\n\t</tr></thead>\n\t<tbody id='the-list'>";
    ################################################################################################
    # VISITORS ROW
    print "<tr><td><div style='background:{$unique_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Visitors', 'statpress') . "</td>";
    #TOTAL
    $qry_total = $wpdb->get_row("\n\t\tSELECT count(DISTINCT ip) AS visitors\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider=''\n\t");
    print "<td>" . $qry_total->visitors . "</td>\n";
    #LAST MONTH
    $qry_lmonth = $wpdb->get_row("\n\t\tSELECT count(DISTINCT ip) AS visitors\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider=''\n\t\tAND date LIKE '" . $lastmonth . "%'\n\t");
    print "<td>" . $qry_lmonth->visitors . "</td>\n";
    #THIS MONTH
    $qry_tmonth = $wpdb->get_row("\n\t\tSELECT count(DISTINCT ip) AS visitors\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider=''\n\t\tAND date LIKE '" . $thismonth . "%'\n\t");
    if ($qry_lmonth->visitors != 0) {
        $pc = round(100 * ($qry_tmonth->visitors / $qry_lmonth->visitors) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->visitors . $qry_tmonth->change . "</td>\n";
    #TARGET
    $qry_tmonth->target = round($qry_tmonth->visitors / date("d", current_time('timestamp')) * 30);
    if ($qry_lmonth->visitors != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->visitors) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    #YESTERDAY
    $qry_y = $wpdb->get_row("\n\t\tSELECT count(DISTINCT ip) AS visitors\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider=''\n\t\tAND date = '{$yesterday}'\n\t");
    print "<td>" . $qry_y->visitors . "</td>\n";
    #TODAY
    $qry_t = $wpdb->get_row("\n\t\tSELECT count(DISTINCT ip) AS visitors\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider=''\n\t\tAND date = '{$today}'\n\t");
    print "<td>" . $qry_t->visitors . "</td>\n";
    print "</tr>";
    ################################################################################################
    # PAGEVIEWS ROW
    print "<tr><td><div style='background:{$web_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Pageviews', 'statpress') . "</td>";
    #TOTAL
    $qry_total = $wpdb->get_row("\n\t\tSELECT count(date) as pageview\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider=''\n\t");
    print "<td>" . $qry_total->pageview . "</td>\n";
    #LAST MONTH
    $prec = 0;
    $qry_lmonth = $wpdb->get_row("\n\t\tSELECT count(date) as pageview\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider=''\n\t\tAND date LIKE '" . $lastmonth . "%'\n\t");
    print "<td>" . $qry_lmonth->pageview . "</td>\n";
    #THIS MONTH
    $qry_tmonth = $wpdb->get_row("\n\t\tSELECT count(date) as pageview\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider=''\n\t\tAND date LIKE '" . $thismonth . "%'\n\t");
    if ($qry_lmonth->pageview != 0) {
        $pc = round(100 * ($qry_tmonth->pageview / $qry_lmonth->pageview) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->pageview . $qry_tmonth->change . "</td>\n";
    #TARGET
    $qry_tmonth->target = round($qry_tmonth->pageview / date("d", current_time('timestamp')) * 30);
    if ($qry_lmonth->pageview != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->pageview) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    #YESTERDAY
    $qry_y = $wpdb->get_row("\n\t\tSELECT count(date) as pageview\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider=''\n\t\tAND date = '{$yesterday}'\n\t");
    print "<td>" . $qry_y->pageview . "</td>\n";
    #TODAY
    $qry_t = $wpdb->get_row("\n\t\tSELECT count(date) as pageview\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider=''\n\t\tAND date = '{$today}'\n\t");
    print "<td>" . $qry_t->pageview . "</td>\n";
    print "</tr>";
    ################################################################################################
    # SPIDERS ROW
    print "<tr><td><div style='background:{$spider_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>Spiders</td>";
    #TOTAL
    $qry_total = $wpdb->get_row("\n\t\tSELECT count(date) as spiders\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider<>''\n\t");
    print "<td>" . $qry_total->spiders . "</td>\n";
    #LAST MONTH
    $prec = 0;
    $qry_lmonth = $wpdb->get_row("\n\t\tSELECT count(date) as spiders\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider<>''\n\t\tAND date LIKE '" . $lastmonth . "%'\n\t");
    print "<td>" . $qry_lmonth->spiders . "</td>\n";
    #THIS MONTH
    $prec = $qry_lmonth->spiders;
    $qry_tmonth = $wpdb->get_row("\n\t\tSELECT count(date) as spiders\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider<>''\n\t\tAND date LIKE '" . $thismonth . "%'\n\t");
    if ($qry_lmonth->spiders != 0) {
        $pc = round(100 * ($qry_tmonth->spiders / $qry_lmonth->spiders) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->spiders . $qry_tmonth->change . "</td>\n";
    #TARGET
    $qry_tmonth->target = round($qry_tmonth->spiders / date("d", current_time('timestamp')) * 30);
    if ($qry_lmonth->spiders != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->spiders) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    #YESTERDAY
    $qry_y = $wpdb->get_row("\n\t\tSELECT count(date) as spiders\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider<>''\n\t\tAND date = '{$yesterday}'\n\t");
    print "<td>" . $qry_y->spiders . "</td>\n";
    #TODAY
    $qry_t = $wpdb->get_row("\n\t\tSELECT count(date) as spiders\n\t\tFROM {$table_name}\n\t\tWHERE feed=''\n\t\tAND spider<>''\n\t\tAND date = '{$today}'\n\t");
    print "<td>" . $qry_t->spiders . "</td>\n";
    print "</tr>";
    ################################################################################################
    # FEEDS ROW
    print "<tr><td><div style='background:{$rss_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>Feeds</td>";
    #TOTAL
    $qry_total = $wpdb->get_row("\n\t\tSELECT count(date) as feeds\n\t\tFROM {$table_name}\n\t\tWHERE feed<>''\n\t\tAND spider=''\n\t");
    print "<td>" . $qry_total->feeds . "</td>\n";
    #LAST MONTH
    $qry_lmonth = $wpdb->get_row("\n\t\tSELECT count(date) as feeds\n\t\tFROM {$table_name}\n\t\tWHERE feed<>''\n\t\tAND spider=''\n\t\tAND date LIKE '" . $lastmonth . "%'\n\t");
    print "<td>" . $qry_lmonth->feeds . "</td>\n";
    #THIS MONTH
    $qry_tmonth = $wpdb->get_row("\n\t\tSELECT count(date) as feeds\n\t\tFROM {$table_name}\n\t\tWHERE feed<>''\n\t\tAND spider=''\n\t\tAND date LIKE '" . $thismonth . "%'\n\t");
    if ($qry_lmonth->feeds != 0) {
        $pc = round(100 * ($qry_tmonth->feeds / $qry_lmonth->feeds) - 100, 1);
        if ($pc >= 0) {
            $pc = "+" . $pc;
        }
        $qry_tmonth->change = "<code> (" . $pc . "%)</code>";
    }
    print "<td>" . $qry_tmonth->feeds . $qry_tmonth->change . "</td>\n";
    #TARGET
    $qry_tmonth->target = round($qry_tmonth->feeds / date("d", current_time('timestamp')) * 30);
    if ($qry_lmonth->feeds != 0) {
        $pt = round(100 * ($qry_tmonth->target / $qry_lmonth->feeds) - 100, 1);
        if ($pt >= 0) {
            $pt = "+" . $pt;
        }
        $qry_tmonth->added = "<code> (" . $pt . "%)</code>";
    }
    print "<td>" . $qry_tmonth->target . $qry_tmonth->added . "</td>\n";
    $qry_y = $wpdb->get_row("\n\t\tSELECT count(date) as feeds\n\t\tFROM {$table_name}\n\t\tWHERE feed<>''\n\t\tAND spider=''\n\t\tAND date = '" . $yesterday . "'\n\t");
    print "<td>" . $qry_y->feeds . "</td>\n";
    $qry_t = $wpdb->get_row("\n\t\tSELECT count(date) as feeds\n\t\tFROM {$table_name}\n\t\tWHERE feed<>''\n\t\tAND spider=''\n\t\tAND date = '{$today}'\n\t");
    print "<td>" . $qry_t->feeds . "</td>\n";
    print "</tr></table><br />\n\n";
    ################################################################################################
    ################################################################################################
    # THE GRAPHS
    # last "N" days graph  NEW
    $gdays = get_option('statpress_daysinoverviewgraph');
    if ($gdays == 0) {
        $gdays = 20;
    }
    //	$start_of_week = get_settings('start_of_week');
    $start_of_week = get_option('start_of_week');
    print '<table width="100%" border="0"><tr>';
    $qry = $wpdb->get_row("\n\t\tSELECT count(date) as pageview, date\n\t\tFROM {$table_name}\n\t\tGROUP BY date HAVING date >= '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gdays) . "'\n\t\tORDER BY pageview DESC\n\t\tLIMIT 1\n\t");
    $maxxday = $qry->pageview;
    if ($maxxday == 0) {
        $maxxday = 1;
    }
    # Y
    $gd = 90 / $gdays . '%';
    for ($gg = $gdays - 1; $gg >= 0; $gg--) {
        #TOTAL VISITORS
        $qry_visitors = $wpdb->get_row("\n\t\t\tSELECT count(DISTINCT ip) AS total\n\t\t\tFROM {$table_name}\n\t\t\tWHERE feed=''\n\t\t\tAND spider=''\n\t\t\tAND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\n\t\t");
        $px_visitors = round($qry_visitors->total * 100 / $maxxday);
        #TOTAL PAGEVIEWS (we do not delete the uniques, this is falsing the info.. uniques are not different visitors!)
        $qry_pageviews = $wpdb->get_row("\n\t\t\tSELECT count(date) as total\n\t\t\tFROM {$table_name}\n\t\t\tWHERE feed=''\n\t\t\tAND spider=''\n\t\t\tAND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\n\t\t");
        $px_pageviews = round($qry_pageviews->total * 100 / $maxxday);
        #TOTAL SPIDERS
        $qry_spiders = $wpdb->get_row("\n\t\t\tSELECT count(ip) AS total\n\t\t\tFROM {$table_name}\n\t\t\tWHERE feed=''\n\t\t\tAND spider<>''\n\t\t\tAND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\n\t\t");
        $px_spiders = round($qry_spiders->total * 100 / $maxxday);
        #TOTAL FEEDS
        $qry_feeds = $wpdb->get_row("\n\t\t\tSELECT count(ip) AS total\n\t\t\tFROM {$table_name}\n\t\t\tWHERE feed<>''\n\t\t\tAND spider=''\n\t\t\tAND date = '" . gmdate('Ymd', current_time('timestamp') - 86400 * $gg) . "'\n\t\t");
        $px_feeds = round($qry_feeds->total * 100 / $maxxday);
        $px_white = 100 - $px_feeds - $px_spiders - $px_pageviews - $px_visitors;
        print '<td width="' . $gd . '" valign="bottom"';
        if ($start_of_week == gmdate('w', current_time('timestamp') - 86400 * $gg)) {
            print ' style="border-left:2px dotted gray;"';
        }
        # week-cut
        print "><div style='float:left;height: 100%;width:100%;font-family:Helvetica;font-size:7pt;text-align:center;border-right:1px solid white;color:black;'>\n\t\t<div style='background:#ffffff;width:100%;height:" . $px_white . "px;'></div>\n\t\t<div style='background:{$unique_color};width:100%;height:" . $px_visitors . "px;' title='" . $qry_visitors->total . " visitors'></div>\n\t\t<div style='background:{$web_color};width:100%;height:" . $px_pageviews . "px;' title='" . $qry_pageviews->total . " pageviews'></div>\n\t\t<div style='background:{$spider_color};width:100%;height:" . $px_spiders . "px;' title='" . $qry_spiders->total . " spiders'></div>\n\t\t<div style='background:{$rss_color};width:100%;height:" . $px_feeds . "px;' title='" . $qry_feeds->total . " feeds'></div>\n\t\t<div style='background:gray;width:100%;height:1px;'></div>\n\t\t<br />" . gmdate('d', current_time('timestamp') - 86400 * $gg) . ' ' . gmdate('M', current_time('timestamp') - 86400 * $gg) . "</div></td>\n";
    }
    print '</tr></table>';
    print '</div>';
    # END OF OVERVIEW
    ####################################################################################################
    $querylimit = "LIMIT 10";
    # Tabella Last hits
    print "<div class='wrap'><h2>" . __('Last hits', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>IP</th><th scope='col'>" . __('Domain', 'statpress') . "</th><th scope='col'>" . __('Page', 'statpress') . "</th><th scope='col'>OS</th><th scope='col'>Browser</th><th scope='col'>Feed</th></tr></thead>";
    print "<tbody id='the-list'>";
    $fivesdrafts = $wpdb->get_results("SELECT * FROM {$table_name} WHERE (os<>'' OR feed<>'') order by id DESC {$querylimit}");
    foreach ($fivesdrafts as $fivesdraft) {
        print "<tr>";
        print "<td>" . irihdate($fivesdraft->date) . "</td>";
        print "<td>" . $fivesdraft->time . "</td>";
        print "<td>" . $fivesdraft->ip . "</td>";
        print "<td>" . $fivesdraft->nation . "</td>";
        print "<td>" . iri_StatPress_Abbrevia(iri_StatPress_Decode($fivesdraft->urlrequested), 30) . "</td>";
        print "<td>" . $fivesdraft->os . "</td>";
        print "<td>" . $fivesdraft->browser . "</td>";
        print "<td>" . $fivesdraft->feed . "</td>";
        print "</tr>";
    }
    print "</table></div>";
    # Last Search terms
    print "<div class='wrap'><h2>" . __('Last search terms', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('Terms', 'statpress') . "</th><th scope='col'>" . __('Engine', 'statpress') . "</th><th scope='col'>" . __('Result', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,referrer,urlrequested,search,searchengine FROM {$table_name} WHERE search<>'' ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td><a href='" . $rk->referrer . "'>" . $rk->search . "</a></td><td>" . $rk->searchengine . "</td><td><a href='" . get_bloginfo('url') . "/?" . $rk->urlrequested . "'>" . __('page viewed', 'statpress') . "</a></td></tr>\n";
    }
    print "</table></div>";
    # Referrer
    print "<div class='wrap'><h2>" . __('Last referrers', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('URL', 'statpress') . "</th><th scope='col'>" . __('Result', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,referrer,urlrequested FROM {$table_name} WHERE ((referrer NOT LIKE '" . get_option('home') . "%') AND (referrer <>'') AND (searchengine='')) ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td><a href='" . $rk->referrer . "'>" . iri_StatPress_Abbrevia($rk->referrer, 80) . "</a></td><td><a href='" . get_bloginfo('url') . "/?" . $rk->urlrequested . "'>" . __('page viewed', 'statpress') . "</a></td></tr>\n";
    }
    print "</table></div>";
    # Last Agents
    print "<div class='wrap'><h2>" . __('Last agents', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('Agent', 'statpress') . "</th><th scope='col'>" . __('What', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,agent,os,browser,spider FROM {$table_name} WHERE (agent <>'') ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td>" . $rk->agent . "</td><td> " . $rk->os . " " . $rk->browser . " " . $rk->spider . "</td></tr>\n";
    }
    print "</table></div>";
    # Last pages
    print "<div class='wrap'><h2>" . __('Last pages', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('Page', 'statpress') . "</th><th scope='col'>" . __('What', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,urlrequested,os,browser,spider FROM {$table_name} WHERE (spider='' AND feed='') ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td>" . iri_StatPress_Abbrevia(iri_StatPress_Decode($rk->urlrequested), 60) . "</td><td> " . $rk->os . " " . $rk->browser . " " . $rk->spider . "</td></tr>\n";
    }
    print "</table></div>";
    # Last Spiders
    print "<div class='wrap'><h2>" . __('Last spiders', 'statpress') . "</h2><table class='widefat'><thead><tr><th scope='col'>" . __('Date', 'statpress') . "</th><th scope='col'>" . __('Time', 'statpress') . "</th><th scope='col'>" . __('Spider', 'statpress') . "</th><th scope='col'>" . __('Agent', 'statpress') . "</th></tr></thead>";
    print "<tbody id='the-list'>";
    $qry = $wpdb->get_results("SELECT date,time,agent,os,browser,spider FROM {$table_name} WHERE (spider<>'') ORDER BY id DESC {$querylimit}");
    foreach ($qry as $rk) {
        print "<tr><td>" . irihdate($rk->date) . "</td><td>" . $rk->time . "</td><td>" . $rk->spider . "</td><td> " . $rk->agent . "</td></tr>\n";
    }
    print "</table></div>";
    print "<br />";
    print "&nbsp;<i>StatPress table size: <b>" . iritablesize($wpdb->prefix . "statpress") . "</b></i><br />";
    print "&nbsp;<i>StatPress current time: <b>" . current_time('mysql') . "</b></i><br />";
    print "&nbsp;<i>RSS2 url: <b>" . get_bloginfo('rss2_url') . ' (' . iri_StatPress_extractfeedreq(get_bloginfo('rss2_url')) . ")</b></i><br />";
}