Changeset 48005 in spip-zone for _plugins_/svp/inc/svp_depoter.php


Ignore:
Timestamp:
May 22, 2011, 4:48:53 PM (10 years ago)
Author:
brunobergot@…
Message:

Pour tonton qui ne peut pas commiter depuis son palace : suppression du traitement particulier sur les thèmes maintenant que le préfixe est unique + ajout des statistiques d'utilisation des plugins (stats.spip.org) avec mise à jour automatique possible

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/svp/inc/svp_depoter.php

    r47826 r48005  
    314314                                // - la version du paquet et de la base
    315315                                // - l'etat
    316                                 // - et on exclu les themes car leur prefixe est toujours = a "theme"
    317316                                $where = array('t1.id_plugin=t2.id_plugin',
    318317                                                't1.version=' . sql_quote($insert_paquet['version']),
     
    320319                                                't1.etatnum=' . sql_quote($insert_paquet['etatnum']),
    321320                                                't2.prefixe=' . sql_quote($insert_plugin['prefixe']));
    322                                 if (($insert_plugin['prefixe'] == _SVP_PREFIXE_PLUGIN_THEME)
    323                                 OR (!$id_paquet = sql_getfetsel('t1.id_paquet', 'spip_paquets AS t1, spip_plugins AS t2', $where))) {
     321                                if (!$id_paquet = sql_getfetsel('t1.id_paquet', 'spip_paquets AS t1, spip_plugins AS t2', $where)) {
    324322                                        // On traite d'abord le plugin du paquet pour recuperer l'id_plugin
    325323                                        // On rajoute le plugin dans la table spip_plugins si celui-ci n'y est pas encore ou on recupere
     
    513511}
    514512
     513
     514
     515// ----------------------- Traitements des stats ---------------------------------
     516
     517/**
     518 * Actualisation des statistiques des plugins presents dans la base.
     519 * @return boolean
     520 */
     521
     522function svp_actualiser_stats() {
     523        include_spip('inc/distant');
     524
     525        $page = recuperer_page(_SVP_SOURCE_STATS);
     526        $infos = json_decode($page);
     527        if (!$stats = $infos->plugins) {
     528                // On ne fait que loger l'erreur car celle-ci n'a pas d'incidence sur le comportement
     529                // de SVP
     530                spip_log('Réponse du serveur incorrecte ou mal formée. Les statistiques ne seront pas mises à jour', 'svp.' . _LOG_ERREUR);
     531                return false;
     532        }
     533
     534        foreach ($stats as $_stat) {
     535                $prefixe = strtoupper($_stat->nom);
     536                if ($id_plugin = sql_fetsel('id_plugin', 'spip_plugins', array('prefixe='. sql_quote($prefixe)))) {
     537                        // Si le plugin est bien dans la base on peut lui mettre a jour ses statistiques
     538                        sql_updateq('spip_plugins',
     539                                                array('nbr_sites'=> $_stat->sites, 'popularite'=> floatval(trim($_stat->pourcentage, '%'))),
     540                                                'id_plugin=' . sql_quote($id_plugin));
     541                }
     542        }
     543       
     544        return true;
     545}
     546
    515547?>
Note: See TracChangeset for help on using the changeset viewer.