Changeset 48005 in spip-zone


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

Location:
_plugins_/svp
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/svp/action/actualiser_depot.php

    r47826 r48005  
    2424                include_spip('inc/svp_depoter');
    2525                svp_actualiser_depot($id_depot);
    26                 // On consigne l'action si la configuration le demande
     26                // On consigne l'action
    2727                spip_log("ACTION ACTUALISER DEPOT (manuel) : id_depot = ". $id_depot, 'svp_actions.' . _LOG_INFO);
    2828        }
  • _plugins_/svp/base/svp_declarer.php

    r45589 r48005  
    3333                "categorie"             => "varchar(100) DEFAULT '' NOT NULL",
    3434                "tags"                  => "text DEFAULT '' NOT NULL",
    35                 "vmax"                  => "varchar(24) DEFAULT '' NOT NULL" // version la plus elevee des paquets du plugin
     35                "vmax"                  => "varchar(24) DEFAULT '' NOT NULL", // version la plus elevee des paquets du plugin
     36                "nbr_sites"     => "integer DEFAULT 0 NOT NULL",
     37                "popularite"    => "double DEFAULT '0' NOT NULL"
    3638        );
    3739       
  • _plugins_/svp/genie/svp_taches_generales_cron.php

    r41854 r48005  
    1010                $taches_generales['svp_actualiser_depots'] = _SVP_PERIODE_ACTUALISATION_DEPOTS*3600;
    1111
     12        // Ajout de la tache CRON de mise a jour reguliere des statistiques d'utilisation des plugins
     13        // Par defaut, toutes les 7 jours
     14        // Conditionnee a la variable de configuration
     15        if (_SVP_CRON_ACTUALISATION_STATS)
     16                $taches_generales['svp_actualiser_stats'] = _SVP_PERIODE_ACTUALISATION_STATS*24*3600;
     17
    1218        return $taches_generales;
    1319}
  • _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?>
  • _plugins_/svp/lang/svp_fr.php

    r46254 r48005  
    77// B
    88        'bouton_actualiser' => 'Actualiser',
     9        'bouton_actualiser_stats' => 'Actualiser les statistiques',
    910        'bouton_modifier_depot' => 'Modifier ce dépôt',
    1011        'bouton_supprimer' => 'Supprimer',
    1112        'bouton_svp' => 'Serveur d\'information sur les plugins',
    1213        'bulle_actualiser_depot' => 'Actualiser les paquets du dépôt',
     14        'bulle_actualiser_stats' => 'Actualiser les statistiques des plugins',
    1315        'bulle_afficher_depot' => 'Afficher les informations du dépôt',
    1416        'bulle_ajouter_spipzone' => 'Ajouter le dépôt SPIP-Zone',
     
    7678        'info_stats_categories' => '@nb_categories@ catégorie(s) disponible(s) sur 13 possibles.',
    7779        'info_stats_plugins' => 'Le tableau ci-dessous affiche le nombre de plugins hébergés pour chacune des catégories disponibles.',
     80        'info_statistiques' => 'Les statistiques d\'utilisation des plugins peuvent être collectées et tenues à jour régulièrement. Néanmoins, vous pouvez lancer une msie à jour manuelle.',
    7881        'info_tri_nom' => 'classé(s) par ordre alphabétique',
    7982        'info_tri_score' => 'classé(s) selon leur pertinence décroissante',
  • _plugins_/svp/plugins/preparer_sql_plugin.php

    r47822 r48005  
    4545       
    4646        // Extrait d'un nom et un slogan normalises
    47         // -- Pour le cas particulier du prefixe des themes qui est toujours egal a "theme", il faut
    48         // forcer malheureusement un nom et un slogan stanfard
    49         if ($champs['prefixe'] == _SVP_PREFIXE_PLUGIN_THEME) {
    50                 // Traitement specifique des themes qui aujourd'hui sont consideres comme des paquets
    51                 // d'un plugin unique de prefixe "theme"
    52                 $champs['nom'] = _SVP_NOM_PLUGIN_THEME;
    53                 $champs['slogan'] = _SVP_SLOGAN_PLUGIN_THEME;
    54         }
    55         else {
    56                 $plugin['slogan'] = unicode2charset(html2unicode($plugin['slogan']));
    57                 $plugin['nom'] = unicode2charset(html2unicode($plugin['nom']));
    58                 // Calcul *temporaire* de la nouvelles balise slogan si celle-ci n'est
    59                 // pas renseignee et de la balise nom. Ceci devrait etre temporaire jusqu'a la nouvelle ere
    60                 // glaciaire des plugins
    61                 // - Slogan     :       si vide alors on prend la premiere phrase de la description limitee a 255
    62                 $champs['slogan'] = (!$plugin['slogan']) ? normaliser_slogan($champs['description']) : $plugin['slogan'];
    63                 // - Nom :      on repere dans le nom du plugin un chiffre en fin de nom
    64                 //                      et on l'ampute de ce numero pour le normaliser
    65                 //                      et on passe tout en unicode avec le charset du site
    66                 $champs['nom'] = normaliser_nom($plugin['nom']);
    67         }
     47        $plugin['slogan'] = unicode2charset(html2unicode($plugin['slogan']));
     48        $plugin['nom'] = unicode2charset(html2unicode($plugin['nom']));
     49        // Calcul *temporaire* de la nouvelles balise slogan si celle-ci n'est
     50        // pas renseignee et de la balise nom. Ceci devrait etre temporaire jusqu'a la nouvelle ere
     51        // glaciaire des plugins
     52        // - Slogan     :       si vide alors on prend la premiere phrase de la description limitee a 255
     53        $champs['slogan'] = (!$plugin['slogan']) ? normaliser_slogan($champs['description']) : $plugin['slogan'];
     54        // - Nom :      on repere dans le nom du plugin un chiffre en fin de nom
     55        //                      et on l'ampute de ce numero pour le normaliser
     56        //                      et on passe tout en unicode avec le charset du site
     57        $champs['nom'] = normaliser_nom($plugin['nom']);
    6858
    6959        // Extraction de la compatibilite SPIP
  • _plugins_/svp/prive/liste/depots.html

    r41854 r48005  
    1919                                                        </td>
    2020                                                        <td class="arial11">&nbsp;</td>
    21                                                         <td class="arial11">[(#NBR_PAQUETS) [(#NBR_PAQUETS|singulier_ou_pluriel{<:svp:label_1_paquet:>, <:svp:label_n_paquets:>})]]</td>
     21                                                        <td class="arial11">[(#NBR_PAQUETS) [(#NBR_PAQUETS|singulier_ou_pluriel{svp:label_1_paquet, svp:label_n_paquets})]]</td>
    2222                                                        <td class="arial11">[<:svp:label_actualise_le:> (#MAJ|affdate{d-m H:i})]</td>
    2323                                                        <td class="arial11">[(#BOUTON_ACTION{<:svp:bouton_actualiser:>, #URL_ACTION_AUTEUR{actualiser_depot,#ID_DEPOT, #SELF}, '', '', <:svp:bulle_actualiser_depot:>})]</td>
     
    3030                        [(#EVAL{true}|fin_cadre_enfonce)]
    3131                </div>
     32
     33                <br />
     34                <p><:svp:info_statistiques:></p>
     35                <div id="stats" style="text-align:right; margin-top:1em;">
     36                        [(#BOUTON_ACTION{<:svp:bouton_actualiser_stats:>, #URL_ACTION_AUTEUR{actualiser_stats,'', #SELF}, '', '', <:svp:bulle_actualiser_stats:>})]
     37                </div>
    3238        </B_depots>
    3339                <p><:svp:info_liste_aucun_depot:></p>
  • _plugins_/svp/svp_options.php

    r47826 r48005  
    77define('_SVP_PERIODE_ACTUALISATION_DEPOTS', 6);
    88
     9// Mise a jour automatique des stats (CRON)
     10// - Flag de declenchement
     11define('_SVP_CRON_ACTUALISATION_STATS', false);
     12// - Periode d'actualisation en nombre de jours
     13define('_SVP_PERIODE_ACTUALISATION_STATS', 7);
     14// - Adresse de la page fournissant les statistiques par json
     15define('_SVP_SOURCE_STATS', 'http://stats.spip.org/spip.php?page=stats.json');
     16
     17
    918// Définition de la boite du logo de depot pour utilisation de iconifier()
    1019$GLOBALS['logo_libelles']['id_depot'] = _T('svp:titre_boite_logo_depot');
    11 
    12 // Infos *temporaires* du plugin de prefixe 'theme'
    13 define('_SVP_PREFIXE_PLUGIN_THEME', 'THEME');
    14 define('_SVP_NOM_PLUGIN_THEME', 'Thèmes SPIP');
    15 define('_SVP_SLOGAN_PLUGIN_THEME', 'Des thèmes pour habiller les squelettes SPIP');
    1620
    1721// Type parseur XML a appliquer pour recuperer les infos du plugin
Note: See TracChangeset for help on using the changeset viewer.