'Prohlížeče', 'referer' => 'Odkud přišli', 'module' => 'Sekce webu', 'host' => 'Adresy návštěvníků', 'word' => 'Hledaná slova', 'user' => 'Uživatelé', 'action' => 'Akce', ); $StatMonths = array('Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec'); /* if (!session_is_registered('Stat_Category')) { session_register('Stat_Category'); $Stat_Category = 'module'; } if (!session_is_registered('Stat_Name')) { session_register('Stat_Name'); $Stat_Name = 'index'; } */ function System_Date() { return(gmdate('Y-m-d')); } function StatUpdate($Cat, $Name) { global $DB_Prefix, $Database; $Date = System_Date(); $DbResult = $Database->select('stat', '*', "category='$Cat' AND name='$Name' AND date='$Date'"); if($DbResult->num_rows > 0) $Database->query("UPDATE ".$DB_Prefix."stat SET hits=hits+1 WHERE category='$Cat' AND name='$Name' AND date='$Date'"); else { $Data = array( 'category' => $Cat, 'name' => $Name, 'date' => $Date, 'hits' => 1, ); $Database->insert('stat', $Data); } } function StatProcess() { global $Options; // Zjistí zobrazený modul StatUpdate('module', substr($_SERVER['SCRIPT_NAME'], $Options['StatPathCut'])); // Zjistí stránku odkud uzivatel přisel if(array_key_exists('HTTP_REFERER', $_SERVER)) { $Url = explode('/',$_SERVER['HTTP_REFERER']); if(strpos($Url[2],':')) { $Hostname = explode(':',$Url[2]); $ServerIP = gethostbyname($HostName[0]); } else $ServerIP = gethostbyname($Url[2]); //echo($ServerIP.'-'.$_SERVER["SERVER_ADDR"]); if(($ServerIP != $_SERVER["SERVER_ADDR"]) && ($ServerIP!='127.0.0.1')) StatUpdate('referer', $_SERVER['HTTP_REFERER']); } else StatUpdate('referer', 'direct'); // Zjistí typ prohlíľeče StatUpdate('browser', $_SERVER['HTTP_USER_AGENT']); // Zjistí DNS a IP adresu klienta StatUpdate('host', $_SERVER['REMOTE_ADDR']); } function StatShow() { if(!array_key_exists('period', $_GET)) $Period = ''; else $Period = $_GET['period']; switch($Period) { case 'years': $Out = StatShowYears(); break; case 'months': $Out = StatShowMonths(); break; case 'days': $Out = StatShowDays(); break; default: $Out = StatShowMain(); } return($Out); } function StatShowYears() { global $Options, $Database; if(array_key_exists('name', $_GET) and array_key_exists('category', $_GET)) { $Output = '
Roční statistika

'. ''; // Zjisti rozmezí roků $DbResult = $Database->select('stat', 'DISTINCT date', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"'); while($Row = $DbResult->fetch_assoc()) { $Year = substr($Row['date'],0,4); if(!isset($Min)) $Min = $Year; if(!isset($Max)) $Max = $Year; if(($Year < $Min) or ($Min=='')) $Min = $Year; if($Year > $Max) $Max = $Year; } // Načti body roků a body celkem for($I=$Min;$I<=$Max;$I++) { $DateFrom = $I; $DateTo = $DateFrom.'-12-31'; $DateFrom .= '-01-01'; $DbResult = $Database->select('stat', 'SUM(hits)', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"'); $Row = $DbResult->fetch_row(); $Total = $Row[0]; $DbResult = $Database->select('stat', 'hits', 'name="'.$_GET['name'].'" AND date>="'.$DateFrom.'" AND date<="'.$DateTo.'" AND category="'.$_GET['category'].'"'); $Row = $DbResult->fetch_row(); $Percent = round($Row[0]/$Total*100,2); if($Percent==0) $Percent = '0'; $Output .= ''. ''; } $Output .= '
RokProhlédnutých stránek
'.$I.'  '.$Percent.'% ('.$Row[0].')
Zpátky přehled statistiky
'; } return($Output); } // Zobrazí statistiku měsícu // function StatShowMonths() { global $StatMonths, $Database; if(array_key_exists('name', $_GET) and array_key_exists('category', $_GET) and array_key_exists('year', $_GET)) { $Output = '
Měsíční statistika pro rok '.$_GET['year'].'

'. ''; // Spočítej počty pro měsíce for($I=1;$I<13;$I++) { $DateFrom = $_GET['year'].'-'.$I.'-'; $DateTo = $DateFrom.'31'; $DateFrom .= '01'; $DbResult = $Database('stat', 'SUM(hits)', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"'); $Row = $DbResult->fetch_row(); $Total = $Row[0]; $DbResult = $Datbase->select('stat', 'hits', 'name="'.$_GET['name'].'" AND date>="'.$DateFrom.'" AND date<="'.$DateTo.'" AND category="'.$_GET['category'].'"'); $Row = $DbResult->fetch_row(); $Percent = round($Row[0]/$Total*100,2); if($Percent==0) $Percent = '0'; $Output .= ''. ''; } $Output .= '
MěsícProhlédnutých stránek
'.$StatMonths[$I-1].'  '.$Percent.'% ('.$Row[0].')
Zpátky na statistiku roků
'; return($Output); } } function StatShowDays() { global $StatMonths, $Database; if(array_key_exists('name', $_GET) and array_key_exists('category', $_GET) and array_key_exists('year', $_GET) and array_key_exists('month', $_GET)) { $Output = '
Denní statistika pro měsic '.$StatMonths[$_GET['month']].'

'. ''; for($I=1;$I<32;$I++) { $DbResult = $Database->select('stat', 'SUM(hits)', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"'); $Row = $DbResult->fetch_row(); $Total = $Row[0]; $Date = $_GET['year'].'-'.$_GET['month'].'-'.$I; $DbResult = $Database->select('stat', 'hits', 'name="'.$_GET['name'].'" AND date="'.$Date.'" AND category="'.$_GET['category'].'"'); $Row = $DbResult->fetch_row(); $Percent = round($Row[0]/$Total*100,2); if($Percent==0) $Percent = '0'; $Output .= ''. ''; } $Output .= '
DenProhlédnutých stránek
'.$I.'  '.$Percent.'% ('.$Row[0].')
Zpátky na statistiku měsíců
'; } return($Output); } function StatShowMain() { global $StatCategory, $Database; $DbResult = $Database->select('stat', 'DISTINCT category'); $Output = '
Seznam kategorií:

'; while($Row = $DbResult->fetch_assoc()) { $Output .= ''; } $Output .= '
Název
'.$StatCategory[$Row['category']].'
'; if(array_key_exists('category', $_GET)) { $DbResult = $Database->select('stat', 'SUM(hits)', 'category="'.$_GET['category'].'"'); $Row = $DbResult->fetch_row(); $All = $Row[0]; $Output .= '
Výpis kategorie:

'; $DbResult = $Database->select('stat', 'DISTINCT name', "category='".$_GET['category']."' ORDER BY 'name'"); while($Row = $DbResult->fetch_assoc()) { $DbResult2 = $Datbase->select('stat', 'SUM(hits)', "name='".$Row['name']."' AND category='".$_GET['category']."'"); $Row2 = $DbResult2->fetch_array(); if($Row['name'] == 'direct') $Nazev = 'Zadáno přímo'; else $Nazev = $Row['name']; if($_GET['category'] == 'host') $Nazev = gethostbyaddr($Nazev); $Output .= ''. ''; } $Output .= '
NázevStránek
'.$Nazev.''.$Row2[0].'
'; } return($Output); } ?>