* This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ include_once realpath(dirname(__FILE__) . "/../../_functions.php"); print SlimStat::render_module("Paths taken by recent visitors", show_paths(), "largemodule"); function show_paths() { $config =& SlimStatConfig::get_instance(); // get max visit $query = "SELECT MAX(`visit`) FROM `" . SlimStat::my_esc($config->database) . "`.`" . SlimStat::my_esc($config->stats) . "`"; if ($result = mysql_query($query)) { list($max_visit) = mysql_fetch_row($result); } $str = ""; // get requests $query = "SELECT * FROM `" . SlimStat::my_esc($config->database) . "`.`" . SlimStat::my_esc($config->stats) . "` WHERE "; if (!$config->show_crawlers) { $query .= "`browser` != '" . SlimStat::my_esc($config->i18n->crawler) . "' AND "; } $query .= "`visit` >= " . ($max_visit - $config->rows);
print SlimStat::render_module($config->i18n->module_titles["language"], percentage_table("language", $config->truncate, "language != '' AND language != 'empty'", $filters)); } if ($config->show_modules["remote_ip"] && $config->show_visits && !isset($filters["filter_remote_ip"])) { print SlimStat::render_module($config->i18n->module_titles["remote_ip"], total_table("remote_ip", $config->truncate, "", $filters)); } if ($config->show_modules["visit"] && $config->show_visits && isset($days_spanned) && $days_spanned == 1) { print SlimStat::render_module($config->i18n->module_titles["visit"], visit_table($filters)); } if ($config->show_modules["dayofweek"] && isset($days_spanned) && $days_spanned > 7) { print SlimStat::render_module($config->i18n->module_titles["dayofweek"], dt_table("DAYOFWEEK", $filters)); } if ($config->show_modules["hour"] && isset($days_spanned) && $days_spanned > 1) { print SlimStat::render_module($config->i18n->module_titles["hour"], dt_table("HOUR", $filters)); } if ($config->show_modules["pageviews"] && !isset($filters["filter_resource"])) { print SlimStat::render_module($config->i18n->module_titles["pageviews"], pageviews_table("", $filters)); } function hour_table($_dt, $_title, $_n_loops, $_end_increment, $_dt_decrement, $_filters) { $config =& SlimStatConfig::get_instance(); $thead = array("first" => array(isset($config->i18n->fields[$_title]) ? $config->i18n->fields[$_title] : $_title), "last" => array($config->i18n->hits)); $tbody = array(); if ($config->show_visits && !isset($_filters["filter_visit"])) { $thead["last"][] = $config->i18n->visits; } if ($config->show_uniques) { $thead["last"][] = $config->i18n->uniques; } for ($i = 0; $i < $_n_loops; $i++) { $dt_start = SlimStat::to_server_time(strtotime(date("Y-m-d H:00:00", $_dt))); $dt_end = SlimStat::to_server_time(strtotime(date("Y-m-d H:59:59", $_dt + eval("return (" . $_end_increment . ");"))));
<?php } if ($config->show_modules["recent_resource"]) { print SlimStat::render_module($config->i18n->module_titles["recent_resource"], recent_table(array("href" => "resource", "title" => $config->show_hostnames ? "remote_addr" : "remote_ip", "display" => "resource"), $config->truncate_medium, "dt > " . $config->recent_threshold), "mediummodule"); } if ($config->show_modules["recent_referer"]) { print SlimStat::render_module($config->i18n->module_titles["recent_referer"], recent_table(array("href" => "referer", "title" => "resource", "display" => "domain"), $config->truncate, "dt > " . $config->recent_threshold . " AND referer NOT LIKE '%" . SlimStat::my_esc(SlimStat::trim_referer($_SERVER["SERVER_NAME"])) . "/%' AND referer NOT LIKE '%" . SlimStat::my_esc(SlimStat::trim_referer($_SERVER["SERVER_NAME"])) . "' AND referer != '' AND domain != ''")); } if ($config->show_modules["recent_searchterms"]) { print SlimStat::render_module($config->i18n->module_titles["recent_searchterms"], recent_table(array("href" => "referer", "title" => "resource", "display" => "searchterms"), $config->truncate, "dt > " . $config->recent_threshold . " AND searchterms != ''")); } if ($config->show_modules["unique_domain"]) { print SlimStat::render_module($config->i18n->module_titles["unique_domain"] . " <span><a href=\"rss.php?domain\">" . $config->i18n->feed . "</a></span>", unique_table(array("href" => "referer", "title" => "resource", "display" => "domain"), $config->truncate, "dt > " . $config->recent_threshold . " AND domain != '" . SlimStat::my_esc(SlimStat::trim_referer($_SERVER["SERVER_NAME"])) . "' AND domain != ''")); } if ($config->show_modules["unique_resource"]) { print SlimStat::render_module($config->i18n->module_titles["unique_resource"] . " <span><a href=\"rss.php?resource\">" . $config->i18n->feed . "</a></span>", unique_table(array("href" => "resource", "title" => $config->show_hostnames ? "remote_addr" : "remote_ip", "display" => "resource"), $config->truncate_medium, "dt > " . $config->recent_threshold), "mediummodule"); } } function recent_table($_cols, $_truncate, $_where_clause = "", $_filters = array()) { $config =& SlimStatConfig::get_instance(); $thead = array("first" => array(isset($config->i18n->fields[$_cols["display"]]) ? $config->i18n->fields[$_cols["display"]] : $_cols["display"]), "last" => array(" ", $config->i18n->when)); $tbody = array(); $col_query = is_array($_cols) ? array_merge($_cols, array("dt")) : array($_cols, "dt"); $results = SlimStat::_get_table_data($col_query, $_where_clause, implode(", ", $col_query), "dt", $_filters); foreach ($results as $result) { $display_value = $result[$_cols["display"]]; if (isset($config->i18n->name_lookups[$_cols["display"]])) { if (is_array($config->i18n->name_lookups[$_cols["display"]]) && isset($config->i18n->name_lookups[$_cols["display"]][$display_value])) { $display_value = $config->i18n->name_lookups[$_cols["display"]][$display_value]; } elseif (is_string($config->i18n->name_lookups[$_cols["display"]])) {