[ Index ] |
|
Code source de SPIP Agora 1.4 |
1 <?php 2 /***************************************************** 3 * This file is part of Agora, web based content management system. 4 * 5 * Agora is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; version 2 of the License. 8 * 9 * Agora is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details (file "COPYING"). 13 * 14 * Copyright © Arnaud Martin, Antoine Pitrou et Philippe Rivière. 15 * List of authors detailed in "copyright_fr.html" file. 16 * E-mail : agora@sig.premier-ministre.gouv.fr 17 * Web site : http://www.agora.gouv.fr 18 *****************************************************/ 19 // Ce fichier ne sera execute qu'une fois 20 if (defined("_INC_STATS")) 21 return; 22 23 define("_INC_STATS", "1"); 24 25 function ecrire_stats () { 26 global $id_article, $id_breve, $id_rubrique; 27 28 if ($GLOBALS['HTTP_X_FORWARDED_FOR']) 29 $log_ip = $GLOBALS['HTTP_X_FORWARDED_FOR']; 30 else 31 $log_ip = $GLOBALS['REMOTE_ADDR']; 32 33 if ($id_rubrique > 0) { 34 $log_type = "rubrique"; 35 $log_id_num = $id_rubrique; 36 } 37 else if ($id_article > 0) { 38 $log_type = "article"; 39 $log_id_num = $id_article; 40 } 41 else if ($id_breve > 0) { 42 $log_type = "breve"; 43 $log_id_num = $id_breve; 44 } 45 else { 46 $log_type = "autre"; 47 $log_id_num = 0; 48 } 49 50 // 51 // Loguer la visite dans la base si possible 52 // 53 if ($log_type != "autre") { 54 //----------Modification Clever Age elebescond---------- 55 require_once(dirname(__FILE__). "/ecrire/include/bd/inc_visite_factory.php"); 56 $visiteMetier = &recuperer_instance_visite(); 57 $addVisiteTempOK = $visiteMetier->addVisiteTemp($log_ip, $log_type, $log_id_num); 58 } 59 60 if (lire_meta('activer_statistiques_ref') == 'oui') { 61 $url_site_spip = lire_meta('adresse_site'); 62 $url_site_spip = eregi_replace("^((https?|ftp)://)?(www\.)?", "", $url_site_spip); 63 $log_referer = $GLOBALS['HTTP_REFERER']; 64 65 if (($url_site_spip <> '')AND strpos('-' . strtolower($log_referer), 66 strtolower($url_site_spip))AND !$GLOBALS['var_recherche']) 67 $log_referer = ""; 68 if ($log_referer) { 69 $referer_md5 = '0x' . substr(md5($log_referer), 0, 16); 70 //----------Modification Clever Age elebescond---------- 71 require_once(dirname(__FILE__). "/ecrire/include/bd/inc_referer_factory.php"); 72 $refererMetier = &recuperer_instance_referer(); 73 $addRefererTempOK = $refererMetier->addRefererTemp( 74 $log_ip, $log_referer, $referer_md5, $log_type, $log_id_num); 75 if (PEAR::isError($addRefererTempOK)) { 76 die($addRefererTempOK->getMessage()); 77 } 78 } 79 } 80 81 // Traiter les referers toutes les heures 82 $date_refs = lire_meta('date_stats_referers'); 83 84 if ((time() - $date_refs) > 3600) { 85 include_ecrire ("inc_meta.php"); 86 ecrire_meta("date_stats_referers", time()); 87 ecrire_meta('calculer_referers_now', 'oui'); 88 ecrire_metas(); 89 } 90 } 91 92 function archiver_stats () { 93 // 94 // Archivage des visites temporaires 95 // 96 97 // referers pas finis ? 98 if (lire_meta('calculer_referers_now') == 'oui') { 99 //if (timeout('archiver_stats')) { 100 include_ecrire ("inc_meta.php"); 101 include_ecrire("inc_statistiques.php"); 102 ecrire_meta('calculer_referers_now', 'non'); 103 ecrire_metas(); 104 calculer_referers(); 105 //} 106 } 107 108 // nettoyage du matin 109 if (date("Y-m-d") <> ($last_date = lire_meta("date_statistiques"))) { 110 //if (timeout('archiver_stats')) { 111 include_ecrire ("inc_meta.php"); 112 include_ecrire("inc_statistiques.php"); 113 ecrire_meta("date_statistiques", date("Y-m-d")); 114 ecrire_metas(); 115 calculer_visites($last_date); 116 if (lire_meta('activer_statistiques_ref') == 'oui') { 117 // purger les referers du jour 118 //----------Modification Clever Age elebescond---------- 119 $refererMetier = &recuperer_instance_referer(); 120 $resetOneDayOK = $refererMetier->resetOneDay(); 121 122 if (PEAR::isError($resetOneDayOK)) { 123 die($resetOneDayOK->getMessage()); 124 } 125 126 ecrire_meta('calculer_referers_now', 'oui'); 127 ecrire_metas(); 128 } 129 //} 130 } 131 132 // popularite, mise a jour une demi-heure 133 $date_popularite = lire_meta('date_stats_popularite'); 134 135 if ((time() - $date_popularite) > 1800) { 136 //if (timeout('archiver_stats')) { 137 include_ecrire("inc_statistiques.php"); 138 calculer_popularites(); 139 //} 140 } 141 } 142 143 function afficher_raccourci_stats ($id_article) { 144 require_once(dirname(__FILE__). "/ecrire/include/bd/inc_article_factory.php"); 145 //---------Modification Clever Age ---------------- 146 $articleMetier = &recuperer_instance_article(); 147 $loadOK = $articleMetier->loadLightWeight($id_article); 148 149 if (PEAR::isError($loadOK)) { 150 die($loadOK->getMessage()); 151 } 152 else { 153 if ($articleMetier->getStatut() == "publie") { 154 $visites = intval($articleMetier->getVisites()); 155 $popularite = ceil($articleMetier->getPopularite()); 156 $visiteMetier = &recuperer_instance_visite(); 157 $visitesTemp = $visiteMetier->howManyDistinctVisiteForAnArticle($id_article); 158 159 if (PEAR::isError($visitesTemp)) { 160 die($visitesTemp->getMessage()); 161 } 162 163 $visites = $visites + $visitesTemp; 164 bouton_admin("$visites visites ; popularité : $popularite", 165 "./ecrire/statistiques_visites.php?id_article=$id_article"); 166 } 167 } 168 } 169 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sat Feb 24 14:40:03 2007 | par Balluche grâce à PHPXref 0.7 |