ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/BBClone/trunk/show_detailed.php
Revision: 417
Committed: Wed Dec 21 11:27:14 2022 UTC (23 months ago) by joku
File size: 8627 byte(s)
Log Message:
update Copyright 

File Contents

# Content
1 <?php
2 /* This file is part of BBClone (A PHP based Web Counter on Steroids)
3 *
4 * SVN FILE $Id$
5 *
6 * Copyright (C) 2001-2023, the BBClone Team (see doc/authors.txt for details)
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * See doc/copying.txt for details
19 */
20
21 /////////////////////////
22 // Show Detailed Stats //
23 /////////////////////////
24
25 if(!defined("_BBC_PAGE_NAME")){define("_BBC_PAGE_NAME", "BBClone - Show Detailed");}
26
27 // START Time Measuring, load-time of the page (see config)
28 $time = microtime();
29 $time = explode(' ', $time);
30 $time = $time[1] + $time[0];
31 $start = $time;
32
33 // Read constants
34 if (is_readable("constants.php")) require_once("constants.php");
35 else exit("ERROR: Unable to open constants.php");
36
37 foreach (array($BBC_CONFIG_FILE, $BBC_LIB_PATH."selectlang.php", $BBC_LAST_FILE) as $i) {
38 if (is_readable($i)) require_once($i);
39 else exit(bbc_msg($i));
40 }
41
42 // Functions to generate Stats for each row
43 function bbc_show_connect_field($connect, $field, $lng, $titles = false) {
44 global $BBC_WHOIS, $BBC_IMAGES_PATH, $BBC_LIB_PATH, $BBC_HTML, $extensions, $translation;
45
46 $id = empty($connect['id']) ? 0 : $connect['id'];
47
48 switch ($field) {
49 case "id":
50 return "<div align=\"center\">".$connect['id']."&nbsp;</div>\n";
51
52 case "time":
53 return "<div align=\"center\">".str_replace(" ", "&nbsp;", date_format_translated($translation["global_time_format"], $connect['time']))."&nbsp;</div>\n";
54
55 case "visits":
56 return "<div align=\"center\"><a href=\"show_views.php?id=$id&amp;lng=$lng\">".$connect['visits']."</a>&nbsp;</div>\n";
57
58 case "ext":
59 if (isset($extensions[$connect['ext']])) $label = $extensions[$connect['ext']];
60 else $label = $connect['ext'];
61 return "<div align=\"left\">&nbsp;<img src=\"".$BBC_IMAGES_PATH."ext/".$connect['ext'].".png\" class=\"icon\" alt=\"".$label."\" title=\"".$label."\" />&nbsp;&nbsp;".$label."</div>";
62
63 case "dns":
64 if (strlen($connect['dns']) > 50) $connect['dns'] = "...".substr($connect['dns'], -47);
65 if (strlen($connect['dns']) < 2) $connect['dns'] = $connect['ip']; // Invalid dns => take IP
66 $dns_str = $connect['dns'];
67 $ip_str = $connect['ip'];
68 if (!strcasecmp ($dns_str, $ip_str))
69 if ($BBC_WHOIS) return "<div align=\"left\">&nbsp;".$connect[$field]."&nbsp;<a href=\"".$BBC_WHOIS.$dns_str."\" target=\"blank\" title=\"".$translation['dstat_whois_information']."\">(?)</a></div>";
70 return "<div align=\"left\">&nbsp;".$connect['dns']."</div>";
71
72 case "referer":
73 if (strpos($connect['referer'], "://") === false) return "&nbsp;";
74
75 $url = substr(strstr($connect['referer'], "://"), 3);
76 $str = (($slash = strpos($url, "/")) !== false) ? substr($url, 0, $slash) : $url;
77 $str = (strlen($str) > 50) ? "...".substr($str, -47) : $str;
78
79 return "<div align=\"left\">&nbsp;\n"
80 ."<script type=\"text/javascript\">\n"
81 ."<!--\n"
82 ."document.write('<a href=\"http://$url\" rel=\"nofollow\" title=\"$str\">$str<\/a>');\n"
83 ."-->\n"
84 ."</script>\n"
85 ."<noscript><span title=\"$str\">$str</span></noscript>\n"
86 ."</div>\n";
87
88 case "browser":
89 if (!empty($connect['robot'])) return bbc_show_connect_field($connect, "robot", $lng);
90 elseif (is_readable($BBC_LIB_PATH."browser.php")) require($BBC_LIB_PATH."browser.php");
91 else return bbc_msg($BBC_LIB_PATH."browser.php");
92
93 if (!$match = (!isset($browser[$connect[$field]]) ? false : $browser[$connect[$field]])) return "&nbsp;";
94
95 $title = str_replace("other", $translation['misc_other'], $match['title']);
96
97 return "<div align=\"left\">&nbsp;<img src=\"".$BBC_IMAGES_PATH."browser/".$match['icon'].".png\" class=\"icon\" alt=\"$title\" title=\"$title\" />"
98 ."&nbsp;&nbsp;".str_replace(" ", "&nbsp;", $title)
99 .(empty($connect['browser_note']) ? "" : "&nbsp;".$connect['browser_note'])."</div>";
100
101 case "os":
102 if (!empty($connect['robot'])) return bbc_show_connect_field($connect,"robot", $lng);
103 elseif (is_readable($BBC_LIB_PATH."os.php")) require($BBC_LIB_PATH."os.php");
104 else return bbc_msg($BBC_LIB_PATH."os.php");
105
106 if (!$match = (!isset($os[$connect[$field]]) ? false : $os[$connect[$field]])) return "&nbsp;";
107
108 $title = str_replace("other", $translation['misc_other'], $match['title']);
109 if (isset($connect['screen_res'])) $res_str = "(".$connect['screen_res'].")";
110
111 return "<div align=\"left\">&nbsp;<img src=\"".$BBC_IMAGES_PATH."os/".$match['icon'].".png\" class=\"icon\" alt=\"$title\" title=\"$title\" />"
112 ."&nbsp;&nbsp;".str_replace(" ", "&nbsp;", $title)
113 .(empty($connect['os_note']) ? "" : "&nbsp;".$connect['os_note']).(isset($res_str) ? "&nbsp;".$res_str : "")."</div>";
114
115 case "robot":
116 if (is_readable($BBC_LIB_PATH."robot.php")) require($BBC_LIB_PATH."robot.php");
117 else return bbc_msg($BBC_LIB_PATH."robot.php");
118
119 if (!$match = (!isset($robot[$connect[$field]]) ? false : $robot[$connect[$field]])) return "&nbsp;";
120
121 $title = str_replace("other", $translation['misc_other'], $match['title']);
122
123 return "<div align=\"left\">&nbsp;<img src=\"".$BBC_IMAGES_PATH."robot/".$match['icon'].".png\" class=\"icon\" alt=\"$title\" title=\"$title\" />"
124 ."&nbsp;&nbsp;".str_replace(" ", "&nbsp;", $title)
125 .(empty($connect['robot_note']) ? "" : "&nbsp;".$connect['robot_note'])."</div>";
126
127 case "page":
128 if (!isset($connect['page'])) return "&nbsp;";
129
130 $last_page = $titles[($connect['page'])];
131 $last_page = ($last_page == "index") ? $translation["navbar_main_site"] : $last_page;
132
133 return "<div align=\"left\">&nbsp;$last_page</div>";
134
135 default:
136 if (!isset($connect[$field]) || ($connect[$field] == "-")) return "&nbsp;";
137 return "<div align=\"left\">&nbsp;".$connect[$field]."</div>";
138 }
139 }
140
141 // Main functions to generate Stats
142 function bbc_rows_gen() {
143 global $BBC_DETAILED_STAT_FIELDS, $BBC_MAXVISIBLE, $BBC_HTML, $translation, $last;
144
145 $fields_title = array(
146 "browser" => $translation['dstat_browser'],
147 "dns" => $translation['dstat_dns'],
148 "ext" => $translation['dstat_extension'],
149 "id" => $translation['dstat_id'],
150 "ip" => $translation['dstat_ip'],
151 "os" => $translation['dstat_os'],
152 "page" => $translation['dstat_last_page'],
153 "prx_ip" => $translation['dstat_prx'],
154 "referer" => $translation['dstat_from'],
155 "search" => $translation['dstat_search'],
156 "time" => $translation['dstat_time'],
157 "visits" => $translation['dstat_visits'],
158 );
159
160 $fields = explode(",", str_replace(" ", "", $BBC_DETAILED_STAT_FIELDS));
161 $nb_access = isset($last['traffic']) ? count($last['traffic']) : 0;
162 $str = "<tr>\n";
163
164 foreach ($fields as $val) $str .= "<td class=\"label\">".$fields_title[$val]."</td>\n";
165
166 $str .= "</tr>\n";
167
168 for ($k = $nb_access - 1; $k >= max(0, $nb_access - $BBC_MAXVISIBLE); $k--) {
169 $style_class = $BBC_HTML->connect_color_class($last['traffic'][$k]);
170 $str .= "<tr class=\"$style_class hover_white\">\n";
171 reset($fields);
172 foreach ($fields as $key => $val) {
173 $cell = bbc_show_connect_field($last['traffic'][$k], $val, $BBC_HTML->lng, $last['pages']);
174 $str .= "<td class=\"cell\">".(empty($cell) ? "&nbsp;" : $cell)."</td>\n";
175 }
176 $str .= "</tr>\n";
177 }
178 return $str;
179 }
180
181 // Generate page (with use of the functions above)
182 echo $BBC_HTML->html_begin()
183 .$BBC_HTML->topbar()
184 .$BBC_HTML->color_explain()
185 ."<table class=\"centerdata\">\n"
186 ."<tr><td class=\"labelbox\">\n"
187 ."<table class=\"centerdata\">\n"
188 .bbc_rows_gen()
189 ."</table>\n"
190 ."</td></tr></table>\n"
191 .$BBC_HTML->copyright()
192 .$BBC_HTML->topbar(0, 1);
193
194 // END + DISPLAY Time Measuring, load-time of the page (see config)
195 global $BBC_LOADTIME;
196
197 if (!empty($BBC_LOADTIME)) {
198 $time = microtime();
199 $time = explode(' ', $time);
200 $time = $time[1] + $time[0];
201 $finish = $time;
202 $total_time = round(($finish - $start), 4);
203 echo "<div class=\"loadtime\">".$translation['generated'].$total_time.$translation['seconds']."</div>\n";
204 }
205
206 // End of HTML
207 echo $BBC_HTML->html_end()
208 ?>

Properties

Name Value
svn:keywords Id