".$_['dstat_no_data']."

"; } $browserArray = $access['stat']['browser']; $browserListStock = array(); $browserTableStock = array(); arsort($browserArray); foreach($browserArray as $browserName=>$value) { foreach($browser as $browserRef=>$refVal) { if($browserName == $browserRef) { $brName = $browser["$browserRef"]["title"]; if($browserName == "other") {$brName = $_["misc_other"];} $brIcon = dc_app_url. '/ecrire/tools/bbclone/images/browser_'.$browser["$browserRef"]["icon"].'.png'; $robots = GStat::BBCtotalrobots(); $brPourcent = round(100 * ($value / ($access['stat']['totalcount'] - $robots)), 2); $browserListStock[] = '
  • '.$brName.' '.$brName.' ('.$value.')
  • '; $browserTableStock[] = ''.$brName.''.$brName.''.$value.''.$brPourcent.'%'; } } } for($i=0; $i<(count($browserArray) - $topX);$i++) { array_pop($browserListStock); array_pop($browserTableStock); } if($returnType == 'table') { return "\n".implode("\n",$browserTableStock)."\n
    "; } else { return "
      \n".implode("\n",$browserListStock)."\n
    "; } } #Retourne, selon paramètre, une liste ou un tableau des n premiers systemes d'exploitation #Paramètres: $topX: nombre de systèmes d'exploitation à afficher, par défaut, 10 # $returnType: décide du format de sortie, table ou list, par défaut "list" function BBCtopos($returnType='list', $topX=10) { global $access, $os, $_, $BBC_LANGUAGE; require dirname(__FILE__).'/../bbclone/conf/config.php'; require dirname(__FILE__).'/../bbclone/var/access.php'; require dirname(__FILE__).'/../bbclone/lib/os.php'; require dirname(__FILE__).'/../bbclone/language/'.$BBC_LANGUAGE.'.php'; if( !isset($access['stat']['os']) ) { return "

    ".$_['dstat_no_data']."

    "; } $osArray = $access['stat']['os']; $osListStock = array(); $osTableStock = array(); arsort($osArray); foreach($osArray as $osName=>$value) { foreach($os as $osRef=>$refVal) { if($osName == $osRef) { $oName = $os["$osRef"]["title"]; if($osName == "other") {$oName = $_["misc_other"];} $oIcon = dc_app_url. '/ecrire/tools/bbclone/images/os_'.$os["$osRef"]["icon"].'.png'; $robots = GStat::BBCtotalrobots(); $oPourcent = round(100 * ($value / ($access['stat']['totalcount'] - $robots)), 2); $osListStock[] = '
  • '.$oName.' '.$oName.' ('.$value.')
  • '; $osTableStock[] = ''.$oName.''.$oName.''.$value.''.$oPourcent.'%'; } } } for($i=0; $i<(count($osArray) - $topX);$i++) { array_pop($osListStock); array_pop($osTableStock); } if($returnType == 'table') { return "\n".implode("\n",$osTableStock)."\n
    "; } else { return "
      \n".implode("\n",$osListStock)."\n
    "; } } #Retourne, selon paramètre, une liste ou un tableau des n premiers robots #Paramètres: $topX: nombre de robots à afficher, par défaut, 10 # $returnType: décide du format de sortie, table ou list, par défaut "list" function BBCtoprobots($returnType='list', $topX=10) { global $access, $robot, $_, $BBC_LANGUAGE; require dirname(__FILE__).'/../bbclone/conf/config.php'; require dirname(__FILE__).'/../bbclone/var/access.php'; require dirname(__FILE__).'/../bbclone/lib/robot.php'; require dirname(__FILE__).'/../bbclone/language/'.$BBC_LANGUAGE.'.php'; if( !isset($access['stat']['robot']) ) { return "

    ".$_['dstat_no_data']."

    "; } $robotArray = $access['stat']['robot']; $robotListStock = array(); $robotTableStock = array(); arsort($robotArray); foreach($robotArray as $robotName=>$value) { foreach($robot as $robotRef=>$refVal) { if($robotName == $robotRef) { $robName = $robot["$robotRef"]["title"]; if($robotName == "other") {$robName = $_["misc_other"];} $robIcon = dc_app_url. '/ecrire/tools/bbclone/images/robot_'.$robot["$robotRef"]["icon"].'.png'; $robPourcent = round(100 * ($value / (array_sum($access['stat']['robot']))), 2); $robotListStock[] = '
  • '.$robName.' '.$robName.' ('.$value.')
  • '; $robotTableStock[] = ''.$robName.''.$robName.''.$value.''.$robPourcent.'%'; } } } for($i=0; $i<(count($robotArray) - $topX); $i++) { array_pop($robotListStock); array_pop($robotTableStock); } if($returnType == 'table') { return "\n".implode("\n", $robotTableStock)."\n
    "; } else { return "
      \n".implode("\n", $robotListStock)."\n
    "; } } #Retourne, selon paramètre, une liste ou un tableau des n premiers pays d'origine #Paramètres: $topX: nombre de pays à afficher, par défaut, 10 # $returnType: décide du format de sortie, table ou list, par défaut "list" function BBCtoplands($returnType='list', $topX=10) { global $access, $_, $BBC_LANGUAGE; require dirname(__FILE__).'/../bbclone/conf/config.php'; require dirname(__FILE__).'/../bbclone/var/access.php'; require dirname(__FILE__).'/../bbclone/language/'.$BBC_LANGUAGE.'.php'; if( !isset($access['stat']['ext']) ) { return "

    ".$_['dstat_no_data']."

    "; } $ext = $_; $extArray = $access['stat']['ext']; $extListStock = array(); $extTableStock = array(); arsort($extArray); foreach($extArray as $extName=>$value) { foreach($ext as $extRef=>$refVal) { if($extName == $extRef) { $exName = $ext["$extRef"]; $exIcon = dc_app_url. '/ecrire/tools/bbclone/images/ext_'.$extRef.'.png'; $exPourcent = round(100 * ($value / $access['stat']['totalcount']), 2); $extListStock[] = '
  • '.$exName.' '.$exName.' ('.$value.')
  • '; $extTableStock[] = ''.$exName.''.$exName.''.$value.''.$exPourcent.'%'; } } } for($i=0; $i<(count($extArray) - $topX); $i++) { array_pop($extListStock); array_pop($extTableStock); } if($returnType == 'table') { return "\n".implode("\n", $extTableStock)."\n
    "; } else { return "
      \n".implode("\n", $extListStock)."\n
    "; } } #Retourne, selon paramètre, une liste ou un tableau des n premières pages #Paramètres: $topX: nombre de pages à afficher, par défaut, 10 # $returnType: décide du format de sortie, table ou list, par défaut "list" # utilise la fonction de tri pageCount(), hors classe, déclarée en bas du fichier. function BBCtoppages($returnType='list', $topX=10, $showCategories=true) { global $access, $blog; require dirname(__FILE__).'/../bbclone/var/access.php'; if( !isset($access['page']) ) { return "

    ".$_['dstat_no_data']."

    "; } $pageArray = $access['page']; $pageListStock = array(); $pageTableStock = array(); uasort($pageArray, "pageCount"); foreach($pageArray as $pageName=>$value) { $categorie = $blog->getCat(substr($pageArray["$pageName"]["uri"],1)); if ($showCategories || (($categorie->isEmpty()) && ($pageName != "dc_index"))) { $pageLink = $pageArray["$pageName"]["uri"]; $pageValue = $pageArray["$pageName"]["count"]; $pagePourcent = round(100 * ($pageArray["$pageName"]["count"] / $access['stat']['totalvisits']), 2); if($pageName == "dc_index") { $pageName = dc_blog_name; } $pageListStock[] = '
  • '.$pageName.' ('.$pageValue.')
  • '; $pageTableStock[] = ''.$pageName.''.$pageValue.''.$pagePourcent.'%'; } } for($i=0; $i<(count($pageArray) - $topX); $i++) { array_pop($pageListStock); array_pop($pageTableStock); } if($returnType == 'table') { return "\n".implode("\n", $pageTableStock)."\n
    "; } else { return "
      \n".implode("\n", $pageListStock)."\n
    "; } } #Retourne un tableau des pages visitées dans la semaine function BBCweekvisits() { global $access, $_, $BBC_LANGUAGE; require dirname(__FILE__).'/../bbclone/conf/config.php'; require dirname(__FILE__).'/../bbclone/var/access.php'; require dirname(__FILE__).'/../bbclone/language/'.$BBC_LANGUAGE.'.php'; if( !isset($access['time']['wday']) ) { return "

    ".$_['dstat_no_data']."

    "; } $weekArray = $access['time']['wday']; $weekLang = $_; $weekTable = ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. '
    '.$weekLang['tstat_Su'].''.$weekLang['tstat_Mo'].''.$weekLang['tstat_Tu'].''.$weekLang['tstat_We'].''.$weekLang['tstat_Th'].''.$weekLang['tstat_Fr'].''.$weekLang['tstat_Sa'].'
    '.$access['time']['wday'][0].''.$access['time']['wday'][1].''.$access['time']['wday'][2].''.$access['time']['wday'][3].''.$access['time']['wday'][4].''.$access['time']['wday'][5].''.$access['time']['wday'][6].'
    '; return $weekTable; } #Retourne un tableau des pages visitées dans l'année function BBCyearvisits() { global $access, $_, $BBC_LANGUAGE; require dirname(__FILE__).'/../bbclone/conf/config.php'; require dirname(__FILE__).'/../bbclone/var/access.php'; require dirname(__FILE__).'/../bbclone/language/'.$BBC_LANGUAGE.'.php'; if( !isset($access['time']['month']) ) { return "

    ".$_['dstat_no_data']."

    "; } $yearArray = $access['time']['month']; $yearLang = $_; $yearTable = ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. '
    '.$yearLang['tstat_Jan'].''.$yearLang['tstat_Feb'].''.$yearLang['tstat_Mar'].''.$yearLang['tstat_Apr'].''.$yearLang['tstat_May'].''.$yearLang['tstat_Jun'].''.$yearLang['tstat_Jul'].''.$yearLang['tstat_Aug'].''.$yearLang['tstat_Sep'].''.$yearLang['tstat_Oct'].''.$yearLang['tstat_Nov'].''.$yearLang['tstat_Dec'].'
    '.$access['time']['month'][0].''.$access['time']['month'][1].''.$access['time']['month'][2].''.$access['time']['month'][3].''.$access['time']['month'][4].''.$access['time']['month'][5].''.$access['time']['month'][6].''.$access['time']['month'][7].''.$access['time']['month'][8].''.$access['time']['month'][9].''.$access['time']['month'][10].''.$access['time']['month'][11].'
    '; return $yearTable; } // nouveautés de la version 0.4 #Retourne, selon paramètre, une liste ou un tableau des détails des n derniers visiteurs #Paramètres: $topX: nombre de visiteurs à afficher, par défaut, 10 # $returnType: décide du format de sortie, table ou list, par défaut "list" (non-ordered list, pour cette fonction) # $seeRobots: décide ou non d'inclure les robots dans les résultats, par défaut à "yes", valeurs possibles: "yes", "only" (robots uniquement) et "no" function BBClastvisitors($returnType='list', $topX=10, $seeRobots="yes") { global $access, $_, $BBC_LANGUAGE, $robot, $browser, $os, $last; require dirname(__FILE__).'/../bbclone/conf/config.php'; require dirname(__FILE__).'/../bbclone/var/last.php'; require dirname(__FILE__).'/../bbclone/lib/browser.php'; require dirname(__FILE__).'/../bbclone/lib/os.php'; require dirname(__FILE__).'/../bbclone/lib/robot.php'; require dirname(__FILE__).'/../bbclone/language/'.$BBC_LANGUAGE.'.php'; if( !isset($last['traffic'][0]["time"]) ) { return "

    ".$_['dstat_no_data']."

    "; } $extArray = $_; $lastVisitListStock = array(); $lastVisitTableStock = array(); $incrementor = 0; $trafficArray = array_reverse($last['traffic']); foreach($trafficArray as $trafficStat) { if( is_array($trafficStat) ){ $incrementor++; $visitorMonth = date("M", $trafficStat["time"]); $visitorTranslatedMonth = $extArray["tstat_$visitorMonth"]; $visitorDay = date("j", $trafficStat["time"]); $visitorDate = "".$visitorDay." ".$visitorTranslatedMonth.", ".date("H:i", $trafficStat["time"]).""; $visitorLand = $trafficStat["ext"]; $visitorLandIcon = dc_app_url. '/ecrire/tools/bbclone/images/ext_'.$visitorLand.'.png'; $visitorLandName = $extArray["$visitorLand"]; if( isset($trafficStat["browser"]) && $seeRobots != "only" ) { // nous avons affaire à un visiteur humain et ne sommes pas en cas de "see robots only" $visitorBrowser = $trafficStat["browser"]; $visitorBrowserName = $browser["$visitorBrowser"]["title"]; $visitorBrowserAgent = $trafficStat["browser_note"]; $visitorBrowserIcon = dc_app_url. '/ecrire/tools/bbclone/images/browser_'.$browser["$visitorBrowser"]["icon"].'.png'; $visitorOs = $trafficStat["os"]; $visitorOsName = $os["$visitorOs"]["title"]; $visitorOsIcon = dc_app_url. '/ecrire/tools/bbclone/images/os_'.$os["$visitorOs"]["icon"].'.png'; $lastVisitListStock[] = '
  • '.$visitorDate.' '.$visitorLandName.' '.$visitorOsName.' '.$visitorBrowserName.' '.$visitorBrowserAgent.'
  • '; $lastVisitTableStock[] = ''.$visitorDate.''.$visitorLandName.' '.$visitorLandName.''.$visitorOsName.' '.$visitorOsName.''.$visitorBrowserName.' '.$visitorBrowserAgent.' '.$visitorBrowserName.' '.$visitorBrowserAgent.''; } elseif( isset($trafficStat["robot"]) && $seeRobots == "yes" ) { // nous avons affaire à un robot et nous voulons les inclure dans notre affichage $visitorRobot = $trafficStat["robot"]; $visitorRobotName = $robot["$visitorRobot"]["title"]; $visitorRobotIcon = dc_app_url. '/ecrire/tools/bbclone/images/robot_'.$robot["$visitorRobot"]["icon"].'.png'; $lastVisitListStock[] = '
  • '.$visitorDate.' '.$visitorLandName.' '.$visitorRobotName.'
  • '; $lastVisitTableStock[] = ''.$visitorDate.''.$visitorLandName.' '.$visitorLandName.''.$visitorRobotName.' '.$visitorRobotName.''; } } } for($i=0; $i<($incrementor - $topX); $i++) { array_pop($lastVisitListStock); array_pop($lastVisitTableStock); } if($returnType == 'table') { return "\n".implode("\n", $lastVisitTableStock)."\n
    "; } else { return ""; } } // Nouveautés de la version 0.4.5 #Retourne, selon paramètre, une liste ou un tableau des n premières pages #Paramètres: $topX: nombre de pages à afficher, par défaut, 10 # $returnType: décide du format de sortie, table ou list, par défaut "list" function BBCtopreferers($returnType='list', $topX=10) { global $access, $_, $BBC_LANGUAGE; require dirname(__FILE__).'/../bbclone/conf/config.php'; require dirname(__FILE__).'/../bbclone/var/access.php'; require dirname(__FILE__).'/../bbclone/language/'.$BBC_LANGUAGE.'.php'; $extArray = $_; if( !isset($access['referer']) ) { return "

    ".$_['dstat_no_data']."

    "; } $refererArray = $access['referer']; $refererListStock = array(); $refererTableStock = array(); arsort($refererArray); foreach($refererArray as $refererName=>$value) { $refererLink = "http://".$refererName; $refererValue = $refererArray["$refererName"]; $refererPourcent = round(100 * ($refererArray["$refererName"] / $access['stat']['totalcount']), 2); if($refererName == "not_specified") { $refererListStock[] = '
  • '.$extArray["misc_unknown"].' ('.$refererValue.')
  • '; $refererTableStock[] = ''.$extArray["misc_unknown"].''.$refererValue.''.$refererPourcent.'%'; } else { $refererListStock[] = '
  • '.$refererName.' ('.$refererValue.')
  • '; $refererTableStock[] = ''.$refererName.''.$refererValue.''.$refererPourcent.'%'; } } for($i=0; $i<(count($refererArray) - $topX); $i++) { array_pop($refererListStock); array_pop($refererTableStock); } if($returnType == 'table') { return "\n".implode("\n", $refererTableStock)."\n
    "; } else { return "
      \n".implode("\n", $refererListStock)."\n
    "; } } } // Fonction de classement pour uasort - ajoutée en correction d'un bug - v0.4.1 function pageCount($page_a, $page_b) { if ($page_a['count'] == $page_b['count']) return 0; return ($page_a['count'] > $page_b['count']) ? -1 : 1; } ?>