'HandleTotalCounter')); SDVA($HandleAuth, array($TotalCounterAction => $TotalCounterAuthLevel)); global $TotalCounter; if ($TotalCounterMaxItems<=0) $TotalCounterMaxItems = 1; $file = "$WorkDir/totalcounter.stat"; $lock = "$WorkDir/totalcounter.lock"; clearstatcache(); while (file_exists($lock)) { $st = stat($lock); if ((time()-$st['mtime']) > 15) { Abort("Too many visitors at the moment...please try later!"); # break; } } //------------------------------------------------------------------------------------ if(!function_exists("file_get_contents")) { function file_get_contents($filename) { if(($contents = file($filename))) { $contents = implode('', $contents); return $contents; } else return ''; } } if (function_exists('ResolvePageName')) { $tc_pagename = ResolvePageName($pagename); } else { $tc_pagename=str_replace('/','.',$pagename); /* line changed by Chris Morison 9/3/06 */ } if ($tc_pagename=='') $tc_pagename="$DefaultGroup.$DefaultName"; if ($action=='browse') { //find users if (isset($AuthId)) { $tc_user = $AuthId; } else { if (isset($Author)) { $tc_user = $Author; } else { @session_start(); if (isset($_SESSION['authid'])) { $tc_user = $_SESSION['authid']; } else { $tc_user = 'Guest (not authenticated)'; } } } //find web bot if (eregi('ia_archiver',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Alexa'; elseif (eregi('ask jeeves',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Ask Jeeves'; elseif (eregi('baiduspider',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Baidu'; elseif (eregi('libcurl',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='cURL'; elseif (eregi('gigabot',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Gigablast'; elseif (eregi('googlebot',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Google'; elseif (eregi('grub-client',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Grub'; elseif (eregi('slurp@inktomi.com',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Inktomi'; elseif (eregi('msnbot',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='MSN'; elseif (eregi('scooter',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Altavista'; elseif (eregi('wget',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='wget'; elseif (eregi('yahoo! slurp',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Yahoo!'; elseif (eregi('becomebot',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Become'; elseif (eregi('fast',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='Fast/Alltheweb'; elseif (eregi('zyborg',$_SERVER['HTTP_USER_AGENT']) || eregi('zealbot',$_SERVER['HTTP_USER_AGENT'])) $tc_bot='WiseNut!'; //not a bot, so find the browser elseif (eregi('arachne',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Arachne GPL'; elseif (eregi('blazer',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Blazer'; elseif (eregi('opera',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Opera'; elseif (eregi('webtv',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='WebTV'; elseif (eregi('camino',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Camino'; elseif (eregi('netpositive',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='NetPositive'; elseif (eregi('internet explorer',$_SERVER['HTTP_USER_AGENT']) || eregi('msie',$_SERVER['HTTP_USER_AGENT']) || eregi('mspie',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='MS Internet Explorer'; elseif (eregi('avant browser',$_SERVER['HTTP_USER_AGENT']) || eregi('advanced browser',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Avant Browser'; elseif (eregi('galeon',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Galeon'; elseif (eregi('konqueror',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Konqueror'; elseif (eregi('icab',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='iCab'; elseif (eregi('omniweb',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='OmniWeb'; elseif (eregi('phoenix',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Phoenix'; elseif (eregi('firebird',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Firebird'; elseif (eregi('firefox',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Firefox'; elseif (eregi('minimo',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Minimo'; elseif (eregi("mozilla",$_SERVER['HTTP_USER_AGENT']) && eregi("rv:[0-9].[0-9][a-b]",$_SERVER['HTTP_USER_AGENT']) && !eregi("netscape",$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Mozilla'; elseif (eregi("mozilla",$_SERVER['HTTP_USER_AGENT']) && eregi("rv:[0-9].[0-9]",$_SERVER['HTTP_USER_AGENT']) && !eregi("netscape",$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Mozilla'; elseif (eregi("libwww",$_SERVER['HTTP_USER_AGENT'])) { if (eregi("amaya",$_SERVER['HTTP_USER_AGENT'])) { $tc_browser='Amaya'; } else { $tc_browser='Text browser'; } }elseif (eregi('safari',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Safari'; elseif (eregi('elinks',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='ELinks'; elseif (eregi('offbyone',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Off By One'; elseif (eregi('playstation portable',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='PlayStation Portable'; elseif (eregi('netscape',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Netscape'; elseif (eregi('mozilla',$_SERVER['HTTP_USER_AGENT']) && !eregi("rv:[0-9]\.[0-9]\.[0-9]",$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Netscape'; elseif (eregi('links',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Links'; elseif (eregi('ibrowse',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='iBrowse'; elseif (eregi('w3m',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='w3m'; elseif (eregi('aweb',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='AWeb'; elseif (eregi('voyager',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Voyager'; elseif (eregi('oregano',$_SERVER['HTTP_USER_AGENT'])) $tc_browser='Oregano'; else $tc_browser='Unknown'; //find operating system if (eregi('linux',$_SERVER['HTTP_USER_AGENT'])) $tc_os='Linux'; elseif (eregi('irix',$_SERVER['HTTP_USER_AGENT'])) $tc_os='IRIX'; elseif (eregi('hp-ux',$_SERVER['HTTP_USER_AGENT'])) $tc_os='HP-Unix'; elseif (eregi('os/2',$_SERVER['HTTP_USER_AGENT'])) $tc_os='OS/2'; elseif (eregi('beos',$_SERVER['HTTP_USER_AGENT'])) $tc_os='BeOS'; elseif (eregi('sunos',$_SERVER['HTTP_USER_AGENT'])) $tc_os='SunOS'; elseif (eregi('palm',$_SERVER['HTTP_USER_AGENT'])) $tc_os='PalmOS'; elseif (eregi('cygwin',$_SERVER['HTTP_USER_AGENT'])) $tc_os='Cygwin'; elseif (eregi('amiga',$_SERVER['HTTP_USER_AGENT'])) $tc_os='Amiga'; elseif (eregi('unix',$_SERVER['HTTP_USER_AGENT'])) $tc_os='Unix'; elseif (eregi('qnx',$_SERVER['HTTP_USER_AGENT'])) $tc_os='QNX'; elseif (eregi('win',$_SERVER['HTTP_USER_AGENT'])) $tc_os='Windows'; elseif (eregi('mac',$_SERVER['HTTP_USER_AGENT'])) $tc_os='Mac'; elseif (eregi('risc',$_SERVER['HTTP_USER_AGENT'])) $tc_os='RISC'; elseif (eregi('dreamcast',$_SERVER['HTTP_USER_AGENT'])) $tc_os='Dreamcast'; elseif (eregi('freebsd',$_SERVER['HTTP_USER_AGENT'])) $tc_os='FreeBSD'; elseif (eregi('dos',$_SERVER['HTTP_USER_AGENT'])) $tc_os='dos'; else $tc_os='Unknown'; //find referrer domain preg_match("/^(http:\/\/)?([^\/:]+)/i",$_SERVER['HTTP_REFERER'], $matches); $host = $matches[2]; //if (preg_match("/[^\.\/]+\.*[^\.\/]+$/", $host, $matches) != 0) $host = $matches[0]; if ($matches[2]!='') { $tc_referer = $matches[2]; } else { $tc_referer = 'Unknown'; } //find location if ($_SERVER['HTTP_X_FORWARDED_FOR'] != '') { if (strstr($_SERVER['HTTP_X_FORWARDED_FOR'], ', ')) { $ips = explode(', ', $_SERVER['HTTP_X_FORWARDED_FOR']); $thehost = $ips[0]; } else { $thehost = $_SERVER['HTTP_X_FORWARDED_FOR']; } } else { if (strstr($_SERVER['REMOTE_HOST'], ', ')) { $ips = explode(', ', $_SERVER['REMOTE_HOST']); $thehost = $ips[0]; } else { $thehost = $_SERVER['REMOTE_HOST']; } } if (preg_match("/[^\.0-9]+$/", $thehost, $matches) != 0) $loc = $matches[0]; if ($loc!='') { $tc_location = $loc; } else { if ($TotalCounterEnableLookup == 1) { $thehost = @gethostbyaddr($_SERVER['REMOTE_ADDR']); if (preg_match("/[^\.0-9]+$/", $thehost, $matches) != 0) $loc = $matches[0]; if ($loc!='') { $tc_location = $loc; } else { $tc_location = 'Unknown'; } } else { $tc_location = 'Unknown'; } } if ($tc_location!='Unknown') $tc_location=strtolower($tc_location); } //------------------------------------------------------------------------------------ $oldumask = umask(0); mkdir($lock, 0777); //touch($lock); //fixperms($lock); if (file_exists($file)) { $TotalCounter = unserialize(file_get_contents($file)); } else { $TotalCounter['Total'] = 0; $TotalCounter['Pages'][$tc_pagename] = 0; } if (($action=='browse') && ($tc_pagename!='')) { $TotalCount = ++$TotalCounter['Total']; if (!@in_array($tc_pagename,$TotalCounterBlacklist['Pages'])) { $blacklisted = false; if (is_array($TotalCounterBlacklist['Pages'])) foreach ($TotalCounterBlacklist['Pages'] as $value) if (substr($value,0,1)=='/') if (preg_match($value, $tc_pagename)>0) $blacklisted = true; if (!$blacklisted) { $PageCount = ++$TotalCounter['Pages'][$tc_pagename]; ## handles the daily counter if ($TotalCounter['PagesTodayDay'][$tc_pagename] == date("%y%m%d")) $PageCountToday = ++$TotalCounter['PagesTodayCounter'][$tc_pagename] ; else { $TotalCounter['PagesTodayDay'][$tc_pagename] = date("%y%m%d"); $TotalCounter['PagesTodayCounter'][$tc_pagename] = 1; } } else { $PageCount = 0; } } if (!@in_array($tc_user,$TotalCounterBlacklist['Users'])) { $blacklisted = false; if (is_array($TotalCounterBlacklist['Users'])) foreach ($TotalCounterBlacklist['Users'] as $value) if (substr($value,0,1)=='/') if (preg_match($value, $tc_user)>0) $blacklisted = true; if (!$blacklisted) $TotalCounter['Users'][$tc_user]++; } if (defined('MULTILANGUAGE')) if (isset($userlang)) $TotalCounter['Languages'][$userlang]++; if (isset($tc_browser) && !@in_array($tc_browser,$TotalCounterBlacklist['Browsers']) ) { $TotalCounter['Browsers'][$tc_browser]++; } if (isset($tc_bot) && !@in_array($tc_bot,$TotalCounterBlacklist['Bots'])) { $TotalCounter['Bots'][$tc_bot]++; } if (!@in_array($tc_os,$TotalCounterBlacklist['OSes']) ) { $TotalCounter['OSes'][$tc_os]++; } if (!@in_array($tc_referer,$TotalCounterBlacklist['Referers']) ) { $blacklisted = false; if (is_array($TotalCounterBlacklist['Referers'])) foreach ($TotalCounterBlacklist['Referers'] as $value) if (substr($value,0,1)=='/') if (preg_match($value, $tc_referer)>0) $blacklisted = true; if (!$blacklisted) $TotalCounter['Referers'][$tc_referer]++; } if (!@in_array($tc_location,$TotalCounterBlacklist['Locations']) ) { $TotalCounter['Locations'][$tc_location]++; } if (defined('MULTILANGUAGE')) if (!@in_array($tc_location,$TotalCounterBlacklist['Languages'])) $TotalCounter['Languages'][$userlang]++; if ($TotalCounter['Total'] > 0) { #by florian xaver $fp = fopen($file,'w'); if ($fp) { fixperms($file); fwrite($fp, serialize($TotalCounter)); fclose($fp); } } } else { $TotalCount = $TotalCounter['Total']; $PageCount = $TotalCounter['Pages'][$tc_pagename]; ## by Schlaefer $TotalCounter['PagesTodayDay'][$tc_pagename] == date("%y%m%d") ? $PageCountToday = $TotalCounter['PagesTodayCounter'][$tc_pagename] : $PageCountToday = 1; } rmdir($lock); //unlink($lock); //umask($oldumask); //add the {$PageCount} and {$TotalCount} markup Markup('{$PageCount}','<{$var}','/\\{\\$PageCount\\}/e',$PageCount); Markup('{$TotalCount}','<{$var}','/\\{\\$TotalCount\\}/e',$TotalCount); ## by Schlaefer ## adds vars for the input form Markup('{$PopularPagesItems}', '<{$var}', '/{\\$TotalCounterMaxItems}/', $_REQUEST['TotalCounterMaxItems'] ? $_REQUEST['TotalCounterMaxItems'] : $TotalCounterMaxItems ); //add the {$PageViews} page variable $FmtPV['$PageViews'] = '$GLOBALS["TotalCounter"]["Pages"][$pagename]'; ## by Schlaefer ## add the {$PagesTodayCounter} page variable $FmtPV['$PageCountToday'] = '$GLOBALS["TotalCounter"]["PagesTodayCounter"][$pagename]'; function HandleTotalCounter($pagename, $auth='read') { global $Action, $TotalCounter, $TotalCounterMaxItems, $TotalCounterBarColor, $TotalCounterShowNumbers, $TotalCount; global $PageStartFmt, $PageEndFmt; //$page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT); $page = RetrieveAuthPage($pagename, $auth); if (!$page) Abort("?you are not permited to perform this action"); $alllocations = array( 'localhost'=>'localhost', 'Unknown'=>'Unknown', 'com'=>'Commercial', 'net'=>'Networks', 'org'=>'Organizations', 'aero'=>'Aviation', 'biz'=>'Business organizations', 'coop'=>'Co-operative organizations', 'edu'=>'Educational', 'gov'=>'US Government', 'info'=>'Info', 'int'=>'International organizations', 'mil'=>'US Dept of Defense', 'museum'=>'Museums', 'name'=>'Personal', 'travel'=>'Travelling', 'ac'=>'Ascension Island', 'ad'=>'Andorra', 'ae'=>'United Arab Emirates', 'af'=>'Afghanistan', 'ag'=>'Antigua & Barbuda', 'ai'=>'Anguilla', 'al'=>'Albania', 'am'=>'Armenia', 'an'=>'Netherlands Antilles', 'ao'=>'Angola', 'aq'=>'Antarctica', 'ar'=>'Argentina', 'as'=>'American Samoa', 'at'=>'Austria', 'au'=>'Australia', 'aw'=>'Aruba', 'az'=>'Azerbaijan', 'ba'=>'Bosnia & Herzegovina', 'bb'=>'Barbados', 'bd'=>'Bangladesh', 'be'=>'Belgium', 'bf'=>'Burkina Faso', 'bg'=>'Bulgaria', 'bh'=>'Bahrain', 'bi'=>'Burundi', 'bj'=>'Benin', 'bm'=>'Bermuda', 'bn'=>'Brunei Darussalam', 'bo'=>'Bolivia', 'br'=>'Brazil', 'bs'=>'Bahamas', 'bt'=>'Bhutan', 'bv'=>'Bouvet Island', 'bw'=>'Botswana', 'by'=>'Belarus', 'bz'=>'Belize', 'ca'=>'Canada', 'cc'=>'Cocos (Keeling) Islands', 'cd'=>'Democratic republic of Congo', 'cf'=>'Central African Republic', 'cg'=>'Congo', 'ch'=>'Switzerland', 'ci'=>'Ivory Coast', 'ck'=>'Cook Islands', 'cl'=>'Chile', 'cm'=>'Cameroon', 'cn'=>'China', 'co'=>'Colombia', 'cr'=>'Costa Rica', 'cs'=>'Czechoslovakia', 'cu'=>'Cuba', 'cv'=>'Cape Verde', 'cx'=>'Christmas Island', 'cy'=>'Cyprus', 'cz'=>'Czech Republic', 'de'=>'Germany', 'dj'=>'Djibouti', 'dk'=>'Denmark', 'dm'=>'Dominica', 'do'=>'Dominican Republic', 'dz'=>'Algeria', 'ec'=>'Ecuador', 'ee'=>'Estonia', 'eg'=>'Egypt', 'eh'=>'Western Sahara', 'er'=>'Eritrea', 'es'=>'Spain', 'et'=>'Ethiopia', 'eu'=>'European Union', 'fi'=>'Finland', 'fj'=>'Fiji', 'fk'=>'Falkland Islands', 'fm'=>'Micronesia', 'fo'=>'Faroe Islands', 'fr'=>'France', 'ga'=>'Gabon', 'gb'=>'United Kingdom', 'gd'=>'Grenada', 'ge'=>'Georgia', 'gf'=>'French Guiana', 'gg'=>'Guernsey', 'gh'=>'Ghana', 'gi'=>'Gibraltar', 'gl'=>'Greenland', 'gm'=>'Gambia', 'gn'=>'Guinea', 'gp'=>'Guadeloupe', 'gq'=>'Equatorial Guinea', 'gr'=>'Greece', 'gs'=>'South Georgia & South Sandwich Islands', 'gt'=>'Guatemala', 'gu'=>'Guam', 'gw'=>'Guinea-Bissau', 'gy'=>'Guyana', 'hk'=>'Hong Kong', 'hm'=>'Heard & McDonald Islands', 'hn'=>'Honduras', 'hr'=>'Croatia', 'ht'=>'Haiti', 'hu'=>'Hungary', 'id'=>'Indonesia', 'ie'=>'Ireland', 'il'=>'Israel', 'im'=>'Isle of Man', 'in'=>'India', 'io'=>'British Indian Ocean Territory', 'iq'=>'Iraq', 'ir'=>'Iran', 'is'=>'Iceland', 'it'=>'Italy', 'je'=>'Jersey', 'jm'=>'Jamaica', 'jo'=>'Jordan', 'jp'=>'Japan', 'ke'=>'Kenya', 'kg'=>'Kyrgyzstan', 'kh'=>'Cambodia', 'ki'=>'Kiribati', 'km'=>'Comoros', 'kn'=>'Saint Kitts & Nevis', 'kp', 'North Korea', 'kr'=>'South Korea', 'kw'=>'Kuwait', 'ky'=>'Cayman Islands', 'kz'=>'Kazakhstan', 'la'=>'Laos', 'lb'=>'Lebanon', 'lc'=>'Saint Lucia', 'li'=>'Liechtenstein', 'lk'=>'Sri Lanka', 'lr'=>'Liberia', 'ls'=>'Lesotho', 'lt'=>'Lithuania', 'lu'=>'Luxembourg', 'lv'=>'Latvia', 'ly'=>'Libyan Arab Jamahiriya', 'ma'=>'Morocco', 'mc'=>'Monaco', 'md'=>'Moldova', 'mg'=>'Madagascar','mh'=>'Marshall Islands', 'mk'=>'Macedonia', 'ml'=>'Mali', 'mm'=>'Myanmar', 'mn'=>'Mongolia', 'mo'=>'Macau', 'mp'=>'Northern Mariana Islands', 'mq'=>'Martinique', 'mr'=>'Mauritania', 'ms'=>'Montserrat', 'mt'=>'Malta', 'mu'=>'Mauritius', 'mv'=>'Maldives', 'mw'=>'Malawi', 'mx'=>'Mexico', 'my'=>'Malaysia', 'mz'=>'Mozambique', 'na'=>'Namibia', 'nc'=>'New Caledonia', 'ne'=>'Niger', 'nf'=>'Norfolk Island', 'ng'=>'Nigeria', 'ni'=>'Nicaragua', 'nl'=>'The Netherlands', 'no'=>'Norway', 'np'=>'Nepal', 'nr'=>'Nauru', 'nu'=>'Niue', 'nz'=>'New Zealand', 'om'=>'Oman', 'pa'=>'Panama', 'pe'=>'Peru', 'pf'=>'French Polynesia', 'pg'=>'Papua New Guinea', 'ph'=>'Philippines', 'pk'=>'Pakistan', 'pl'=>'Poland', 'pm'=>'St. Pierre & Miquelon', 'pn'=>'Pitcairn', 'pr'=>'Puerto Rico', 'ps'=>'Palestine', 'pt'=>'Portugal', 'pw'=>'Palau', 'py'=>'Paraguay', 'qa'=>'Qatar', 're'=>'Reunion', 'ro'=>'Romania', 'ru'=>'Russia', 'rw'=>'Rwanda', 'sa'=>'Saudi Arabia', 'sb'=>'Solomon Islands', 'sc'=>'Seychelles', 'sd'=>'Sudan', 'se'=>'Sweden', 'sg'=>'Singapore', 'sh'=>'St. Helena', 'si'=>'Slovenia', 'sj'=>'Svalbard & Jan Mayen Islands', 'sk'=>'Slovakia', 'sl'=>'Sierra Leone', 'sm'=>'San Marino', 'sn'=>'Senegal', 'so'=>'Somalia', 'sr'=>'Surinam', 'st'=>'Sao Tome & Principe', 'su'=>'USSR', 'sv'=>'El Salvador', 'sy'=>'Syrian Arab Republic', 'sz'=>'Swaziland', 'tc'=>'The Turks & Caicos Islands', 'td'=>'Chad', 'tf'=>'French Southern Territories', 'tg'=>'Togo', 'th'=>'Thailand', 'tj'=>'Tajikistan', 'tk'=>'Tokelau', 'tm'=>'Turkmenistan', 'tn'=>'Tunisia', 'to'=>'Tonga', 'tp'=>'East Timor', 'tr'=>'Turkey', 'tt'=>'Trinidad & Tobago', 'tv'=>'Tuvalu', 'tw'=>'Taiwan', 'tz'=>'Tanzania', 'ua'=>'Ukraine', 'ug'=>'Uganda', 'uk'=>'United Kingdom', 'um'=>'United States Minor Outlying Islands', 'us'=>'United States', 'uy'=>'Uruguay', 'uz'=>'Uzbekistan', 'va'=>'Vatican City', 'vc'=>'Saint Vincent & the Grenadines', 've'=>'Venezuela', 'vg'=>'British Virgin Islands', 'vi'=>'US Virgin Islands', 'vn'=>'Vietnam', 'vu'=>'Vanuatu', 'wf'=>'Wallis & Futuna Islands', 'ws'=>'Samoa', 'ye'=>'Yemen', 'yt'=>'Mayotte', 'yu'=>'Yugoslavia', 'za'=>'South Africa', 'zm'=>'Zambia', 'zr'=>'Zaire', 'zw'=>'Zimbabwe', ); $Action = 'TotalCounter statistics'; ## by Schlaefer ## sets the max items if provided by the form if($_REQUEST['TotalCounterMaxItems']) $TotalCounterMaxItems = $_REQUEST['TotalCounterMaxItems']; //------------------------------------------------------------------------------------------------------------ // PAGES $html = '

TotalCounter $[statistics]

'. '

'. '

$[Page views]

'. ''. '$[Pages] '; @arsort($TotalCounter['Pages']); $tar = @array_slice($TotalCounter['Pages'],0,$TotalCounterMaxItems); $tot = $TotalCount; $max = @current($tar); $i = 0; if (is_array($tar) && $tot) // by Florian Xaver foreach ($tar as $pn=>$cnt) { $html .= ''. ($TotalCounterShowNumbers ? '' : ''). "". ''; } ## by Schlaefer //------------------------------------------------------------------------------------------------------------ ## PAGES daily $html .= '
$[Percent]$[Count]
'.++$i.'.$pn ". Round(100*$cnt/$tot) ."%
 $cnt
'. '

'. '

$[Page views] $[today]

'. ''. '$[Pages] '; $tar = array(); foreach ($TotalCounter['PagesTodayCounter'] as $pn=>$cnt) { if ($TotalCounter['PagesTodayDay'][$pn] === date("%y%m%d")) $tar[$pn] = $cnt; } @arsort($tar); $tot = @array_sum($tar); $tar = @array_slice($tar, 0, $TotalCounterMaxItems); $max = @current($tar); $i = 0; if (is_array($tar)) foreach ($tar as $pn=>$cnt) { $html .= ''. ($TotalCounterShowNumbers ? '' : ''). "". ''; if ($i == $TotalCounterMaxItems) break; } //------------------------------------------------------------------------------------------------------------ // USERS $html .= '
$[Percent]$[Count]
'.++$i.'.$pn ". Round(100*$cnt/$tot) ."%
 $cnt
'. '

'. '

$[Users]

'. ''. '$[Users] '; @arsort($TotalCounter['Users']); $tar = @array_slice($TotalCounter['Users'],0,$TotalCounterMaxItems); $max = @current($tar); $tot = @array_sum($tar); $i = 0; if (is_array($tar)) foreach ($tar as $pn=>$cnt) { $html .= ''. ($TotalCounterShowNumbers ? '' : ''). '". ''; } //------------------------------------------------------------------------------------------------------------ // LANGUAGES if (defined('MULTILANGUAGE')) { $html .= '
$[Percent]$[Count]
'.++$i.'.'. ($pn!='Guest (not authenticated)' ? "$pn" : $pn). " ". Round(100*$cnt/$tot) ."%
 $cnt
'. '

'. '

$[Languages]

'. ''. '$[Languages] '; @arsort($TotalCounter['Languages']); $tar = @array_slice($TotalCounter['Languages'],0,$TotalCounterMaxItems); $max = @current($tar); $tot = @array_sum($tar); $i = 0; if (is_array($tar)) foreach ($tar as $pn=>$cnt) { $html .= ''. ($TotalCounterShowNumbers ? '' : ''). "". ''; } } //------------------------------------------------------------------------------------------------------------ // BROWSERS $html .= '
$[Percent]$[Count]
'.++$i.'.$pn ". Round(100*$cnt/$tot) ."%
 $cnt
'. '

'. '

$[Browsers]

'. ''. '$[Browsers] '; @arsort($TotalCounter['Browsers']); $tar = @array_slice($TotalCounter['Browsers'],0,$TotalCounterMaxItems); $max = @current($tar); $tot = @array_sum($tar); $i = 0; if (is_array($tar)) foreach ($tar as $pn=>$cnt) { $html .= ''. ($TotalCounterShowNumbers ? '' : ''). "". ''; } //------------------------------------------------------------------------------------------------------------ // OPERATING SYSTEMS $html .= '
$[Percent]$[Count]
'.++$i.'.$pn ". Round(100*$cnt/$tot) ."%
 $cnt
'. '

'. '

$[Operating systems]

'. ''. '$[Operating systems] '; @arsort($TotalCounter['OSes']); $tar = @array_slice($TotalCounter['OSes'],0,$TotalCounterMaxItems); $max = @current($tar); $tot = @array_sum($tar); $i = 0; if (is_array($tar)) foreach ($tar as $pn=>$cnt) { $html .= ''. ($TotalCounterShowNumbers ? '' : ''). "". ''; } //------------------------------------------------------------------------------------------------------------ // REFERERS $html .= '
$[Percent]$[Count]
'.++$i.'.$pn ". Round(100*$cnt/$tot) ."%
 $cnt
'. '

'. '

$[Referers]

'. ''. '$[Referers] '; @arsort($TotalCounter['Referers']); $tar = @array_slice($TotalCounter['Referers'],0,$TotalCounterMaxItems); $max = @current($tar); $tot = @array_sum($tar); $i = 0; if (is_array($tar)) foreach ($tar as $pn=>$cnt) { $html .= ''. ($TotalCounterShowNumbers ? '' : ''). "". ''; } //------------------------------------------------------------------------------------------------------------ // LOCATIONS $html .= '
$[Percent]$[Count]
'.++$i.'.$pn ". Round(100*$cnt/$tot) ."%
 $cnt
'. '

'. '

$[Locations]

'. ''. '$[Locations] '; @arsort($TotalCounter['Locations']); $tar = @array_slice($TotalCounter['Locations'],0,$TotalCounterMaxItems); $max = @current($tar); $tot = @array_sum($tar); $i = 0; if (is_array($tar)) foreach ($tar as $pn=>$cnt) { $html .= ''. ($TotalCounterShowNumbers ? '' : ''). ''. ''. '". ''; } //------------------------------------------------------------------------------------------------------------ // WEB BOTS $html .= '
$[Percent]$[Count]
'.++$i.'.'. ($alllocations[$pn]=='' ? 'Unknown' : $alllocations[$pn]) .' '. ($pn=='Unknown' || $pn=='localhost' ? '' : "(.$pn)") .' '. Round(100*$cnt/$tot) .'%
 $cnt
'. '

'. '

$[Web bots]

'. ''. '$[Web bots] '; @arsort($TotalCounter['Bots']); $tar = @array_slice($TotalCounter['Bots'],0,$TotalCounterMaxItems); $max = @current($tar); $tot = @array_sum($tar); $i = 0; if (is_array($tar)) foreach ($tar as $pn=>$cnt) { $html .= ''. ($TotalCounterShowNumbers ? '' : ''). "". ''; } $html .= '
$[Percent]$[Count]
'.++$i.'.$pn ". Round(100*$cnt/$tot) ."%
 $cnt

TotalCounter v'.TOTALCOUNTER.'

'; ## by Schlaefer ## Input form for $TotalCounterMaxItems $html .= MarkupToHTML($pagename, '(:input form "$PageUrl?action=totalcounter" post:) $[Items]: (:input text TotalCounterMaxItems {$TotalCounterMaxItems} size=4:) (:input submit :)(:input end:)'); PrintFmt($pagename,array(&$PageStartFmt,$html,&$PageEndFmt)); } ?>