Changeset 89282 in spip-zone


Ignore:
Timestamp:
May 10, 2015, 8:44:44 AM (4 years ago)
Author:
marcimat@…
Message:

Report de r89281 : Corriger #3416 : ne pas afficher obsolète un plugin local en présence d'une version plus élevée du même plugin, mais non compatible avec ce SPIP.

Location:
_core_/plugins/svp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/svp/inc/svp_depoter_local.php

    r89132 r89282  
    527527                $where[] = sql_in('pl.id_plugin', $ids_plugin);
    528528        }
    529        
     529
    530530        // comme l'on a de nouveaux paquets locaux...
    531531        // certains sont peut etre devenus obsoletes
     
    534534        $obsoletes = array();
    535535        $changements = array();
    536        
     536
    537537        $paquets = sql_allfetsel(
    538                 array('pa.id_paquet', 'pl.prefixe', 'pa.version', 'pa.etatnum', 'pa.obsolete'),
     538                array('pa.id_paquet', 'pl.prefixe', 'pa.version', 'pa.etatnum', 'pa.obsolete', 'pa.compatibilite_spip'),
    539539                array('spip_paquets AS pa', 'spip_plugins AS pl'),
    540540                $where);
    541541
     542        // L'obsolescence doit tenir compte de la compatibilité avec notre version de SPIP en cours
    542543        foreach ($paquets as $c => $p) {
     544                $paquets[$c]['compatible'] = plugin_version_compatible($p['compatibilite_spip'], $GLOBALS['spip_version_branche'], 'spip');
     545        }
     546
     547        foreach ($paquets as $c => $p) {
    543548
    544549                $obsoletes[$p['prefixe']][] = $c;
    545550
    546                 // si 2 paquet locaux ont le meme prefixe, mais pas la meme version,
     551                // si 2 paquet locaux ont le meme prefixe,
     552                // mais pas la meme version,
     553                // sont compatibles avec notre SPIP,
    547554                // l'un est obsolete : la version la plus ancienne
    548555                // Si version et etat sont egaux, on ne decide pas d'obsolescence.
     
    550557                        foreach ($obsoletes[$p['prefixe']] as $cle) {
    551558                                if ($cle == $c) continue;
     559                                if (!$paquets[$c]['compatible']) continue;
    552560
    553561                                // je suis plus petit qu'un autre
     
    563571                                // je suis plus grand ou egal a un autre...
    564572                                else {
    565                                         // je suis plus strictement plus grand a un autre...
     573                                        // je suis strictement plus grand qu'un autre...
    566574                                        if (spip_version_compare($paquets[$c]['version'], $paquets[$cle]['version'], '>')) {
    567575                                                // si mon etat est meilleur, rendre obsolete les autres
  • _core_/plugins/svp/paquet.xml

    r89162 r89282  
    22        prefix="svp"
    33        categorie="maintenance"
    4         version="0.86.5"
     4        version="0.86.6"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.