[ Index ]
 

Code source de SPIP Agora 1.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/Agora1-4/ -> inc-stats.php (source)

   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&nbsp;; popularit&eacute;&nbsp;: $popularite", 
 165                           "./ecrire/statistiques_visites.php?id_article=$id_article");
 166          }
 167      }
 168  }
 169  ?>


Généré le : Sat Feb 24 14:40:03 2007 par Balluche grâce à PHPXref 0.7