Changeset 93626 in spip-zone


Ignore:
Timestamp:
Dec 13, 2015, 11:56:49 AM (4 years ago)
Author:
cedric@…
Message:

Indentation et regles de codage selon http://www.spip.net/fr_article3497.html#regles_codage

Location:
_core_/plugins/statistiques
Files:
24 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/statistiques/action/statistiques_archiver.php

    r93092 r93626  
    1717 * @license GNU/GPL
    1818 * @package SPIP\Stats\Actions
    19 **/
    20 
    21 if (!defined("_ECRIRE_INC_VERSION")) return;
     19 **/
     20
     21if (!defined("_ECRIRE_INC_VERSION")) {
     22        return;
     23}
    2224
    2325
     
    2527        /**
    2628         * Nombre d'années après quoi on permet de concaténer les statistiques de visites par mois
    27          * 
     29         *
    2830         * Après ce nombre d'années, on peut concaténer les données de visites d'articles par mois
    2931         * pour prendre moins de place dans la base de données
    3032         *
    31          * @var int Nombre d'années 
    32         **/
     33         * @var int Nombre d'années
     34         **/
    3335        define('STATISTIQUES_ARCHIVER_PAR_MOIS', 2);
    3436}
     
    3739        /**
    3840         * Nombre d'années après quoi on permet de concaténer les statistiques de visites par an
    39          * 
     41         *
    4042         * Après ce nombre d'années, on peut concaténer les données de visites d'articles par années
    4143         * pour prendre moins de place dans la base de données
    4244         *
    43          * @var int Nombre d'années 
    44         **/
     45         * @var int Nombre d'années
     46         **/
    4547        define('STATISTIQUES_ARCHIVER_PAR_AN', 5);
    4648}
     
    4951/**
    5052 * Archiver ou nettoyer des statistiques
    51  * 
     53 *
    5254 * @param string $arg
    5355 */
    54 function action_statistiques_archiver_dist($arg = null){
     56function action_statistiques_archiver_dist($arg = null) {
    5557        if (!$arg) {
    5658                $securiser_action = charger_fonction('securiser_action', 'inc');
     
    6769                'nettoyer_visites_articles',
    6870                'nettoyer_referers_articles'
    69         ))) {
     71        ))
     72        ) {
    7073                include_spip('inc/minipres');
    7174                minipres("Argument non compris");
     
    8285 * @uses spip_log()
    8386 * @param string $texte
    84 **/
     87 **/
    8588function statistiques_archiver_log($texte) {
    8689        spip_log($texte, 'statistiques_archiver.' . _LOG_INFO_IMPORTANTE);
     
    9295 * Supprime toutes les lignes qui ne font pas partie
    9396 * d'un article présent en base
    94 **/
     97 **/
    9598function statistiques_nettoyer_visites_articles() {
    9699        statistiques_archiver_log("Supprimer les visites d'articles qui n'existent pas dans spip_articles.");
     
    104107 * Supprime toutes les lignes qui ne font pas partie
    105108 * d'un article présent en base
    106 **/
     109 **/
    107110function statistiques_nettoyer_referers_articles() {
    108111        statistiques_archiver_log("Supprimer les referers d'articles qui n'existent pas dans spip_articles.");
     
    120123 *   Cet archivage réduit à 1.200.000 entrées en réduisant
    121124 *   par mois jusqu'à 2012 inclu et par an jusqu'à 2009 inclu.
    122  * 
     125 *
    123126 *   Cela prenait 8 minutes sur ma machine locale
    124127 *   (Intel Core i5-4258U CPU @ 2.40GHz × 4 avec disque SSD)
     
    127130 *   On peut suivre l'avancement dans le fichier de log
    128131 *   tail -f tmp/log/statistiques_archiver.log
    129  * 
     132 *
    130133 * @note
    131134 *   On ne peut pas vraiment avec le code actuel de la fonction
     
    138141 * @uses statistiques_concatener_visites_par_mois()
    139142 * @uses statistiques_concatener_visites_par_an()
    140 **/
     143 **/
    141144function statistiques_archiver_visites_articles() {
    142145
    143146        // Tenter de donner du temps au temps
    144         @set_time_limit(15 * 60); // 15mn
    145 
    146         $annee_par_mois = date('Y') - STATISTIQUES_ARCHIVER_PAR_MOIS;
    147         $annee_par_an   = date('Y') - STATISTIQUES_ARCHIVER_PAR_AN;
     147        @set_time_limit(15*60); // 15mn
     148
     149        $annee_par_mois = date('Y')-STATISTIQUES_ARCHIVER_PAR_MOIS;
     150        $annee_par_an = date('Y')-STATISTIQUES_ARCHIVER_PAR_AN;
    148151
    149152        $annee_minimum = statistiques_concatener_annee_minimum();
     
    179182 *
    180183 * @see statistiques_concatener_visites_entre_jours()
    181  * 
     184 *
    182185 * @param int $annee
    183186 *    On concatène ce qui est avant cette année là.
    184 **/
     187 **/
    185188function statistiques_concatener_visites_par_mois($annee) {
    186189        return statistiques_concatener_visites_entre_jours($annee, 1, 31);
    187190}
    188 
    189191
    190192
     
    201203 *    Toutes les entrées entre le jour $debut+1 et $fin seront supprimées
    202204 *    et concaténées au jour $debut.
    203  * 
    204 **/
     205 *
     206 **/
    205207function statistiques_concatener_visites_entre_jours($annee, $debut, $fin) {
    206208
     
    212214        if ($annee_minimum > $annee) {
    213215                statistiques_archiver_log("Il n'y a pas de statistiques assez anciennes !");
     216
    214217                return false;
    215218        }
     
    217220        // on a besoin pour le champ date d'une écriture sur 2 chiffres.
    218221        $debut = str_pad($debut, 2, '0', STR_PAD_LEFT);
    219         $fin   = str_pad($fin,  2, '0', STR_PAD_LEFT);
     222        $fin = str_pad($fin, 2, '0', STR_PAD_LEFT);
    220223
    221224        statistiques_archiver_log("\nConcaténer les visites d'articles (jours entre $debut et $fin)");
     
    223226
    224227        $annees = range($annee_minimum, $annee);
    225         $mois   = range(1, 12);
     228        $mois = range(1, 12);
    226229
    227230        foreach ($annees as $a) {
     
    242245 *     - int : l'année
    243246 *     - false : année non trouvée.
    244 **/
     247 **/
    245248function statistiques_concatener_annee_minimum() {
    246249        static $annee_minimum = null;
     
    253256        if (!$annee_minimum) {
    254257                statistiques_archiver_log("Erreur de calcul de la plus petite année de statistiques !");
     258
    255259                return false;
    256260        }
     
    262266/**
    263267 * Concatène les statistiques de visites d'articles par an
    264  * 
     268 *
    265269 * @param int $annee
    266270 *    On concatène ce qui est avant cette année là.
    267  * 
    268 **/
     271 *
     272 **/
    269273function statistiques_concatener_visites_par_an($annee) {
    270274
     
    276280        if ($annee_minimum > $annee) {
    277281                statistiques_archiver_log("Il n'y a pas de statistiques assez anciennes !");
     282
    278283                return false;
    279284        }
     
    301306 *     - false : aucune visite sur cette période
    302307 *     - true : il y avait des visites, elles ont été concaténées (ou l'étaient déjà)
    303  * 
    304 **/
     308 *
     309 **/
    305310function statistiques_concatener_visites_entre_periode($date_debut, $date_fin) {
    306311
  • _core_/plugins/statistiques/base/delete_referers.php

    r93092 r93626  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15} // securiser
    1416
    1517// faudrait plutot recuperer dans inc_serialbase et inc_auxbase
     
    2022/**
    2123 * Supprimer les referers
     24 *
    2225 * @param strinf $titre
    2326 * @param bool $reprise
    2427 * @return string
    2528 */
    26 function base_delete_referers_dist($titre = '', $reprise = '')
    27 {
    28         if (!$titre) return; // anti-testeur automatique
     29function base_delete_referers_dist($titre = '', $reprise = '') {
     30        if (!$titre) {
     31                return;
     32        } // anti-testeur automatique
    2933        sql_delete("spip_referers");
    3034        sql_delete("spip_referers_articles");
    31         sql_update("spip_articles", array('referers'=>0));
     35        sql_update("spip_articles", array('referers' => 0));
    3236
    3337        // un pipeline pour detruire les tables de referers installees par les plugins ?
    3438        //pipeline('delete_referers', '');
    35        
     39
    3640        spip_log("raz des referers operee redirige vers " . _request('redirect'));
    3741}
     42
    3843?>
  • _core_/plugins/statistiques/base/delete_stats.php

    r93092 r93626  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15} // securiser
    1416
    1517// faudrait plutot recuperer dans inc_serialbase et inc_auxbase
     
    2022/**
    2123 * Supprimer les stats
     24 *
    2225 * @param strinf $titre
    2326 * @param bool $reprise
    2427 * @return string
    2528 */
    26 function base_delete_stats_dist($titre = '', $reprise = '')
    27 {
    28         if (!$titre) return; // anti-testeur automatique
     29function base_delete_stats_dist($titre = '', $reprise = '') {
     30        if (!$titre) {
     31                return;
     32        } // anti-testeur automatique
    2933        sql_delete("spip_visites");
    3034        sql_delete("spip_visites_articles");
    3135        sql_delete("spip_referers");
    3236        sql_delete("spip_referers_articles");
    33         sql_update("spip_articles", array('visites'=>0, 'referers'=>0, 'popularite'=>0));
     37        sql_update("spip_articles", array('visites' => 0, 'referers' => 0, 'popularite' => 0));
    3438
    3539        // un pipeline pour detruire les tables de stats installees par les plugins
     
    3741        spip_log("raz des stats operee redirige vers " . _request('redirect'));
    3842}
     43
    3944?>
  • _core_/plugins/statistiques/base/stats.php

    r92665 r93626  
    1313/**
    1414 * Déclarations relatives à la base de données
    15  * 
     15 *
    1616 * @plugin Statistiques pour SPIP
    1717 * @license GNU/GPL
    1818 * @package SPIP\Stats\Pipelines
    19 **/
     19 **/
    2020
    21 if (!defined("_ECRIRE_INC_VERSION")) return;
     21if (!defined("_ECRIRE_INC_VERSION")) {
     22        return;
     23}
    2224
    2325/**
     
    3638 *     Description complétée des tables auxiliaires
    3739 */
    38 function stats_declarer_tables_auxiliaires($tables_auxiliaires){
     40function stats_declarer_tables_auxiliaires($tables_auxiliaires) {
    3941
    4042        $spip_visites = array(
    41                         "date"  => "DATE NOT NULL",
    42                         "visites"       => "int UNSIGNED DEFAULT '0' NOT NULL",
    43                         "maj"   => "TIMESTAMP");
     43                "date" => "DATE NOT NULL",
     44                "visites" => "int UNSIGNED DEFAULT '0' NOT NULL",
     45                "maj" => "TIMESTAMP"
     46        );
    4447
    4548        $spip_visites_key = array(
    46                         "PRIMARY KEY"   => "date");
     49                "PRIMARY KEY" => "date"
     50        );
    4751
    4852        $spip_visites_articles = array(
    49                         "date"  => "DATE NOT NULL",
    50                         "id_article"    => "int UNSIGNED NOT NULL",
    51                         "visites"       => "int UNSIGNED DEFAULT '0' NOT NULL",
    52                         "maj"   => "TIMESTAMP");
     53                "date" => "DATE NOT NULL",
     54                "id_article" => "int UNSIGNED NOT NULL",
     55                "visites" => "int UNSIGNED DEFAULT '0' NOT NULL",
     56                "maj" => "TIMESTAMP"
     57        );
    5358
    5459        $spip_visites_articles_key = array(
    55                         "PRIMARY KEY"   => "date, id_article");
    56 
     60                "PRIMARY KEY" => "date, id_article"
     61        );
    5762
    5863
    5964        $spip_referers = array(
    60                         "referer_md5"   => "bigint UNSIGNED NOT NULL",
    61                         "date"          => "DATE NOT NULL",
    62                         "referer"       => "VARCHAR (255)",
    63                         "visites"       => "int UNSIGNED NOT NULL",
    64                         "visites_jour"  => "int UNSIGNED NOT NULL",
    65                         "visites_veille"=> "int UNSIGNED NOT NULL",
    66                         "maj"           => "TIMESTAMP");
     65                "referer_md5" => "bigint UNSIGNED NOT NULL",
     66                "date" => "DATE NOT NULL",
     67                "referer" => "VARCHAR (255)",
     68                "visites" => "int UNSIGNED NOT NULL",
     69                "visites_jour" => "int UNSIGNED NOT NULL",
     70                "visites_veille" => "int UNSIGNED NOT NULL",
     71                "maj" => "TIMESTAMP"
     72        );
    6773
    6874        $spip_referers_key = array(
    69                         "PRIMARY KEY"   => "referer_md5");
     75                "PRIMARY KEY" => "referer_md5"
     76        );
    7077
    7178        $spip_referers_articles = array(
    72                         "id_article"    => "int UNSIGNED NOT NULL",
    73                         "referer_md5"   => "bigint UNSIGNED NOT NULL",
    74                         "referer"       => "VARCHAR (255) DEFAULT '' NOT NULL",
    75                         "visites"       => "int UNSIGNED NOT NULL",
    76                         "maj"           => "TIMESTAMP");
     79                "id_article" => "int UNSIGNED NOT NULL",
     80                "referer_md5" => "bigint UNSIGNED NOT NULL",
     81                "referer" => "VARCHAR (255) DEFAULT '' NOT NULL",
     82                "visites" => "int UNSIGNED NOT NULL",
     83                "maj" => "TIMESTAMP"
     84        );
    7785
    7886        $spip_referers_articles_key = array(
    79                         "PRIMARY KEY"   => "id_article, referer_md5",
    80                         "KEY referer_md5"       => "referer_md5");
     87                "PRIMARY KEY" => "id_article, referer_md5",
     88                "KEY referer_md5" => "referer_md5"
     89        );
    8190
    8291        $tables_auxiliaires['spip_visites'] = array(
    8392                'field' => &$spip_visites,
    84                 'key' => &$spip_visites_key);
     93                'key' => &$spip_visites_key
     94        );
    8595        $tables_auxiliaires['spip_visites_articles'] = array(
    8696                'field' => &$spip_visites_articles,
    87                 'key' => &$spip_visites_articles_key);
     97                'key' => &$spip_visites_articles_key
     98        );
    8899        $tables_auxiliaires['spip_referers'] = array(
    89100                'field' => &$spip_referers,
    90                 'key' => &$spip_referers_key);
     101                'key' => &$spip_referers_key
     102        );
    91103        $tables_auxiliaires['spip_referers_articles'] = array(
    92104                'field' => &$spip_referers_articles,
    93                 'key' => &$spip_referers_articles_key);
     105                'key' => &$spip_referers_articles_key
     106        );
    94107
    95108        return $tables_auxiliaires;
  • _core_/plugins/statistiques/exec/base_delete_referers.php

    r82427 r93626  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517
    16 function exec_base_delete_referers_dist()
    17 {
     18function exec_base_delete_referers_dist() {
    1819        include_spip('inc/autoriser');
    19         if (!autoriser('detruire','_statistiques')) {
     20        if (!autoriser('detruire', '_statistiques')) {
    2021                include_spip('inc/minipres');
    2122                echo minipres();
     
    2425                $admin = charger_fonction('admin', 'inc');
    2526                $res = $admin('delete_referers', _T('statistiques:bouton_effacer_referers'), '');
    26                 if ($res) echo $res; else redirige_url_ecrire('stats_referers','');
    27                
     27                if ($res) {
     28                        echo $res;
     29                } else {
     30                        redirige_url_ecrire('stats_referers', '');
     31                }
     32
    2833        }
    2934}
     35
    3036?>
  • _core_/plugins/statistiques/exec/base_delete_stats.php

    r79783 r93626  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517
    16 function exec_base_delete_stats_dist()
    17 {
     18function exec_base_delete_stats_dist() {
    1819        include_spip('inc/autoriser');
    19         if (!autoriser('detruire','_statistiques')) {
     20        if (!autoriser('detruire', '_statistiques')) {
    2021                include_spip('inc/minipres');
    2122                echo minipres();
     
    2425                $admin = charger_fonction('admin', 'inc');
    2526                $res = $admin('delete_stats', _T('statistiques:bouton_effacer_statistiques'), '');
    26                 if ($res) echo $res; else redirige_url_ecrire('stats_visites','');
    27                
     27                if ($res) {
     28                        echo $res;
     29                } else {
     30                        redirige_url_ecrire('stats_visites', '');
     31                }
     32
    2833        }
    2934}
     35
    3036?>
  • _core_/plugins/statistiques/formulaires/configurer_compteur.php

    r79783 r93626  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    15 function formulaires_configurer_compteur_charger_dist(){
     17function formulaires_configurer_compteur_charger_dist() {
    1618
    1719        $valeurs = array();
    18        
     20
    1921        $valeurs['activer_statistiques'] = $GLOBALS['meta']['activer_statistiques'];
    2022        $valeurs['activer_captures_referers'] = $GLOBALS['meta']['activer_captures_referers'];
    21        
     23
    2224        return $valeurs;
    23        
     25
    2426}
    2527
    26 function formulaires_configurer_compteur_verifier_dist(){
     28function formulaires_configurer_compteur_verifier_dist() {
    2729        $erreurs = array();
    28        
     30
    2931        // les checkbox
    30         foreach(array('activer_statistiques','activer_captures_referers') as $champ)
    31                 if (_request($champ)!='oui')
    32                         set_request($champ,'non');
    33                        
     32        foreach (array('activer_statistiques', 'activer_captures_referers') as $champ) {
     33                if (_request($champ) != 'oui') {
     34                        set_request($champ, 'non');
     35                }
     36        }
     37
    3438        return $erreurs;
    3539}
    3640
    37 function formulaires_configurer_compteur_traiter_dist(){
     41function formulaires_configurer_compteur_traiter_dist() {
    3842        include_spip('inc/config');
    3943        appliquer_modifs_config();
    40                
    41         return array('message_ok'=>_T('config_info_enregistree'));
     44
     45        return array('message_ok' => _T('config_info_enregistree'));
    4246}
    4347
  • _core_/plugins/statistiques/genie/popularites.php

    r92685 r93626  
    1313/**
    1414 * Gestion du calcul des popularités (cron)
    15  * 
     15 *
    1616 * @plugin Statistiques pour SPIP
    1717 * @license GNU/GPL
    1818 * @package SPIP\Statistiques\Genie
    19 **/
     19 **/
    2020
    21 if (!defined("_ECRIRE_INC_VERSION")) return;
     21if (!defined("_ECRIRE_INC_VERSION")) {
     22        return;
     23}
    2224
    2325
     
    2527 * Calcule des coefficients de popularité en fonction de l'intervalle
    2628 * écoulé depuis le précédent calcul
    27  * 
     29 *
    2830 * Popularite, modele logarithmique
    2931 *
    3032 * @param int $duree Intervalle écoulé depuis le précédent calcul
    3133 * @return array {
    32  *     @type float $a Coefficient d'amortissement
    33  *     @type float $b Constante multiplicative
     34 * @type float $a Coefficient d'amortissement
     35 * @type float $b Constante multiplicative
    3436 * }
    35 **/
    36 function genie_popularite_constantes($duree){
     37 **/
     38function genie_popularite_constantes($duree) {
    3739        // duree de demi-vie d'une visite dans le calcul de la popularite (en jours)
    3840        $demivie = 0.5;
     
    4042        $periode = 1;
    4143        // $a est le coefficient d'amortissement depuis la derniere mesure
    42         $a = pow(2, - $duree / ($demivie * 24 * 3600));
     44        $a = pow(2, -$duree/($demivie*24*3600));
    4345        // $b est la constante multiplicative permettant d'avoir
    4446        // une visite par jour (periode de reference) = un point de popularite
     
    4648        // or, magie des maths, ca vaut log(2) * duree journee/demi-vie
    4749        // si la demi-vie n'est pas trop proche de la seconde ;)
    48         $b = log(2) * $periode / $demivie;
     50        $b = log(2)*$periode/$demivie;
    4951
    50         return array($a,$b);
     52        return array($a, $b);
    5153}
    5254
    5355/**
    5456 * Cron de calcul des popularités des articles
    55  * 
     57 *
    5658 * @uses genie_popularite_constantes()
    57  * 
     59 *
    5860 * @param int $t
    5961 *     Timestamp de la dernière exécution de cette tâche
    6062 * @return int
    6163 *     Positif si la tâche a été terminée, négatif pour réexécuter cette tâche
    62 **/
     64 **/
    6365function genie_popularites_dist($t) {
    6466
     
    6769        ecrire_meta('date_popularites', time());
    6870
    69         if (!$t)
     71        if (!$t) {
    7072                return 1;
     73        }
    7174
    72         $duree = time() - $t;
    73         list($a,$b) = genie_popularite_constantes($duree);
     75        $duree = time()-$t;
     76        list($a, $b) = genie_popularite_constantes($duree);
    7477
    7578        // du passe, faisons table (SQL) rase
    76         sql_update('spip_articles', array('maj'=>'maj', 'popularite' => "popularite * $a"), 'popularite>1');
     79        sql_update('spip_articles', array('maj' => 'maj', 'popularite' => "popularite * $a"), 'popularite>1');
    7780
    7881        // enregistrer les metas...
     
    9295                spip_log("Popularite: purger referer depuis $d");
    9396                ecrire_meta('date_statistiques', $aujourdhui);
    94                 if (strncmp($GLOBALS['connexions'][0]['type'],'sqlite',6)==0)
     97                if (strncmp($GLOBALS['connexions'][0]['type'], 'sqlite', 6) == 0) {
    9598                        spip_query("UPDATE spip_referers SET visites_veille=visites_jour, visites_jour=0");
    96           else
     99                } else
    97100                        // version 3 fois plus rapide, mais en 2 requetes
    98101                        #spip_query("ALTER TABLE spip_referers CHANGE visites_jour visites_veille INT( 10 ) UNSIGNED NOT NULL DEFAULT '0',CHANGE visites_veille visites_jour INT( 10 ) UNSIGNED NOT NULL DEFAULT '0'");
    99102                        #spip_query("UPDATE spip_referers SET visites_jour=0");
    100103                        // version 4 fois plus rapide que la premiere, en une seule requete
    101                   // ATTENTION : peut poser probleme cf https://core.spip.net/issues/2505
     104                        // ATTENTION : peut poser probleme cf https://core.spip.net/issues/2505
     105                {
    102106                        sql_alter("TABLE spip_referers DROP visites_veille,
    103107                        CHANGE visites_jour visites_veille INT(10) UNSIGNED NOT NULL DEFAULT '0',
    104108                        ADD visites_jour INT(10) UNSIGNED NOT NULL DEFAULT '0'");
     109                }
    105110        }
    106  
     111
    107112        // et c'est fini pour cette fois-ci
    108113        return 1;
  • _core_/plugins/statistiques/genie/visites.php

    r92685 r93626  
    1313/**
    1414 * Gestion du compage des statistiques de visites (cron)
    15  * 
     15 *
    1616 * @plugin Statistiques pour SPIP
    1717 * @license GNU/GPL
    1818 * @package SPIP\Statistiques\Genie
    19 **/
    20 
    21 if (!defined("_ECRIRE_INC_VERSION")) return;
    22 if (!defined('_CRON_LOT_FICHIERS_VISITE')) define('_CRON_LOT_FICHIERS_VISITE', 100);
     19 **/
     20
     21if (!defined("_ECRIRE_INC_VERSION")) {
     22        return;
     23}
     24if (!defined('_CRON_LOT_FICHIERS_VISITE')) {
     25        define('_CRON_LOT_FICHIERS_VISITE', 100);
     26}
    2327
    2428### Pour se debarrasser du md5, comment faire ? Un index sur 'referer' ?
     
    4044 *     Couples id_article => array (url_referer => nombre) : comptage par article puis url de referer
    4145 * @return void
    42 **/
     46 **/
    4347function compte_fichier_visite($fichier, &$visites, &$visites_a, &$referers, &$referers_a) {
    4448
    4549        // Noter la visite du site (article 0)
    46         $visites ++;
     50        $visites++;
    4751
    4852        $content = array();
    49         if (lire_fichier($fichier, $content))
     53        if (lire_fichier($fichier, $content)) {
    5054                $content = @unserialize($content);
    51         if (!is_array($content)) return;
     55        }
     56        if (!is_array($content)) {
     57                return;
     58        }
    5259
    5360        foreach ($content as $source => $num) {
    5461                list($log_type, $log_id_num, $log_referer)
    5562                        = preg_split(",\t,", $source, 3);
    56                
     63
    5764                // Noter le referer
    5865                if ($log_referer) {
     
    6572                // S'il s'agit d'un article, noter ses visites
    6673                if ($log_type == 'article'
    67                 AND $id_article = intval($log_id_num)) {
     74                        AND $id_article = intval($log_id_num)
     75                ) {
    6876                        if (!isset($visites_a[$id_article])) {
    6977                                $visites_a[$id_article] = 0;
    7078                        }
    71                         $visites_a[$id_article] ++;
     79                        $visites_a[$id_article]++;
    7280                        if ($log_referer) {
    7381                                if (!isset($referers_a[$id_article][$log_referer])) {
     
    8694 * @uses compte_fichier_visite()
    8795 * @uses genie_popularite_constantes()
    88  * 
     96 *
    8997 * @param int $t
    9098 *     Timestamp de la dernière exécution de cette tâche
     
    92100 *     - null si aucune visite à prendre en compte ou si tous les fichiers de visite sont traités,
    93101 *     - entier négatif s'il reste encore des fichiers à traiter
    94 **/
     102 **/
    95103function calculer_visites($t) {
    96104        include_spip('base/abstract_sql');
     
    111119        $date_init = time()-30*60;
    112120        foreach ($sessions as $item) {
    113                 if (($d=@filemtime($item)) < $date_init) {
    114                         if (!$d) $d = $date_init; // si le fs ne donne pas de date, on prend celle du traitement, mais tout cela risque d'etre bien douteux
    115                         $d = date("Y-m-d",$d);
     121                if (($d = @filemtime($item)) < $date_init) {
     122                        if (!$d) {
     123                                $d = $date_init;
     124                        } // si le fs ne donne pas de date, on prend celle du traitement, mais tout cela risque d'etre bien douteux
     125                        $d = date("Y-m-d", $d);
    116126                        spip_log("traite la session $item");
    117127                        compte_fichier_visite($item,
    118128                                $visites[$d], $visites_a[$d], $referers[$d], $referers_a[$d]);
    119129                        spip_unlink($item);
    120                         if (--$compteur <= 0)
     130                        if (--$compteur <= 0) {
    121131                                break;
     132                        }
    122133                }
    123134                #else spip_log("$item pas vieux");
    124135        }
    125         if (!count($visites))
     136        if (!count($visites)) {
    126137                return;
     138        }
    127139
    128140        include_spip('genie/popularites');
    129         list($a,$b) = genie_popularite_constantes(24*3600);
     141        list($a, $b) = genie_popularite_constantes(24*3600);
    130142
    131143        // Maintenant on dispose de plusieurs tableaux qu'il faut ventiler dans
     
    133145        // et spip_referers_articles ; attention a affecter tout ca a la bonne
    134146        // date (celle de la visite, pas celle du traitement)
    135         foreach(array_keys($visites) as $date)
     147        foreach (array_keys($visites) as $date) {
    136148                if ($visites[$date]) {
    137149
    138150                        // 1. les visites du site (facile)
    139                         if (!sql_countsel('spip_visites', "date='$date'"))
     151                        if (!sql_countsel('spip_visites', "date='$date'")) {
    140152                                sql_insertq('spip_visites',
    141153                                        array('date' => $date, 'visites' => $visites[$date]));
    142                         else
    143                                 sql_update('spip_visites', array('visites' => "visites+".intval($visites[$date])), "date='$date'");
    144                
     154                        } else {
     155                                sql_update('spip_visites', array('visites' => "visites+" . intval($visites[$date])), "date='$date'");
     156                        }
     157
    145158                        // 2. les visites des articles
    146159                        if ($visites_a[$date]) {
    147                                 $ar = array();  # tableau num -> liste des articles ayant num visites
    148                                 foreach($visites_a[$date] as $id_article => $n) {
     160                                $ar = array();  # tableau num -> liste des articles ayant num visites
     161                                foreach ($visites_a[$date] as $id_article => $n) {
    149162                                        if (!sql_countsel('spip_visites_articles',
    150                                                  "id_article=$id_article AND date='$date'")){
     163                                                "id_article=$id_article AND date='$date'")
     164                                        ) {
    151165                                                sql_insertq('spip_visites_articles',
    152                                                                 array('id_article' => $id_article,
    153                                                                       'visites' => 0,
    154                                                                       'date' => $date));
     166                                                        array(
     167                                                                'id_article' => $id_article,
     168                                                                'visites' => 0,
     169                                                                'date' => $date
     170                                                        ));
    155171                                        }
    156172                                        $ar[$n][] = $id_article;
     
    160176                                        sql_update('spip_visites_articles',
    161177                                                array('visites' => "visites+$n"),
    162                                                    "date='$date' AND $tous");
    163                
     178                                                "date='$date' AND $tous");
     179
    164180                                        $ref = $noref = array();
    165                                         foreach($liste as $id) {
    166                                                 if (isset($referers_a[$id]))
    167                                                         $ref[]= $id ;
    168                                                 else $noref[]=$id;
     181                                        foreach ($liste as $id) {
     182                                                if (isset($referers_a[$id])) {
     183                                                        $ref[] = $id;
     184                                                } else {
     185                                                        $noref[] = $id;
     186                                                }
    169187                                        }
    170188                                        // il faudrait ponderer la popularite ajoutee ($n) par son anciennete eventuelle
    171189                                        // sur le modele de ce que fait genie/popularites
    172                                         if (count($noref))
     190                                        if (count($noref)) {
    173191                                                sql_update('spip_articles',
    174                                                         array('visites' => "visites+$n",
    175                                                          'popularite' => "popularite+".number_format(round($n*$b,2), 2, '.', ''),
    176                                                          'maj' => 'maj'),
    177                                                         sql_in('id_article',$noref));
    178                                                            
    179                                         if (count($ref))
     192                                                        array(
     193                                                                'visites' => "visites+$n",
     194                                                                'popularite' => "popularite+" . number_format(round($n*$b, 2), 2, '.', ''),
     195                                                                'maj' => 'maj'
     196                                                        ),
     197                                                        sql_in('id_article', $noref));
     198                                        }
     199
     200                                        if (count($ref)) {
    180201                                                sql_update('spip_articles',
    181                                                            array('visites' => "visites+".($n+1),
    182                                                          'popularite' => "popularite+".number_format(round($n*$b,2), 2, '.', ''),
    183                                                          'maj' => 'maj'),
    184                                                         sql_in('id_article',$ref));
    185                                                            
     202                                                        array(
     203                                                                'visites' => "visites+" . ($n+1),
     204                                                                'popularite' => "popularite+" . number_format(round($n*$b, 2), 2, '.', ''),
     205                                                                'maj' => 'maj'
     206                                                        ),
     207                                                        sql_in('id_article', $ref));
     208                                        }
     209
    186210                                        ## Ajouter un JOIN sur le statut de l'article ?
    187211                                }
     
    193217                                $trouver_table = charger_fonction('trouver_table', 'base');
    194218                                $desc = $trouver_table('referers');
    195                                 $n = preg_match('/(\d+)/',$desc['field']['referer'], $r);
     219                                $n = preg_match('/(\d+)/', $desc['field']['referer'], $r);
    196220                                $n = $n ? $r[1] : 255;
    197221                                foreach ($referers[$date] as $referer => $num) {
    198222                                        $referer_md5 = sql_hex(substr(md5($referer), 0, 15));
    199                                         $referer = substr($referer,0,$n);
    200                                         if (!sql_countsel('spip_referers', "referer_md5=$referer_md5"))
     223                                        $referer = substr($referer, 0, $n);
     224                                        if (!sql_countsel('spip_referers', "referer_md5=$referer_md5")) {
    201225                                                sql_insertq('spip_referers',
    202                                                         array('visites' => $num,
    203                                                               'visites_jour' => $num,
    204                                                               'visites_veille' => $num,
    205                                                               'date' => $date,
    206                                                               'referer' => $referer,
    207                                                               'referer_md5' => $referer_md5));
    208                                         else $ar[$num][] = $referer_md5;
    209                                 }
    210                
    211                         // appliquer les increments sur les anciens
    212                         // attention on appelle sql_in en mode texte et pas array
    213                         // pour ne pas passer sql_quote() sur les '0x1234' de referer_md5, cf #849
     226                                                        array(
     227                                                                'visites' => $num,
     228                                                                'visites_jour' => $num,
     229                                                                'visites_veille' => $num,
     230                                                                'date' => $date,
     231                                                                'referer' => $referer,
     232                                                                'referer_md5' => $referer_md5
     233                                                        ));
     234                                        } else {
     235                                                $ar[$num][] = $referer_md5;
     236                                        }
     237                                }
     238
     239                                // appliquer les increments sur les anciens
     240                                // attention on appelle sql_in en mode texte et pas array
     241                                // pour ne pas passer sql_quote() sur les '0x1234' de referer_md5, cf #849
    214242                                foreach ($ar as $num => $liste) {
    215                                         sql_update('spip_referers', array('visites' => "visites+$num", 'visites_jour' => "visites_jour+$num"), sql_in('referer_md5',join(', ', $liste)));
    216                                 }
    217                         }
    218                        
     243                                        sql_update('spip_referers', array('visites' => "visites+$num", 'visites_jour' => "visites_jour+$num"),
     244                                                sql_in('referer_md5', join(', ', $liste)));
     245                                }
     246                        }
     247
    219248                        // 4. Les referers d'articles
    220249                        if ($referers_a[$date]) {
     
    222251                                $insert = array();
    223252                                // s'assurer d'un slot pour chacun
    224                                 foreach ($referers_a[$date] as $id_article => $referers)
     253                                foreach ($referers_a[$date] as $id_article => $referers) {
    225254                                        foreach ($referers as $referer => $num) {
    226255                                                $referer_md5 = sql_hex(substr(md5($referer), 0, 15));
    227256                                                $prim = "(id_article=$id_article AND referer_md5=$referer_md5)";
    228                                                 if (!sql_countsel('spip_referers_articles', $prim))
     257                                                if (!sql_countsel('spip_referers_articles', $prim)) {
    229258                                                        sql_insertq('spip_referers_articles',
    230                                                              array('visites' => $num,
    231                                                                    'id_article' => $id_article,
    232                                                                    'referer' => $referer,
    233                                                                    'referer_md5' => $referer_md5));
    234                                                 else $ar[$num][] = $prim;
    235                                         }
     259                                                                array(
     260                                                                        'visites' => $num,
     261                                                                        'id_article' => $id_article,
     262                                                                        'referer' => $referer,
     263                                                                        'referer_md5' => $referer_md5
     264                                                                ));
     265                                                } else {
     266                                                        $ar[$num][] = $prim;
     267                                                }
     268                                        }
     269                                }
    236270                                // ajouter les visites
    237271                                foreach ($ar as $num => $liste) {
     
    241275                        }
    242276                }
     277        }
    243278
    244279        // S'il reste des fichiers a manger, le signaler pour reexecution rapide
    245         if ($compteur==0) {
     280        if ($compteur == 0) {
    246281                spip_log("il reste des visites a traiter...");
     282
    247283                return -$t;
    248284        }
     
    252288 * Nettoyer les IPs des flooders 24H apres leur dernier passage
    253289 */
    254 function visites_nettoyer_flood(){
    255         if (is_dir($dir=_DIR_TMP.'flood/')){
     290function visites_nettoyer_flood() {
     291        if (is_dir($dir = _DIR_TMP . 'flood/')) {
    256292                include_spip('inc/invalideur');
    257                 if (!defined('_IP_FLOOD_TTL')) define('_IP_FLOOD_TTL',24*3600); // 24H par defaut
     293                if (!defined('_IP_FLOOD_TTL')) {
     294                        define('_IP_FLOOD_TTL', 24*3600);
     295                } // 24H par defaut
    258296                $options = array(
    259                         'mtime' => $_SERVER['REQUEST_TIME'] - _IP_FLOOD_TTL,
     297                        'mtime' => $_SERVER['REQUEST_TIME']-_IP_FLOOD_TTL,
    260298                );
    261                 purger_repertoire($dir,$options);
     299                purger_repertoire($dir, $options);
    262300        }
    263301}
     
    266304/**
    267305 * Cron de calcul de statistiques des visites
    268  * 
     306 *
    269307 * Calcule les stats en plusieurs étapes
     308 *
    270309 * @uses calculer_visites()
    271  * 
     310 *
    272311 * @param int $t
    273312 *     Timestamp de la dernière exécution de cette tâche
    274313 * @return int
    275314 *     Positif si la tâche a été terminée, négatif pour réexécuter cette tâche
    276 **/
     315 **/
    277316function genie_visites_dist($t) {
    278317        $encore = calculer_visites($t);
     
    280319        // Si ce n'est pas fini on redonne la meme date au fichier .lock
    281320        // pour etre prioritaire lors du cron suivant
    282         if ($encore)
    283                 return (0 - $t);
     321        if ($encore) {
     322                return (0-$t);
     323        }
    284324
    285325        // nettoyer les IP des floodeurs quand on a fini de compter les stats
     
    288328        return 1;
    289329}
     330
    290331?>
  • _core_/plugins/statistiques/inc/referenceurs.php

    r88959 r93626  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517/**
     
    2224 * @return array
    2325 */
    24 function stats_load_engines(){
     26function stats_load_engines() {
    2527        $arr_engines = Array();
    2628        lire_fichier(find_in_path('engines-list.txt'), $moteurs);
    27         foreach (array_filter(preg_split("/([\r\n]|#.*)+/", $moteurs)) as $ligne){
     29        foreach (array_filter(preg_split("/([\r\n]|#.*)+/", $moteurs)) as $ligne) {
    2830                $ligne = trim($ligne);
    29                 if (preg_match(',^\[([^][]*)\]$,S', $ligne, $regs)){
     31                if (preg_match(',^\[([^][]*)\]$,S', $ligne, $regs)) {
    3032                        $moteur = $regs[1];
    3133                        $query = '';
    32                 } else if (preg_match(',=$,', $ligne, $regs))
    33                         $query = $ligne;
    34                 else
    35                         $arr_engines[] = array($moteur, $query, $ligne);
     34                } else {
     35                        if (preg_match(',=$,', $ligne, $regs)) {
     36                                $query = $ligne;
     37                        } else {
     38                                $arr_engines[] = array($moteur, $query, $ligne);
     39                        }
     40                }
    3641        }
     42
    3743        return $arr_engines;
    3844}
     
    4046/**
    4147 * Retrouver les mots cles de recherche dans une url de referer
    42  * 
     48 *
    4349 * Adaptees du code des "Visiteurs",
    4450 * par Jean-Paul Dezelus (http://www.phpinfo.net/applis/visiteurs/)
     
    4955 * @return array
    5056 */
    51 function stats_show_keywords($kw_referer){
     57function stats_show_keywords($kw_referer) {
    5258        static $arr_engines = '';
    5359        static $url_site;
    5460
    55         if (!is_array($arr_engines)){
     61        if (!is_array($arr_engines)) {
    5662                // Charger les moteurs de recherche
    5763                $arr_engines = stats_load_engines();
     
    6268        }
    6369
    64         if ($url = @parse_url($kw_referer)){
     70        if ($url = @parse_url($kw_referer)) {
    6571                $query = isset($url['query']) ? $url['query'] : "";
    6672                $host = strtolower($url['host']);
    6773                $path = $url['path'];
    6874                $scheme = $url['scheme'];
     75        } else {
     76                $scheme = $query = $host = $path = '';
    6977        }
    70         else
    71                 $scheme = $query = $host = $path = '';
    7278
    7379        // construire un array des variables directement depuis la query-string
     
    7783        $found = false;
    7884
    79         if (!empty($url_site)){
    80                 if (strpos('-'.$kw_referer, $url_site)!==false){
    81                         if (preg_match(",(s|search|r|recherche)=([^&]+),i", $kw_referer, $regs))
     85        if (!empty($url_site)) {
     86                if (strpos('-' . $kw_referer, $url_site) !== false) {
     87                        if (preg_match(",(s|search|r|recherche)=([^&]+),i", $kw_referer, $regs)) {
    8288                                $keywords = urldecode($regs[2]);
    83                         else
     89                        } else {
    8490                                return array('host' => '');
    85                 }
    86                 else {
    87                         for ($cnt = 0; $cnt<sizeof($arr_engines) && !$found; $cnt++)
    88                         {
    89                                 if ($found = preg_match(','.$arr_engines[$cnt][2].',', $host)
    90                                     OR $found = preg_match(','.$arr_engines[$cnt][2].',', $path)){
     91                        }
     92                } else {
     93                        for ($cnt = 0; $cnt < sizeof($arr_engines) && !$found; $cnt++) {
     94                                if ($found = preg_match(',' . $arr_engines[$cnt][2] . ',', $host)
     95                                        OR $found = preg_match(',' . $arr_engines[$cnt][2] . ',', $path)
     96                                ) {
    9197                                        $kw_referer_host = $arr_engines[$cnt][0];
    9298
    93                                         if (strpos($arr_engines[$cnt][1], '=')!==false){
     99                                        if (strpos($arr_engines[$cnt][1], '=') !== false) {
    94100
    95101                                                // Fonctionnement simple: la variable existe dans l'array
    96102                                                $v = str_replace('=', '', $arr_engines[$cnt][1]);
    97                                                 $keywords = isset($Tquery[$v]) ? $Tquery[$v]: "";
     103                                                $keywords = isset($Tquery[$v]) ? $Tquery[$v] : "";
    98104
    99105                                                // Si on a defini le nom de la variable en expression reguliere, chercher la bonne variable
    100                                                 if (!strlen($keywords)>0){
    101                                                         if (preg_match(",".$arr_engines[$cnt][1]."([^\&]*),", $query, $vals)){
     106                                                if (!strlen($keywords) > 0) {
     107                                                        if (preg_match("," . $arr_engines[$cnt][1] . "([^\&]*),", $query, $vals)) {
    102108                                                                $keywords = urldecode($vals[2]);
    103109                                                        }
     
    107113                                        }
    108114
    109                                         if (($kw_referer_host=="Google")
    110                                              || ($kw_referer_host=="AOL" && strpos($query, 'enc=iso')===false)
    111                                              || ($kw_referer_host=="MSN")
    112                                         ){
     115                                        if (($kw_referer_host == "Google")
     116                                                || ($kw_referer_host == "AOL" && strpos($query, 'enc=iso') === false)
     117                                                || ($kw_referer_host == "MSN")
     118                                        ) {
    113119                                                include_spip('inc/charsets');
    114                                                 if (!isset($ie) OR !$cset = $ie) $cset = 'utf-8';
     120                                                if (!isset($ie) OR !$cset = $ie) {
     121                                                        $cset = 'utf-8';
     122                                                }
    115123                                                $keywords = importer_charset($keywords, $cset);
    116124                                        }
     
    123131        $buffer["host"] = $host;
    124132        $buffer["scheme"] = $scheme;
    125         if (!isset($buffer["hostname"]) OR !$buffer["hostname"])
     133        if (!isset($buffer["hostname"]) OR !$buffer["hostname"]) {
    126134                $buffer["hostname"] = $host;
     135        }
    127136
    128137        $buffer["path"] = substr($path, 1, strlen($path));
    129138        $buffer["query"] = $query;
    130139
    131         if ($keywords!=''){
    132                 if (strlen($keywords)>150){
     140        if ($keywords != '') {
     141                if (strlen($keywords) > 150) {
    133142                        $keywords = spip_substr($keywords, 0, 148);
    134143                        // supprimer l'eventuelle entite finale mal coupee
     
    150159 * @return string
    151160 */
    152 function referes($referermd5, $serveur = ''){
    153         $retarts = sql_allfetsel('J2.id_article, J2.titre', 'spip_referers_articles AS J1 LEFT JOIN spip_articles AS J2 ON J1.id_article = J2.id_article', "(referer_md5='$referermd5' AND J1.maj>=DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).", INTERVAL 2 DAY))", '', "titre", '', '', $serveur);
     161function referes($referermd5, $serveur = '') {
     162        $retarts = sql_allfetsel('J2.id_article, J2.titre',
     163                'spip_referers_articles AS J1 LEFT JOIN spip_articles AS J2 ON J1.id_article = J2.id_article',
     164                "(referer_md5='$referermd5' AND J1.maj>=DATE_SUB(" . sql_quote(date('Y-m-d H:i:s')) . ", INTERVAL 2 DAY))", '',
     165                "titre", '', '', $serveur);
    154166
    155         foreach ($retarts as $k => $rowart){
     167        foreach ($retarts as $k => $rowart) {
    156168                $titre = typo($rowart['titre']);
    157                 $url = generer_url_entite($rowart['id_article'], 'article', '', '', TRUE);
     169                $url = generer_url_entite($rowart['id_article'], 'article', '', '', true);
    158170                $retarts[$k] = "<a href='$url'><i>$titre</i></a>";
    159171        }
    160172
    161         if (count($retarts)>1)
    162                 return '&rarr; '.join(',<br />&rarr; ', $retarts);
    163         if (count($retarts)==1)
    164                 return '&rarr; '.array_shift($retarts);
     173        if (count($retarts) > 1) {
     174                return '&rarr; ' . join(',<br />&rarr; ', $retarts);
     175        }
     176        if (count($retarts) == 1) {
     177                return '&rarr; ' . array_shift($retarts);
     178        }
     179
    165180        return '';
    166181}
  • _core_/plugins/statistiques/inc/statistiques.php

    r93092 r93626  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517/**
    1618 * Calculer la moyenne glissante sur un nombre d'echantillons donnes
     19 *
    1720 * @param int|bool $valeur
    1821 * @param int $glisse
     
    2427        if ($valeur === false) {
    2528                $v = array();
     29
    2630                return 0;
    2731        }
     
    3034        // surplus, on enleve...
    3135        $v[] = $valeur;
    32         if (count($v) > $glisse)
     36        if (count($v) > $glisse) {
    3337                array_shift($v);
     38        }
    3439
    35         return round(statistiques_moyenne($v),2);
     40        return round(statistiques_moyenne($v), 2);
    3641}
    3742
     
    4449 * @return float
    4550 */
    46 function statistiques_moyenne($tab){
    47         if (!$tab) return 0;
     51function statistiques_moyenne($tab) {
     52        if (!$tab) {
     53                return 0;
     54        }
    4855        $moyenne = 0;
    49         foreach($tab as $v) $moyenne += $v;
    50         return  $moyenne / count($tab);
     56        foreach ($tab as $v) {
     57                $moyenne += $v;
     58        }
     59
     60        return $moyenne/count($tab);
    5161}
    5262
     
    5464 * Construire un tableau par popularite
    5565 *   classemnt => id_truc
     66 *
    5667 * @param string $type
    5768 * @param string $serveur
    5869 * @return array
    5970 */
    60 function classement_populaires($type, $serveur = ''){
     71function classement_populaires($type, $serveur = '') {
    6172        static $classement = array();
    62         if (isset($classement[$type]))
     73        if (isset($classement[$type])) {
    6374                return $classement[$type];
    64         $classement[$type] = sql_allfetsel(id_table_objet($type, $serveur), table_objet_sql($type, $serveur), "statut='publie' AND popularite > 0", "", "popularite DESC",'','',$serveur);
    65         $classement[$type] = array_map('reset',$classement[$type]);
     75        }
     76        $classement[$type] = sql_allfetsel(id_table_objet($type, $serveur), table_objet_sql($type, $serveur),
     77                "statut='publie' AND popularite > 0", "", "popularite DESC", '', '', $serveur);
     78        $classement[$type] = array_map('reset', $classement[$type]);
     79
    6680        return $classement[$type];
    6781}
  • _core_/plugins/statistiques/inc/stats_referers_to_array.php

    r79783 r93626  
    1212
    1313
    14 if (!defined('_ECRIRE_INC_VERSION')) return;
     14if (!defined('_ECRIRE_INC_VERSION')) {
     15        return;
     16}
    1517
    1618include_spip('inc/statistiques');
     
    2830        $serveur = '';
    2931
    30         if (in_array($jour,array('jour','veille'))){
     32        if (in_array($jour, array('jour', 'veille'))) {
    3133                $visites .= "_$jour";
    3234                $where[] = "$visites>0";
     
    3537
    3638        if ($id_article) {
    37                         $table = "spip_referers_articles";
    38                         $where[] = "id_article=".intval($id_article);
     39                $table = "spip_referers_articles";
     40                $where[] = "id_article=" . intval($id_article);
    3941        }
    4042
    41         $where = implode(" AND ",$where);
    42         $limit = $limit?"0,".intval($limit):'';
     43        $where = implode(" AND ", $where);
     44        $limit = $limit ? "0," . intval($limit) : '';
    4345
    44         $result = sql_select("referer_md5, referer, $visites AS vis", $table, $where, '', "maj DESC", $limit,'',$serveur);
     46        $result = sql_select("referer_md5, referer, $visites AS vis", $table, $where, '', "maj DESC", $limit, '', $serveur);
    4547
    4648        $referers = array();
    4749        $trivisites = array(); // pour le tri
    48         while ($row = sql_fetch($result,$serveur)) {
     50        while ($row = sql_fetch($result, $serveur)) {
    4951                $referer = interdire_scripts($row['referer']);
    5052                $buff = stats_show_keywords($referer, $referer);
     
    5355                        $refhost = $buff["hostname"];
    5456                        $visites = $row['vis'];
    55                         $host = $buff["scheme"]."://".$buff["host"];
    56                        
     57                        $host = $buff["scheme"] . "://" . $buff["host"];
     58
    5759                        $referers[$refhost]['referer_md5'] = $row['referer_md5'];
    5860
    59                         if (!isset($referers[$refhost]['liens'][$referer]))
     61                        if (!isset($referers[$refhost]['liens'][$referer])) {
    6062                                $referers[$refhost]['liens'][$referer] = 0;
    61                         if (!isset($referers[$refhost]['hosts'][$host]))
     63                        }
     64                        if (!isset($referers[$refhost]['hosts'][$host])) {
    6265                                $referers[$refhost]['hosts'][$host] = 0;
     66                        }
    6367
    64                         if (!isset($referers[$refhost]['visites']))
     68                        if (!isset($referers[$refhost]['visites'])) {
    6569                                $referers[$refhost]['visites'] = 0;
    66                         if (!isset($referers[$refhost]['visites_racine']))
     70                        }
     71                        if (!isset($referers[$refhost]['visites_racine'])) {
    6772                                $referers[$refhost]['visites_racine'] = 0;
    68                         if (!isset($referers[$refhost]['referers']))
     73                        }
     74                        if (!isset($referers[$refhost]['referers'])) {
    6975                                $referers[$refhost]['referers'] = array();
     76                        }
    7077
    7178                        $referers[$refhost]['hosts'][$host]++;
    72                         $referers[$refhost]['liens'][$referer]++ ;
     79                        $referers[$refhost]['liens'][$referer]++;
    7380                        $referers[$refhost]['visites'] += $visites;
    7481                        $trivisites[$refhost] = $referers[$refhost]['visites'];
     
    7683                        $tmp = "";
    7784                        $set = array(
    78                                 'referer'=>$referer,
    79                                 'visites'=>$visites,
    80                                 'referes'=>$id_article?'':referes($row['referer_md5'])
     85                                'referer' => $referer,
     86                                'visites' => $visites,
     87                                'referes' => $id_article ? '' : referes($row['referer_md5'])
    8188                        );
    8289                        if (isset($buff["keywords"])
    83                           AND  $c = $buff["keywords"]) {
     90                                AND $c = $buff["keywords"]
     91                        ) {
    8492                                if (!isset($referers[$refhost]['keywords'][$c])) {
    8593                                        $referers[$refhost]['keywords'][$c] = true;
    8694                                        $set['keywords'] = $c;
    8795                                }
     96                        } else {
     97                                $tmp = $buff["path"];
     98                                if ($buff["query"]) {
     99                                        $tmp .= "?" . $buff['query'];
     100                                }
     101                                if (strlen($tmp)) {
     102                                        $set['path'] = "/$tmp";
     103                                }
    88104                        }
    89                         else {
    90                                 $tmp = $buff["path"];
    91                                 if ($buff["query"])
    92                                         $tmp .= "?".$buff['query'];
    93                                 if (strlen($tmp))
    94                                         $set['path'] = "/$tmp";
     105                        if (isset($set['path']) OR isset($set['keywords'])) {
     106                                $referers[$refhost]['referers'][] = $set;
     107                        } else {
     108                                $referers[$refhost]['visites_racine'] += $visites;
    95109                        }
    96                         if (isset($set['path']) OR isset($set['keywords']))
    97                                 $referers[$refhost]['referers'][] = $set;
    98                         else
    99                                 $referers[$refhost]['visites_racine'] += $visites;
    100110                }
    101111        }
    102112
    103113        // trier les liens pour trouver le principal
    104         foreach($referers as $k=>$r){
     114        foreach ($referers as $k => $r) {
    105115                arsort($referers[$k]['liens']);
    106116                $referers[$k]['liens'] = array_keys($referers[$k]['liens']);
     
    110120        }
    111121
    112         if (count($trivisites)){
    113                 array_multisort($trivisites, SORT_DESC,$referers);
     122        if (count($trivisites)) {
     123                array_multisort($trivisites, SORT_DESC, $referers);
    114124        }
    115        
     125
    116126        return $referers;
    117127}
  • _core_/plugins/statistiques/inc/stats_visites_to_array.php

    r79783 r93626  
    1212
    1313
    14 if (!defined('_ECRIRE_INC_VERSION')) return;
     14if (!defined('_ECRIRE_INC_VERSION')) {
     15        return;
     16}
    1517
    1618include_spip('inc/statistiques');
     
    2325        $now = time();
    2426
    25         if (!in_array($unite,array('jour','mois')))
     27        if (!in_array($unite, array('jour', 'mois'))) {
    2628                $unite = 'jour';
     29        }
    2730        $serveur = '';
    2831
     
    3033        $order = "date";
    3134        $where = array();
    32         if ($duree)
    33                 $where[] = sql_date_proche($order,-$duree,'day',$serveur);
     35        if ($duree) {
     36                $where[] = sql_date_proche($order, -$duree, 'day', $serveur);
     37        }
    3438
    3539        if ($id_article) {
    36                         $table = "spip_visites_articles";
    37                         $where[] = "id_article=".intval($id_article);
     40                $table = "spip_visites_articles";
     41                $where[] = "id_article=" . intval($id_article);
    3842        }
    3943
    40         $where = implode(" AND ",$where);
    41         $format = ($unite=='jour'?'%Y-%m-%d':'%Y-%m-01');
     44        $where = implode(" AND ", $where);
     45        $format = ($unite == 'jour' ? '%Y-%m-%d' : '%Y-%m-01');
    4246
    43         $res = sql_select("SUM(visites) AS v, DATE_FORMAT($order,'$format') AS d", $table, $where, "d", "d", "",'',$serveur);
     47        $res = sql_select("SUM(visites) AS v, DATE_FORMAT($order,'$format') AS d", $table, $where, "d", "d", "", '',
     48                $serveur);
    4449
    45         $format = str_replace('%','',$format);
    46         $periode = ($unite=='jour'?24*3600:365*24*3600/12);
    47         $step = intval(round($periode*1.1,0));
    48         $glisse = constant('MOYENNE_GLISSANTE_'.strtoupper($unite));
     50        $format = str_replace('%', '', $format);
     51        $periode = ($unite == 'jour' ? 24*3600 : 365*24*3600/12);
     52        $step = intval(round($periode*1.1, 0));
     53        $glisse = constant('MOYENNE_GLISSANTE_' . strtoupper($unite));
    4954        moyenne_glissante();
    5055        $data = array();
    51         $r = sql_fetch($res,$serveur);
    52         if (!$r){
    53                 $r = array('d'=>date($format,$now),'v'=>0);
     56        $r = sql_fetch($res, $serveur);
     57        if (!$r) {
     58                $r = array('d' => date($format, $now), 'v' => 0);
    5459        }
    5560        do {
    56                 $data[$r['d']] = array('visites'=>$r['v'],'moyenne'=>moyenne_glissante($r['v'], $glisse));
     61                $data[$r['d']] = array('visites' => $r['v'], 'moyenne' => moyenne_glissante($r['v'], $glisse));
    5762                $last = $r['d'];
    5863
    5964                // donnee suivante
    60                 $r = sql_fetch($res,$serveur);
     65                $r = sql_fetch($res, $serveur);
    6166                // si la derniere n'est pas la date courante, l'ajouter
    62                 if (!$r AND $last!=date($format,$now))
    63                         $r = array('d'=>date($format,$now),'v'=>0);
     67                if (!$r AND $last != date($format, $now)) {
     68                        $r = array('d' => date($format, $now), 'v' => 0);
     69                }
    6470
    6571                // completer les trous manquants si besoin
    66                 if ($r){
     72                if ($r) {
    6773                        $next = strtotime($last);
    6874                        $current = strtotime($r['d']);
    69                         while (($next+=$step)<$current AND $d=date($format,$next)){
    70                                 if (!isset($data[$d]))
    71                                         $data[$d] = array('visites'=>0,'moyenne'=>moyenne_glissante(0, $glisse));
     75                        while (($next += $step) < $current AND $d = date($format, $next)) {
     76                                if (!isset($data[$d])) {
     77                                        $data[$d] = array('visites' => 0, 'moyenne' => moyenne_glissante(0, $glisse));
     78                                }
    7279                                $last = $d;
    7380                                $next = strtotime($last);
    7481                        }
    7582                }
    76         }
    77         while ($r);
     83        } while ($r);
    7884
    7985        // projection pour la derniere barre :
     
    8288        $moyenne = end($data);
    8389        $moyenne = prev($data);
    84         $moyenne = ($moyenne AND isset($moyenne['moyenne']))?$moyenne['moyenne']:0;
     90        $moyenne = ($moyenne AND isset($moyenne['moyenne'])) ? $moyenne['moyenne'] : 0;
    8591        $data[$last]['moyenne'] = $moyenne;
    8692
    8793        // temps restant
    88         $remaining = strtotime(date($format,strtotime(date($format,$now))+$step))-$now;
     94        $remaining = strtotime(date($format, strtotime(date($format, $now))+$step))-$now;
    8995
    9096        $prorata = $remaining/$periode;
    9197
    9298        // projection
    93         $data[$last]['prevision'] = $data[$last]['visites'] + intval(round($moyenne*$prorata));
     99        $data[$last]['prevision'] = $data[$last]['visites']+intval(round($moyenne*$prorata));
    94100
    95   return $data;
     101        return $data;
    96102}
    97103
  • _core_/plugins/statistiques/prive/squelettes/contenu/stats_lang_fonctions.php

    r88959 r93626  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517include_spip('inc/presentation');
     
    3537        }
    3638
    37         $result = sql_select("lang, SUM(".$critere.") AS cnt", "spip_articles", "statut='publie' ", "lang");
    38                
     39        $result = sql_select("lang, SUM(" . $critere . ") AS cnt", "spip_articles", "statut='publie' ", "lang");
     40
    3941        $out .= "\n<table cellpadding='2' cellspacing='0' border='0' width='100%' style='border: 1px solid #aaaaaa;'>";
    4042        $ifond = 1;
    41                
     43
    4244        $visites_abs = 0;
    4345        while ($row = sql_fetch($result)) {
     
    4547                $lang = $row['lang'];
    4648                if ($row['cnt']) {
    47                         $visites = round($row['cnt'] / $total_visites * $taille);
    48                         $pourcent = round($row['cnt'] / $total_visites * 100);
     49                        $visites = round($row['cnt']/$total_visites*$taille);
     50                        $pourcent = round($row['cnt']/$total_visites*100);
    4951                }
    5052
    5153                if ($visites > 0) {
    5254
    53                                 if ($ifond==0){
    54                                         $ifond=1;
    55                                         $couleur="white";
    56                                 }
    57                                 else{
    58                                         $ifond=0;
    59                                         $couleur="eeeeee";
    60                                 }
    61        
    62                                 $out .= "\n<tr style='background-color: $couleur'>";
    63                                 $dir=lang_dir($lang,'',' dir="rtl"');
    64                                 $out .= "<td style='width: 100%; border-bottom: 1px solid #cccccc;'><p $dir><span style='float: $spip_lang_right;'>$pourcent%</span>".traduire_nom_langue($lang)."</p></td>";
    65                                
    66                                 $out .= "<td style='border-bottom: 1px solid #cccccc;'>";
    67                                 $out .= "\n<table cellpadding='0' cellspacing='0' border='0' width='".($taille+5)."'>";
    68                                 $out .= "\n<tr><td style='align:$spip_lang_right; background-color: #eeeeee; border: 1px solid #999999; white-space: nowrap;'>";
    69                                 if ($visites_abs > 0)
    70                                         $out .= "<img src='" . chemin_image('rien.gif') . "' width='$visites_abs' height='10' alt=' ' />";
    71                                 if ($visites>0)
    72                                         $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_langue' style='border: 0px;' width='$visites' height='8' alt=' ' />";
    73                                 $out .= "</td></tr></table>\n";
    74        
    75                                 $out .= "</td>";
    76                                 $out .= "</tr>";
    77                                 $visites_abs += $visites;
     55                        if ($ifond == 0) {
     56                                $ifond = 1;
     57                                $couleur = "white";
     58                        } else {
     59                                $ifond = 0;
     60                                $couleur = "eeeeee";
     61                        }
     62
     63                        $out .= "\n<tr style='background-color: $couleur'>";
     64                        $dir = lang_dir($lang, '', ' dir="rtl"');
     65                        $out .= "<td style='width: 100%; border-bottom: 1px solid #cccccc;'><p $dir><span style='float: $spip_lang_right;'>$pourcent%</span>" . traduire_nom_langue($lang) . "</p></td>";
     66
     67                        $out .= "<td style='border-bottom: 1px solid #cccccc;'>";
     68                        $out .= "\n<table cellpadding='0' cellspacing='0' border='0' width='" . ($taille+5) . "'>";
     69                        $out .= "\n<tr><td style='align:$spip_lang_right; background-color: #eeeeee; border: 1px solid #999999; white-space: nowrap;'>";
     70                        if ($visites_abs > 0) {
     71                                $out .= "<img src='" . chemin_image('rien.gif') . "' width='$visites_abs' height='10' alt=' ' />";
     72                        }
     73                        if ($visites > 0) {
     74                                $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_langue' style='border: 0px;' width='$visites' height='8' alt=' ' />";
     75                        }
     76                        $out .= "</td></tr></table>\n";
     77
     78                        $out .= "</td>";
     79                        $out .= "</tr>";
     80                        $visites_abs += $visites;
    7881                }
    7982        }
    8083        $out .= "</table>\n";
     84
    8185        return $out;
    8286}
     87
    8388?>
  • _core_/plugins/statistiques/prive/squelettes/contenu/stats_referers_fonctions.php

    r85117 r93626  
    11<?php
    22
    3 if (!defined('_ECRIRE_INC_VERSION')) return;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4        return;
     5}
    46
    57// Vignettes de previsulation des referers
     
    911//   Pour Alexa, penser a indiquer l'url du site dans l'id.
    1012//   Dans Alexa, si on supprimer size=small, alors vignettes tres grandes
    11 // - apercite.fr : on conserve exactement la même expression pour insérer l'url du site
    12 if (!isset($GLOBALS['source_vignettes']))
     13// - apercite.fr : on conserve exactement la m�me expression pour ins�rer l'url du site
     14if (!isset($GLOBALS['source_vignettes'])) {
    1315        $GLOBALS['source_vignettes'] = "http://www.apercite.fr/api/apercite/120x90/oui/oui/http://";
     16}
    1417// $source_vignettes = "http://pthumbnails.alexa.com/image_server.cgi?id=www.monsite.net&size=small&url=http://";
    1518
    16 function vigneter_referer($url){
     19function vigneter_referer($url) {
    1720
    18         if (!strlen($GLOBALS['source_vignettes']) OR $GLOBALS['meta']["activer_captures_referers"]=='non')
     21        if (!strlen($GLOBALS['source_vignettes']) OR $GLOBALS['meta']["activer_captures_referers"] == 'non') {
    1922                return '';
     23        }
    2024
    21         return $GLOBALS['source_vignettes'].rawurlencode(preg_replace(";^[a-z]{3,6}://;","",$url));
     25        return $GLOBALS['source_vignettes'] . rawurlencode(preg_replace(";^[a-z]{3,6}://;", "", $url));
    2226}
  • _core_/plugins/statistiques/prive/squelettes/contenu/stats_repartition_fonctions.php

    r93092 r93626  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517include_spip('inc/presentation');
    1618
    1719// http://code.spip.net/@enfants
    18 function enfants($id_parent, $critere, &$nombre_branche, &$nombre_rub){
    19         $result = sql_select("id_rubrique", "spip_rubriques", "id_parent=".intval($id_parent));
     20function enfants($id_parent, $critere, &$nombre_branche, &$nombre_rub) {
     21        $result = sql_select("id_rubrique", "spip_rubriques", "id_parent=" . intval($id_parent));
    2022
    2123        $nombre = 0;
    2224
    23         while($row = sql_fetch($result)) {
     25        while ($row = sql_fetch($result)) {
    2426                $id_rubrique = $row['id_rubrique'];
    2527
    26                 $visites = intval(sql_getfetsel("SUM(".$critere.")", "spip_articles", "id_rubrique=".intval($id_rubrique)));
     28                $visites = intval(sql_getfetsel("SUM(" . $critere . ")", "spip_articles", "id_rubrique=" . intval($id_rubrique)));
    2729                $nombre_rub[$id_rubrique] = $visites;
    2830                $nombre_branche[$id_rubrique] = $visites;
    29                 $nombre += $visites + enfants($id_rubrique, $critere, $nombre_branche, $nombre_rub);
     31                $nombre += $visites+enfants($id_rubrique, $critere, $nombre_branche, $nombre_rub);
    3032        }
    31         if (!isset($nombre_branche[$id_parent])) $nombre_branche[$id_parent]=0;
     33        if (!isset($nombre_branche[$id_parent])) {
     34                $nombre_branche[$id_parent] = 0;
     35        }
    3236        $nombre_branche[$id_parent] += $nombre;
     37
    3338        return $nombre;
    3439}
     
    3843function enfants_aff($id_parent, $decalage, $taille, $critere, $gauche = 0) {
    3944        global $spip_lang_right, $spip_lang_left;
    40         static $total_site=null;
    41         static $niveau=0;
     45        static $total_site = null;
     46        static $niveau = 0;
    4247        static $nombre_branche;
    4348        static $nombre_rub;
    44         if (is_null($total_site)){
     49        if (is_null($total_site)) {
    4550                $nombre_branche = array();
    4651                $nombre_rub = array();
    4752                $total_site = enfants(0, $critere, $nombre_branche, $nombre_rub);
    48                 if ($total_site<1) $total_site=1;
     53                if ($total_site < 1) {
     54                        $total_site = 1;
     55                }
    4956        }
    5057        $visites_abs = 0;
     
    5461
    5562
    56         $result = sql_select("id_rubrique, titre, descriptif", "spip_rubriques", "id_parent=$id_parent",'', '0+titre,titre');
     63        $result = sql_select("id_rubrique, titre, descriptif", "spip_rubriques", "id_parent=$id_parent", '', '0+titre,titre');
    5764
    58         while($row = sql_fetch($result)){
     65        while ($row = sql_fetch($result)) {
    5966                $id_rubrique = $row['id_rubrique'];
    6067                $titre = typo($row['titre']);
    61                 $descriptif = attribut_html(couper(typo($row['descriptif']),80));
     68                $descriptif = attribut_html(couper(typo($row['descriptif']), 80));
    6269
    63                 if ($nombre_branche[$id_rubrique]>0 OR $nombre_rub[$id_rubrique]>0){
    64                         $largeur_branche = floor(($nombre_branche[$id_rubrique] - $nombre_rub[$id_rubrique]) * $taille / $total_site);
    65                         $largeur_rub = floor($nombre_rub[$id_rubrique] * $taille / $total_site);
    66                        
    67                         if ($largeur_branche+$largeur_rub>0){
    68                                        
     70                if ($nombre_branche[$id_rubrique] > 0 OR $nombre_rub[$id_rubrique] > 0) {
     71                        $largeur_branche = floor(($nombre_branche[$id_rubrique]-$nombre_rub[$id_rubrique])*$taille/$total_site);
     72                        $largeur_rub = floor($nombre_rub[$id_rubrique]*$taille/$total_site);
     73
     74                        if ($largeur_branche+$largeur_rub > 0) {
     75
    6976                                if ($niveau == 0) {
    70                                         $couleur="#cccccc";
    71                                 }
    72 
    73                                 else if ($niveau == 1) {
    74                                         $couleur="#eeeeee";
    75                                 }
    76                                 else {
    77                                         $couleur="white";
     77                                        $couleur = "#cccccc";
     78                                } else {
     79                                        if ($niveau == 1) {
     80                                                $couleur = "#eeeeee";
     81                                        } else {
     82                                                $couleur = "white";
     83                                        }
    7884                                }
    7985                                $out .= "<table cellpadding='2' cellspacing='0' border='0' width='100%'>";
    8086                                $out .= "\n<tr style='background-color: $couleur'>";
    81                                 $out .= "\n<td style='border-bottom: 1px solid #aaaaaa; padding-$spip_lang_left: ".($niveau*20+5)."px;'>";
     87                                $out .= "\n<td style='border-bottom: 1px solid #aaaaaa; padding-$spip_lang_left: " . ($niveau*20+5) . "px;'>";
    8288
    83                                
    84                                 if ( $largeur_branche > 2)
    85                                         $out .= bouton_block_depliable("<a href='" . generer_url_entite($id_rubrique,'rubrique') . "' style='color: black;' title=\"$descriptif\">$titre</a>","incertain", "stats$id_rubrique");
    86                                 else
     89
     90                                if ($largeur_branche > 2) {
     91                                        $out .= bouton_block_depliable("<a href='" . generer_url_entite($id_rubrique,
     92                                                        'rubrique') . "' style='color: black;' title=\"$descriptif\">$titre</a>", "incertain",
     93                                                "stats$id_rubrique");
     94                                } else {
    8795                                        $out .= "<div class='rubsimple' style='padding-left: 18px;'>"
    88                                                 . "<a href='" . generer_url_entite($id_rubrique,'rubrique') . "' style='color: black;' title=\"$descriptif\">$titre</a>"
     96                                                . "<a href='" . generer_url_entite($id_rubrique,
     97                                                        'rubrique') . "' style='color: black;' title=\"$descriptif\">$titre</a>"
    8998                                                . "</div>";
     99                                }
    90100                                $out .= "</td>";
    91                                
     101
    92102
    93103                                // pourcentage de visites dans la branche par rapport au total du site
     
    95105                                $out .= "\n<td class='verdana1' style='text-align: $spip_lang_right; width: 40px; border-bottom: 1px solid #aaaaaa;'>$pourcent%</td>";
    96106
    97                                
    98                                 $out .= "\n<td align='right' style='border-bottom: 1px solid #aaaaaa; width:" . ($taille+5) ."px'>";
    99                                
    100                                
    101                                 $out .= "\n<table cellpadding='0' cellspacing='0' border='0' width='".($decalage+1+$gauche)."'>";
     107
     108                                $out .= "\n<td align='right' style='border-bottom: 1px solid #aaaaaa; width:" . ($taille+5) . "px'>";
     109
     110
     111                                $out .= "\n<table cellpadding='0' cellspacing='0' border='0' width='" . ($decalage+1+$gauche) . "'>";
    102112                                $out .= "\n<tr>";
    103                                 if ($gauche > 0) $out .= "<td style='width: " .$gauche."px'></td>";
     113                                if ($gauche > 0) {
     114                                        $out .= "<td style='width: " . $gauche . "px'></td>";
     115                                }
    104116                                $out .= "\n<td style='border: 0px; white-space: nowrap;'>";
    105117                                $out .= "<div style='border: 1px solid #999999; background-color: #dddddd; height: 1em; padding: 0px; margin: 0px;$width'>";
    106                                 if ($visites_abs > 0) $out .= "<img src='" . chemin_image('rien.gif') . "' style='vertical-align: top; height: 1em; border: 0px; width: ".$visites_abs."px;' alt= ' '/>";
    107                                 if ($largeur_branche>0) $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_cumul' style='vertical-align: top; height: 1em; border: 0px; width: " . $largeur_branche . "px;' alt=' ' />";
    108                                 if ($largeur_rub>0) $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_nombre' style='vertical-align: top; width: " . $largeur_rub ."px; height: 1em; border: 0px' alt=' ' />";
     118                                if ($visites_abs > 0) {
     119                                        $out .= "<img src='" . chemin_image('rien.gif') . "' style='vertical-align: top; height: 1em; border: 0px; width: " . $visites_abs . "px;' alt= ' '/>";
     120                                }
     121                                if ($largeur_branche > 0) {
     122                                        $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_cumul' style='vertical-align: top; height: 1em; border: 0px; width: " . $largeur_branche . "px;' alt=' ' />";
     123                                }
     124                                if ($largeur_rub > 0) {
     125                                        $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_nombre' style='vertical-align: top; width: " . $largeur_rub . "px; height: 1em; border: 0px' alt=' ' />";
     126                                }
    109127                                $out .= "</div>";
    110128                                $out .= "</td></tr></table>\n";
    111129                                $out .= "</td></tr></table>";
    112                         }       
     130                        }
    113131                }
    114                
     132
    115133                if (isset($largeur_branche) && ($largeur_branche > 0)) {
    116134                        $niveau++;
    117                         $out .= debut_block_depliable(false,"stats$id_rubrique");
    118                         $out .= enfants_aff($id_rubrique,$largeur_branche, $taille, $critere, $visites_abs+$gauche);
     135                        $out .= debut_block_depliable(false, "stats$id_rubrique");
     136                        $out .= enfants_aff($id_rubrique, $largeur_branche, $taille, $critere, $visites_abs+$gauche);
    119137                        $out .= fin_block();
    120138                        $niveau--;
    121139                }
    122                 $visites_abs = $visites_abs + round($nombre_branche[$id_rubrique]/$total_site*$taille);
     140                $visites_abs = $visites_abs+round($nombre_branche[$id_rubrique]/$total_site*$taille);
    123141        }
     142
    124143        return $out;
    125144}
  • _core_/plugins/statistiques/prive/squelettes/inclure/stats-visites-data_fonctions.php

    r93092 r93626  
    11<?php
    22
    3 if (!defined('_ECRIRE_INC_VERSION')) return;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4        return;
     5}
    46
    57include_spip('inc/acces');
    68include_spip('inc/statistiques');
    79
    8 function duree_affiche($duree, $periode){
    9         if (intval($duree))
     10function duree_affiche($duree, $periode) {
     11        if (intval($duree)) {
    1012                return $duree;
     13        }
    1114
    12         if ($periode=='mois'){
    13                 $debut = sql_getfetsel("date","spip_visites","","","date","0,1");
     15        if ($periode == 'mois') {
     16                $debut = sql_getfetsel("date", "spip_visites", "", "", "date", "0,1");
    1417                $debut = strtotime($debut);
    1518                $duree = ceil((time()-$debut)/24/3600);
     19
    1620                return $duree;
    1721        }
     22
    1823        return 90;
    1924}
    2025
    21 function duree_zoom($duree, $sens = 'plus'){
     26function duree_zoom($duree, $sens = 'plus') {
    2227        $largeur_abs = 420/$duree;
    2328
    2429        if ($largeur_abs > 1) {
    25                 $inc = ceil($largeur_abs / 5);
    26                 $duree_plus = round(420 / ($largeur_abs - $inc));
    27                 $duree_moins = round(420 / ($largeur_abs + $inc));
     30                $inc = ceil($largeur_abs/5);
     31                $duree_plus = round(420/($largeur_abs-$inc));
     32                $duree_moins = round(420/($largeur_abs+$inc));
    2833        }
    2934
     
    3439
    3540        if ($largeur_abs < 1) {
    36                 $duree_plus = round(420 * ((1/$largeur_abs) + 1));
    37                 $duree_moins = round(420 * ((1/$largeur_abs) - 1));
     41                $duree_plus = round(420*((1/$largeur_abs)+1));
     42                $duree_moins = round(420*((1/$largeur_abs)-1));
    3843        }
    39         return ($sens=='plus'?$duree_moins:$duree_plus);
     44
     45        return ($sens == 'plus' ? $duree_moins : $duree_plus);
    4046}
    4147
    42 function stats_total($serveur = ''){
    43         $row = sql_fetsel("SUM(visites) AS total_absolu", "spip_visites",'','','','','',$serveur);
     48function stats_total($serveur = '') {
     49        $row = sql_fetsel("SUM(visites) AS total_absolu", "spip_visites", '', '', '', '', '', $serveur);
     50
    4451        return $row ? $row['total_absolu'] : 0;
    4552}
  • _core_/plugins/statistiques/prive/squelettes/inclure/stats-visites-jours_fonctions.php

    r53216 r93626  
    11<?php
    22
    3 if (!defined('_ECRIRE_INC_VERSION')) return;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4        return;
     5}
    46
    57include_spip('prive/squelettes/inclure/stats-visites-data_fonctions');
  • _core_/plugins/statistiques/prive/squelettes/inclure/stats-visites-mois_fonctions.php

    r53216 r93626  
    11<?php
    22
    3 if (!defined('_ECRIRE_INC_VERSION')) return;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4        return;
     5}
    46
    57include_spip('prive/squelettes/inclure/stats-visites-data_fonctions');
  • _core_/plugins/statistiques/public/stats.php

    r92685 r93626  
    1313/**
    1414 * Loguer une visite
    15  * 
     15 *
    1616 * @plugin Statistiques pour SPIP
    1717 * @license GNU/GPL
    1818 * @package SPIP\Stats\Public
    19 **/
     19 **/
    2020
    21 if (!defined("_ECRIRE_INC_VERSION")) return;
     21if (!defined("_ECRIRE_INC_VERSION")) {
     22        return;
     23}
    2224
    2325/**
    24  * Logue une visite sur une page 
     26 * Logue une visite sur une page
    2527 *
    2628 * Enregistre le passage d'un visiteur sur la page demandée
    27  * dans `tmp/visites/` qui seront ensuite traitées par une tache cron. 
    28  * 
     29 * dans `tmp/visites/` qui seront ensuite traitées par une tache cron.
     30 *
    2931 * Ne tient pas compte
    3032 * - des visites de robots,
    3133 * - des 404,
    3234 * - des forum
    33  * 
     35 *
    3436 * @see genie_visites_dist() Pour la tache cron qui traite les logs.
    35  * 
     37 *
    3638 * @param array|null $contexte
    3739 *     Contexte d'appel de la page ; retrouvé automatiquement sinon.
     
    3941 *     Referer de provenance ; retrouvé automatiquement sinon.
    4042 * @return null|void
    41 **/
     43 **/
    4244function public_stats_dist($contexte = null, $referer = null) {
    43         if (!is_array($contexte)){
     45        if (!is_array($contexte)) {
    4446                $contexte = $GLOBALS['contexte'];
    4547        }
    46         if (is_null($referer)){
     48        if (is_null($referer)) {
    4749                // $_SERVER["HTTP_REFERER"] ne fonctionne pas partout
    48                 if (isset($_SERVER['HTTP_REFERER'])) $referer = $_SERVER['HTTP_REFERER'];
    49                 else if (isset($GLOBALS["HTTP_SERVER_VARS"]["HTTP_REFERER"])) $referer = $GLOBALS["HTTP_SERVER_VARS"]["HTTP_REFERER"];
     50                if (isset($_SERVER['HTTP_REFERER'])) {
     51                        $referer = $_SERVER['HTTP_REFERER'];
     52                } else {
     53                        if (isset($GLOBALS["HTTP_SERVER_VARS"]["HTTP_REFERER"])) {
     54                                $referer = $GLOBALS["HTTP_SERVER_VARS"]["HTTP_REFERER"];
     55                        }
     56                }
    5057        }
    5158
    5259        // Rejet des robots (qui sont pourtant des humains comme les autres)
    53         if (_IS_BOT OR (isset($referer) AND strpbrk($referer, '<>"\''))) return;
     60        if (_IS_BOT OR (isset($referer) AND strpbrk($referer, '<>"\''))) {
     61                return;
     62        }
    5463
    5564        // Ne pas tenir compte des tentatives de spam des forums
    5665        if ($_SERVER['REQUEST_METHOD'] !== 'GET'
    57         OR (isset($contexte['page']) AND $contexte['page'] == 'forum'))
     66                OR (isset($contexte['page']) AND $contexte['page'] == 'forum')
     67        ) {
    5868                return;
     69        }
    5970
    6071        // rejet des pages 404
    6172        if (isset($GLOBALS['page']['status'])
    62         AND $GLOBALS['page']['status'] == 404)
     73                AND $GLOBALS['page']['status'] == 404
     74        ) {
    6375                return;
     76        }
    6477
    6578        // Identification du client
     
    6982                . (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '')
    7083                . (isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : '')
    71         ), 0,10);
     84        ), 0, 10);
    7285
    7386        // Analyse du referer
     
    7689                $url_site_spip = preg_replace(',/$,', '',
    7790                        preg_replace(',^(https?://)?(www\.)?,i', '',
    78                         url_de_base()));
    79                 if (!(($url_site_spip<>'')
    80                 AND strpos('-'.strtolower($referer), strtolower($url_site_spip))
    81                 AND strpos($referer,"recherche=")===false)) {
    82                         $log_referer =$referer;
     91                                url_de_base()));
     92                if (!(($url_site_spip <> '')
     93                        AND strpos('-' . strtolower($referer), strtolower($url_site_spip))
     94                        AND strpos($referer, "recherche=") === false)
     95                ) {
     96                        $log_referer = $referer;
    8397                }
    8498        }
     
    91105        $content = array();
    92106        $fichier = sous_repertoire(_DIR_TMP, 'visites') . $client_id;
    93         if (lire_fichier($fichier, $content))
     107        if (lire_fichier($fichier, $content)) {
    94108                $content = @unserialize($content);
     109        }
    95110
    96111        // 2. Plafonner le nombre de hits pris en compte pour un IP (robots etc.)
     
    99114
    100115                // Identification de l'element
    101                 if (isset($contexte['id_article']))
     116                if (isset($contexte['id_article'])) {
    102117                        $log_type = "article";
    103                 else if (isset($contexte['id_breve']))
    104                         $log_type = "breve";
    105                 else if (isset($contexte['id_rubrique']))
    106                         $log_type = "rubrique";
    107                 else
    108                         $log_type = "";
     118                } else {
     119                        if (isset($contexte['id_breve'])) {
     120                                $log_type = "breve";
     121                        } else {
     122                                if (isset($contexte['id_rubrique'])) {
     123                                        $log_type = "rubrique";
     124                                } else {
     125                                        $log_type = "";
     126                                }
     127                        }
     128                }
    109129
    110                 if ($log_type)
     130                if ($log_type) {
    111131                        $log_type .= "\t" . intval($contexte["id_$log_type"]);
    112                 else    $log_type = "autre\t0";
     132                } else {
     133                        $log_type = "autre\t0";
     134                }
    113135
    114136                $log_type .= "\t" . trim($log_referer);
    115                 if (isset($content[$log_type]))
     137                if (isset($content[$log_type])) {
    116138                        $content[$log_type]++;
    117                 else    $content[$log_type] = 1; // bienvenue au club
     139                } else {
     140                        $content[$log_type] = 1;
     141                } // bienvenue au club
    118142
    119143                ecrire_fichier($fichier, serialize($content));
    120         }
    121         else {
     144        } else {
    122145                $flood = sous_repertoire(_DIR_TMP, 'flood') . $GLOBALS['ip'];
    123146                @touch($flood);
  • _core_/plugins/statistiques/stats_administrations.php

    r92665 r93626  
    1313/**
    1414 * Fichier gérant l'installation et désinstallation du plugin Statistiques
    15  * 
     15 *
    1616 * @plugin Statistiques pour SPIP
    1717 * @license GNU/GPL
    1818 * @package SPIP\Stats\Pipelines
    19 **/
     19 **/
    2020
    21 if (!defined("_ECRIRE_INC_VERSION")) return;
     21if (!defined("_ECRIRE_INC_VERSION")) {
     22        return;
     23}
    2224
    2325/**
     
    2931 *     Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
    3032 * @return void
    31 **/
    32 function stats_upgrade($nom_meta_base_version, $version_cible){
     33 **/
     34function stats_upgrade($nom_meta_base_version, $version_cible) {
    3335        // cas particulier :
    3436        // si plugin pas installe mais que la table existe
    3537        // considerer que c'est un upgrade depuis v 1.0.0
    3638        // pour gerer l'historique des installations SPIP <=2.1
    37         if (!isset($GLOBALS['meta'][$nom_meta_base_version])){
    38                 $trouver_table = charger_fonction('trouver_table','base');
     39        if (!isset($GLOBALS['meta'][$nom_meta_base_version])) {
     40                $trouver_table = charger_fonction('trouver_table', 'base');
    3941                if ($desc = $trouver_table('spip_visites')
    40                   AND isset($desc['exist']) AND $desc['exist']){
    41                         ecrire_meta($nom_meta_base_version,'1.0.0');
     42                        AND isset($desc['exist']) AND $desc['exist']
     43                ) {
     44                        ecrire_meta($nom_meta_base_version, '1.0.0');
    4245                }
    4346                // si pas de table en base, on fera une simple creation de base
     
    4649        $maj = array();
    4750        $maj['create'] = array(
    48                 array('maj_tables',array('spip_visites','spip_visites_articles','spip_referers','spip_referers_articles')),
     51                array('maj_tables', array('spip_visites', 'spip_visites_articles', 'spip_referers', 'spip_referers_articles')),
    4952        );
    5053        $maj['1.0.0'] = array();
     
    6265 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
    6366 * @return void
    64 **/
     67 **/
    6568function stats_vider_tables($nom_meta_base_version) {
    6669        sql_drop_table("spip_visites");
     
    7477        effacer_meta($nom_meta_base_version);
    7578}
     79
    7680?>
  • _core_/plugins/statistiques/stats_autoriser.php

    r93092 r93626  
    33/**
    44 * Déclaration d'autorisations
    5  * 
     5 *
    66 * @plugin Statistiques pour SPIP
    77 * @license GNU/GPL
    88 * @package SPIP\Stats\Pipelines
    9 **/
     9 **/
    1010
    11 if (!defined('_ECRIRE_INC_VERSION')) return;
     11if (!defined('_ECRIRE_INC_VERSION')) {
     12        return;
     13}
    1214
    1315/**
    1416 * Fonction du pipeline autoriser. N'a rien à faire
     17 *
    1518 * @pipeline autoriser
    1619 */
    17 function stats_autoriser(){}
     20function stats_autoriser() { }
    1821
    1922/**
     
    2225 * @uses autoriser_voirstats_dist()
    2326 * @param  string $faire Action demandée
    24  * @param  string $type  Type d'objet sur lequel appliquer l'action
    25  * @param  int    $id    Identifiant de l'objet
    26  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    27  * @param  array  $opt  Options de cette autorisation
     27 * @param  string $type Type d'objet sur lequel appliquer l'action
     28 * @param  int $id Identifiant de l'objet
     29 * @param  array $qui Description de l'auteur demandant l'autorisation
     30 * @param  array $opt Options de cette autorisation
    2831 * @return bool          true s'il a le droit, false sinon
    2932 */
    30 function autoriser_statistiques_menu_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){
     33function autoriser_statistiques_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
    3134        return autoriser('voirstats', $type, $id, $qui, $opt);
    3235}
     
    3740 * @uses autoriser_voirstats_dist()
    3841 * @param  string $faire Action demandée
    39  * @param  string $type  Type d'objet sur lequel appliquer l'action
    40  * @param  int    $id    Identifiant de l'objet
    41  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    42  * @param  array  $opt  Options de cette autorisation
     42 * @param  string $type Type d'objet sur lequel appliquer l'action
     43 * @param  int $id Identifiant de l'objet
     44 * @param  array $qui Description de l'auteur demandant l'autorisation
     45 * @param  array $opt Options de cette autorisation
    4346 * @return bool          true s'il a le droit, false sinon
    4447 */
    45 function autoriser_referers_menu_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){
     48function autoriser_referers_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
    4649        return autoriser('voirstats', $type, $id, $qui, $opt);
    4750}
     
    5659 *
    5760 * @param  string $faire Action demandée
    58  * @param  string $type  Type d'objet sur lequel appliquer l'action
    59  * @param  int    $id    Identifiant de l'objet
    60  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    61  * @param  array  $opt  Options de cette autorisation
     61 * @param  string $type Type d'objet sur lequel appliquer l'action
     62 * @param  int $id Identifiant de l'objet
     63 * @param  array $qui Description de l'auteur demandant l'autorisation
     64 * @param  array $opt Options de cette autorisation
    6265 * @return bool          true s'il a le droit, false sinon
    6366 */
    6467function autoriser_voirstats_dist($faire, $type, $id, $qui, $opt) {
    6568        return (($GLOBALS['meta']["activer_statistiques"] != 'non')
    66                         AND ($qui['statut'] == '0minirezo'));
     69                AND ($qui['statut'] == '0minirezo'));
    6770}
    6871
     
    7275 * @uses autoriser_voirstats_dist()
    7376 * @param  string $faire Action demandée
    74  * @param  string $type  Type d'objet sur lequel appliquer l'action
    75  * @param  int    $id    Identifiant de l'objet
    76  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    77  * @param  array  $opt  Options de cette autorisation
     77 * @param  string $type Type d'objet sur lequel appliquer l'action
     78 * @param  int $id Identifiant de l'objet
     79 * @param  array $qui Description de l'auteur demandant l'autorisation
     80 * @param  array $opt Options de cette autorisation
    7881 * @return bool          true s'il a le droit, false sinon
    7982 */
     
    8790 * @uses autoriser_voirstats_dist()
    8891 * @param  string $faire Action demandée
    89  * @param  string $type  Type d'objet sur lequel appliquer l'action
    90  * @param  int    $id    Identifiant de l'objet
    91  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    92  * @param  array  $opt  Options de cette autorisation
     92 * @param  string $type Type d'objet sur lequel appliquer l'action
     93 * @param  int $id Identifiant de l'objet
     94 * @param  array $qui Description de l'auteur demandant l'autorisation
     95 * @param  array $opt Options de cette autorisation
    9396 * @return bool          true s'il a le droit, false sinon
    9497 */
     
    103106 * @uses autoriser_voirstats_dist()
    104107 * @param  string $faire Action demandée
    105  * @param  string $type  Type d'objet sur lequel appliquer l'action
    106  * @param  int    $id    Identifiant de l'objet
    107  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    108  * @param  array  $opt  Options de cette autorisation
     108 * @param  string $type Type d'objet sur lequel appliquer l'action
     109 * @param  int $id Identifiant de l'objet
     110 * @param  array $qui Description de l'auteur demandant l'autorisation
     111 * @param  array $opt Options de cette autorisation
    109112 * @return bool          true s'il a le droit, false sinon
    110113 */
    111114function autoriser_statslang_onglet_dist($faire, $type, $id, $qui, $opt) {
    112115        $objets = explode(',', isset($GLOBALS['meta']['multi_objets']) ? $GLOBALS['meta']['multi_objets'] : '');
    113         return (in_array('spip_articles',  $objets)
    114              OR in_array('spip_rubriques', $objets))
    115                         AND autoriser('voirstats', $type, $id, $qui, $opt);
     116
     117        return (in_array('spip_articles', $objets)
     118                OR in_array('spip_rubriques', $objets))
     119        AND autoriser('voirstats', $type, $id, $qui, $opt);
    116120}
    117121
     
    121125 * @uses autoriser_voirstats_dist()
    122126 * @param  string $faire Action demandée
    123  * @param  string $type  Type d'objet sur lequel appliquer l'action
    124  * @param  int    $id    Identifiant de l'objet
    125  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    126  * @param  array  $opt  Options de cette autorisation
     127 * @param  string $type Type d'objet sur lequel appliquer l'action
     128 * @param  int $id Identifiant de l'objet
     129 * @param  array $qui Description de l'auteur demandant l'autorisation
     130 * @param  array $opt Options de cette autorisation
    127131 * @return bool          true s'il a le droit, false sinon
    128132 */
  • _core_/plugins/statistiques/stats_ieconfig.php

    r92665 r93626  
    33/**
    44 * Déclarations des configurations qui peuvent être sauvegardées
    5  * 
     5 *
    66 * @plugin Statistiques pour SPIP
    77 * @license GNU/GPL
    88 * @package SPIP\Stats\Pipelines
    9 **/
     9 **/
    1010
    11 if (!defined("_ECRIRE_INC_VERSION")) return;
     11if (!defined("_ECRIRE_INC_VERSION")) {
     12        return;
     13}
    1214
    1315/**
     
    1820 * @param array $table
    1921 *     Déclaration des sauvegardes
    20  * @return array 
     22 * @return array
    2123 *     Déclaration des sauvegardes complétées
    22 **/
    23 function stats_ieconfig_metas($table){
     24 **/
     25function stats_ieconfig_metas($table) {
    2426        $table['statistiques']['titre'] = _T('statistiques:info_forum_statistiques');
    2527        $table['statistiques']['icone'] = 'statistique-16.png';
    2628        $table['statistiques']['metas_brutes'] = 'activer_statistiques,activer_captures_referers';
     29
    2730        return $table;
    2831}
  • _core_/plugins/statistiques/stats_pipelines.php

    r93100 r93626  
    33/**
    44 * Déclarations d'autorisations et utilisations de pipelines
    5  * 
     5 *
    66 * @plugin Statistiques pour SPIP
    77 * @license GNU/GPL
    88 * @package SPIP\Stats\Pipelines
    9 **/
    10 
    11 if (!defined('_ECRIRE_INC_VERSION')) return;
     9 **/
     10
     11if (!defined('_ECRIRE_INC_VERSION')) {
     12        return;
     13}
    1214
    1315
     
    2527 * @param array $entetes liste des entêtes de la page
    2628 * @return array
    27 **/
    28 function stats_affichage_entetes_final($entetes){
     29 **/
     30function stats_affichage_entetes_final($entetes) {
    2931        if (isset($GLOBALS['meta']["activer_statistiques"]) and $GLOBALS['meta']["activer_statistiques"] != "non") {
    3032                $html = preg_match(',^\s*text/html,', $entetes['Content-Type']);
     
    3234                // decomptage des visites, on peut forcer a oui ou non avec le header X-Spip-Visites
    3335                // par defaut on ne compte que les pages en html (ce qui exclue les js,css et flux rss)
    34                 $spip_compter_visites = $html?'oui':'non';
    35                 if (isset($entetes['X-Spip-Visites'])){
    36                         $spip_compter_visites = in_array($entetes['X-Spip-Visites'],array('oui','non'))
    37                                 ?$entetes['X-Spip-Visites']
    38                                 :$spip_compter_visites;
     36                $spip_compter_visites = $html ? 'oui' : 'non';
     37                if (isset($entetes['X-Spip-Visites'])) {
     38                        $spip_compter_visites = in_array($entetes['X-Spip-Visites'], array('oui', 'non'))
     39                                ? $entetes['X-Spip-Visites']
     40                                : $spip_compter_visites;
    3941                        unset($entetes['X-Spip-Visites']);
    4042                }
    4143
    4244                // Gestion des statistiques du site public
    43                 if ($spip_compter_visites!='non') {
     45                if ($spip_compter_visites != 'non') {
    4446                        $stats = charger_fonction('stats', 'public');
    4547                        $stats();
    4648                }
    4749        }
     50
    4851        return $entetes;
    4952}
     
    5760 *
    5861 * @pipeline affiche_milieu
    59  * @param array $flux  Données du pipeline
     62 * @param array $flux Données du pipeline
    6063 * @return array       Données du pipeline
    61 **/
    62 function stats_affiche_milieu($flux){
     64 **/
     65function stats_affiche_milieu($flux) {
    6366        // afficher le formulaire de configuration (activer ou desactiver les statistiques).
    6467        if ($flux['args']['exec'] == 'configurer_avancees') {
    65                 $flux['data'] .= recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_compteur'));
     68                $flux['data'] .= recuperer_fond('prive/squelettes/inclure/configurer',
     69                        array('configurer' => 'configurer_compteur'));
    6670        }
    6771
    6872        // afficher le formulaire de suppression des visites (configuration > maintenance du site).
    6973        if ($flux['args']['exec'] == 'admin_tech') {
    70                 $flux['data'] .= recuperer_fond('prive/squelettes/inclure/admin_effacer_stats',array());
    71         }
     74                $flux['data'] .= recuperer_fond('prive/squelettes/inclure/admin_effacer_stats', array());
     75        }
     76
    7277        return $flux;
    7378}
     
    7984 * @uses admin_stats()
    8085 * @pipeline formulaire_admin
    81  * @param array $flux  Données du pipeline
     86 * @param array $flux Données du pipeline
    8287 * @return array       Données du pipeline
    83 **/
     88 **/
    8489function stats_formulaire_admin($flux) {
    8590        if (
    86          isset($flux['args']['contexte']['objet'])
    87          AND $objet = $flux['args']['contexte']['objet']
    88          AND isset($flux['args']['contexte']['id_objet'])
    89          AND $id_objet = $flux['args']['contexte']['id_objet']
    90          ) {
     91                isset($flux['args']['contexte']['objet'])
     92                AND $objet = $flux['args']['contexte']['objet']
     93                AND isset($flux['args']['contexte']['id_objet'])
     94                AND $id_objet = $flux['args']['contexte']['id_objet']
     95        ) {
    9196                if ($l = admin_stats($objet, $id_objet, defined('_VAR_PREVIEW') ? _VAR_PREVIEW : '')) {
    9297                        $btn = recuperer_fond('prive/bouton/statistiques', array(
     
    95100                                'statistiques' => $l[2],
    96101                        ));
    97                         $flux['data'] = preg_replace('%(<!--extra-->)%is', $btn.'$1', $flux['data']);
    98                 }
    99         }
     102                        $flux['data'] = preg_replace('%(<!--extra-->)%is', $btn . '$1', $flux['data']);
     103                }
     104        }
     105
    100106        return $flux;
    101107}
     
    107113 *     Actuellement uniquement valable pour les articles.
    108114 *
    109  * @param string $objet 
    110  * @param int $id_objet 
     115 * @param string $objet
     116 * @param int $id_objet
    111117 * @param string $var_preview
    112118 *     Indique si on est en prévisualisation : pas de statistiques dans ce cas.
     
    114120 *     - false : pas de statistiques disponibles
    115121 *     - array : Tableau les stats `[visites, popularité, url]`
    116 **/
    117 function admin_stats($objet, $id_objet, $var_preview = "")
    118 {
    119         if ($GLOBALS['meta']["activer_statistiques"] != "non"
    120         AND $objet == 'article'
    121         AND !$var_preview
    122         AND autoriser('voirstats')
     122 **/
     123function admin_stats($objet, $id_objet, $var_preview = "") {
     124        if ($GLOBALS['meta']["activer_statistiques"] != "non"
     125                AND $objet == 'article'
     126                AND !$var_preview
     127                AND autoriser('voirstats')
    123128        ) {
    124129                $row = sql_fetsel("visites, popularite", "spip_articles", "id_article=$id_objet AND statut='publie'");
    125130
    126131                if ($row) {
    127                         return array(intval($row['visites']),
    128                                ceil($row['popularite']),
    129                                str_replace('&amp;', '&', generer_url_ecrire_statistiques($id_objet)));
    130                 }
    131         }
     132                        return array(
     133                                intval($row['visites']),
     134                                ceil($row['popularite']),
     135                                str_replace('&amp;', '&', generer_url_ecrire_statistiques($id_objet))
     136                        );
     137                }
     138        }
     139
    132140        return false;
    133141}
     
    138146 * @param int $id_article
    139147 * @return string URL
    140 **/
     148 **/
    141149function generer_url_ecrire_statistiques($id_article) {
    142150        return generer_url_ecrire('stats_visites', "id_article=$id_article");
    143151}
    144 
    145152
    146153
     
    153160 * @return array
    154161 *     Tableau `[nom de la tache => intervalle en secondes]`
    155 **/
    156 function stats_taches_generales_cron($taches_generales){
     162 **/
     163function stats_taches_generales_cron($taches_generales) {
    157164
    158165        // stats : toutes les 5 minutes on peut vider un panier de visites
    159166        if (isset($GLOBALS['meta']["activer_statistiques"])
    160                 AND $GLOBALS['meta']["activer_statistiques"] == "oui")
    161         {
    162                 $taches_generales['visites'] = 300; 
     167                AND $GLOBALS['meta']["activer_statistiques"] == "oui"
     168        ) {
     169                $taches_generales['visites'] = 300;
    163170                $taches_generales['popularites'] = 7200; # calcul lourd
    164171        }
     
    176183 *    Couples nom de la méta => valeur par défaut
    177184 */
    178 function stats_configurer_liste_metas($metas){
    179         $metas['activer_statistiques']='non';
    180         $metas['activer_captures_referers']='non';
     185function stats_configurer_liste_metas($metas) {
     186        $metas['activer_statistiques'] = 'non';
     187        $metas['activer_captures_referers'] = 'non';
     188
    181189        return $metas;
    182190}
     
    186194 *
    187195 * @pipeline boite_infos
    188  * @param array $flux  Données du pipeline
     196 * @param array $flux Données du pipeline
    189197 * @return array       Données du pipeline
    190198 */
    191 function stats_boite_infos($flux){
     199function stats_boite_infos($flux) {
    192200        if ($GLOBALS['meta']["activer_statistiques"] == "oui") {
    193                 if ($flux['args']['type']=='article'
    194                         AND $id_article=$flux['args']['id']
    195                         AND autoriser('voirstats','article',$id_article)){
    196                         $visites = sql_getfetsel('visites','spip_articles','id_article='.intval($id_article));
    197                         if ($visites>0){
    198                                 $icone_horizontale=chercher_filtre('icone_horizontale');
    199                                 $flux['data'].=$icone_horizontale(generer_url_ecrire("stats_visites","id_article=$id_article"),_T('statistiques:icone_evolution_visites', array('visites' => $visites)),"statistique-24.png");
     201                if ($flux['args']['type'] == 'article'
     202                        AND $id_article = $flux['args']['id']
     203                        AND autoriser('voirstats', 'article', $id_article)
     204                ) {
     205                        $visites = sql_getfetsel('visites', 'spip_articles', 'id_article=' . intval($id_article));
     206                        if ($visites > 0) {
     207                                $icone_horizontale = chercher_filtre('icone_horizontale');
     208                                $flux['data'] .= $icone_horizontale(generer_url_ecrire("stats_visites", "id_article=$id_article"),
     209                                        _T('statistiques:icone_evolution_visites', array('visites' => $visites)), "statistique-24.png");
    200210                        }
    201211                }
    202212        }
    203   return $flux;
     213
     214        return $flux;
    204215}
    205216
Note: See TracChangeset for help on using the changeset viewer.