Changeset 59687 in spip-zone


Ignore:
Timestamp:
Mar 24, 2012, 4:53:55 PM (7 years ago)
Author:
marcimat@…
Message:

On ne déclare pas obsolète un plugin lorsqu'il est a une version et un etat exactement egal à un autre.
+ denormaliser sur #MAJ_VERSION aussi.
+ on force une actualisation de la base des paquets locaux.

Location:
_core_/plugins/svp
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/svp/base/svp_declarer.php

    r59476 r59687  
    208208        // Les tables : permet d'appeler une boucle avec le *type* de la table uniquement
    209209        $interface['table_des_tables']['depots'] = 'depots';
    210         $interface['table_des_tables']['plugins'] = 'plugins'; 
    211         $interface['table_des_tables']['paquets'] = 'paquets'; 
    212         $interface['table_des_tables']['depots_plugins'] = 'depots_plugins';   
     210        $interface['table_des_tables']['plugins'] = 'plugins';
     211        $interface['table_des_tables']['paquets'] = 'paquets';
     212        $interface['table_des_tables']['depots_plugins'] = 'depots_plugins';
    213213
    214214        // Les traitements
    215215        // - table spip_plugins
    216         $interface['table_des_traitements']['SLOGAN']['plugins'] = _TRAITEMENT_RACCOURCIS;     
     216        $interface['table_des_traitements']['SLOGAN']['plugins'] = _TRAITEMENT_RACCOURCIS;
    217217        $interface['table_des_traitements']['VMAX']['plugins'] = 'denormaliser_version(%s)';
    218218        // - table spip_paquets
    219         $interface['table_des_traitements']['DESCRIPTION']['paquets'] = _TRAITEMENT_RACCOURCIS; 
     219        $interface['table_des_traitements']['DESCRIPTION']['paquets'] = _TRAITEMENT_RACCOURCIS;
    220220        $interface['table_des_traitements']['VERSION']['paquets'] = 'denormaliser_version(%s)';
     221        $interface['table_des_traitements']['MAJ_VERSION']['paquets'] = 'denormaliser_version(%s)';
    221222
    222223        return $interface;
  • _core_/plugins/svp/formulaires/admin_plugin.php

    r59476 r59687  
    99        include_spip('inc/svp_depoter_local');
    1010        svp_actualiser_paquets_locaux();
    11                
     11
    1212
    1313        $valeurs['actif'] = 'oui';
     
    2222        if ($verrouille == 'tous')
    2323                $valeurs['constante'] = array();
    24        
     24
    2525        $valeurs['verrouille'] = $verrouille;
    2626        $valeurs['id_paquet'] = $id_paquet;
     
    2828        $valeurs['ids_paquet'] = _request('ids_paquet');
    2929        $valeurs['_todo'] = _request('_todo');
    30                        
     30
    3131        return $valeurs;
    3232}
  • _core_/plugins/svp/inc/svp_depoter_local.php

    r59476 r59687  
    22
    33
    4 function svp_actualiser_paquets_locaux() {
     4/**
     5 * Met a jour les tables paquets et plugins
     6 * en ce qui concerne les paquets locaux (presents sur le site).
     7 *
     8 * On ne met a jour que ce qui a change, sauf si :
     9 * - $force = true
     10 * - ou var_mode=vider_paquets_locaux
     11 * Dans ces cas, toutes les infos locales sont recalculees.
     12 *
     13 * @param bool $force
     14 *              Forcer les mises a jour des infos en base de tous les paquets locaux
     15 * @return
     16**/
     17function svp_actualiser_paquets_locaux($force = false) {
    518
    619        spip_timer('paquets_locaux');
     
    821
    922        // un mode pour tout recalculer sans désinstaller le plugin... !
    10         if (_request('var_mode') == 'vider_paquets_locaux') {
     23        if ($force OR _request('var_mode') == 'vider_paquets_locaux') {
    1124                svp_base_supprimer_paquets_locaux();
    1225                svp_base_inserer_paquets_locaux($paquets);
     
    456469
    457470        foreach ($paquets as $c => $p) {
    458                
     471
    459472                $obsoletes[$p['prefixe']][] = $c;
    460                
     473
    461474                // si 2 paquet locaux ont le meme prefixe, mais pas la meme version,
    462475                // l'un est obsolete : la version la plus ancienne
     476                // Si version et etat sont egaux, on ne decide pas d'obsolescence.
    463477                if (count($obsoletes[$p['prefixe']]) > 1) {
    464478                        foreach ($obsoletes[$p['prefixe']] as $cle) {
    465479                                if ($cle == $c) continue;
    466                                
     480
    467481                                // je suis plus petit qu'un autre
    468482                                if (spip_version_compare($paquets[$c]['version'], $paquets[$cle]['version'], '<')) {
     
    474488                                        }
    475489                                }
    476                                
    477                                 // je suis plus grand qu'un autre...
    478                                 // si mon etat est meilleur, rendre obsolete les autres
    479                                 elseif ($paquets[$c]['etatnum'] >= $paquets[$cle]['etatnum']) {
    480                                                 if ($paquets[$cle]['obsolete'] != 'oui') {
    481                                                         $paquets[$cle]['obsolete'] = 'oui';
    482                                                         $changements[$cle] = true;
     490
     491                                // je suis plus grand ou egal a un autre...
     492                                else {
     493                                        // je suis plus strictement plus grand a un autre...
     494                                        if (spip_version_compare($paquets[$c]['version'], $paquets[$cle]['version'], '>')) {
     495                                                // si mon etat est meilleur, rendre obsolete les autres
     496                                                if ($paquets[$c]['etatnum'] >= $paquets[$cle]['etatnum']) {
     497                                                                if ($paquets[$cle]['obsolete'] != 'oui') {
     498                                                                        $paquets[$cle]['obsolete'] = 'oui';
     499                                                                        $changements[$cle] = true;
     500                                                                }
    483501                                                }
    484                                 }
    485                                
     502                                        }
     503
     504                                        // je suis egal a un autre
     505                                        // si mon etat est strictement meilleur, rendre obsolete les autres
     506                                        elseif ($paquets[$c]['etatnum'] > $paquets[$cle]['etatnum']) {
     507                                                        if ($paquets[$cle]['obsolete'] != 'oui') {
     508                                                                $paquets[$cle]['obsolete'] = 'oui';
     509                                                                $changements[$cle] = true;
     510                                                        }
     511                                        }
     512                                }
     513
    486514                        }
    487515                } else {
  • _core_/plugins/svp/paquet.xml

    r59483 r59687  
    22        prefix="svp"
    33        categorie="maintenance"
    4         version="0.78.1"
     4        version="0.78.2"
    55        etat="test"
    66        compatibilite="[3.0.0-beta;3.0.*]"
    77        logo="svp-64.png"
    8         schema="0.3"
     8        schema="0.3.1"
    99        documentation="http://blog.smellup.net/spip.php?rubrique1"
    1010>
  • _core_/plugins/svp/svp_administrations.php

    r59476 r59687  
    1111        $maj['0.3'][]    = array('maj_tables', 'spip_paquets'); // prefixe et attente
    1212        $maj['0.3'][]    = array('svp_synchroniser_prefixe');
     13        include_spip('inc/svp_depoter_local');
     14        // on force le recalcul des infos des paquets locaux.
     15        $maj['0.3.1'][]  = array('svp_actualiser_paquets_locaux', true);
    1316
    1417        include_spip('base/upgrade');
Note: See TracChangeset for help on using the changeset viewer.