Changeset 93161 in spip-zone


Ignore:
Timestamp:
Nov 25, 2015, 12:56:10 PM (5 years ago)
Author:
marcimat@…
Message:

Lorsqu'on demande la désactivation d'un plugin (bootstrap3) qui procure d'autres plugins (bootstrap), il faut aussi
désactiver les plugins qui dépendent du procure.

File:
1 edited

Legend:

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

    r93159 r93161  
    244244         * - dn = dépendances nécessite
    245245         * - dl = dépendances librairie
     246         * - procure = prefixes procurés
    246247         * - maj = mise à jour
    247248         *
     
    350351                                $plugs['p'][$r['p']] = &$plugs['i'][$r['i']]; // alias
    351352                        }
    352                        
     353
    353354                }
    354355                return $plugs;
     
    453454                foreach ($locaux_procure['i'] as $new) {
    454455                        if (isset($new['procure'][$prefixe])
    455                           AND plugin_version_compatible($version,$new['procure'][$prefixe])
    456                           AND svp_verifier_compatibilite_spip($new['compatibilite_spip'])
    457                                 AND spip_version_compare($new['procure'][$prefixe],$v,">")){
     456                                AND plugin_version_compatible($version, $new['procure'][$prefixe])
     457                                AND svp_verifier_compatibilite_spip($new['compatibilite_spip'])
     458                                AND spip_version_compare($new['procure'][$prefixe], $v, ">"))
     459                        {
    458460                                $plugin = $new;
    459461                                $v = $new['v'];
     
    509511                // si recursif, on stoppe aussi les plugins dependants
    510512                if ($recur) {
     513                        $prefixes = array_merge(array($info['p']), array_keys($info['procure']));
    511514                        foreach ($this->end['i'] as $id => $plug) {
    512515                                if (is_array($plug['dn']) and $plug['dn']) {
    513516                                        foreach ($plug['dn'] as $n) {
    514                                                 if ($info['p'] == $n['nom']) {
     517                                                if (in_array($n['nom'], $prefixes)) {
    515518                                                        $this->change($plug, 'off');
    516519                                                        $this->off($plug, true);
     
    824827                                                if ($info = $this->sera_actif_id($id)
    825828                                                or  $info_off = $this->sera_off_id($id)
    826                                                 // un plugin en attente (desactive parce sa dependance a disparu certainement par ftp)
     829                                                // un plugin en attente (desactive parce que sa dependance a disparu certainement par ftp)
    827830                                                // peut etre desactive
    828831                                                or $info = $this->est_attente_id($id)) {
Note: See TracChangeset for help on using the changeset viewer.