Changeset 48126 in spip-zone


Ignore:
Timestamp:
May 26, 2011, 7:58:21 AM (10 years ago)
Author:
eric@…
Message:

Les fonctions de traitment des intervalles sont isolées.
On améliore l'intervalle compilé (borne inf)

Location:
_plugins_/svp
Files:
1 added
2 edited

Legend:

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

    r48113 r48126  
    411411        // On compile maintenant certaines informations des paquets mis a jour dans les plugins
    412412        // (date de creation, date de modif, version spip...)
    413         svp_raffiner_plugins($id_depot);
     413        svp_completer_plugins($id_depot);
    414414       
    415415        // Calcul des compteurs de paquets, plugins et contributions
     
    492492
    493493
    494 function svp_raffiner_plugins($id_depot) {
    495         include_spip('plugins/fusion_plugin');
     494function svp_completer_plugins($id_depot) {
     495        include_spip('inc/intervaller');
    496496
    497497        // On limite la revue des paquets a ceux des plugins heberges par le depot en cours d'acutalisation
  • _plugins_/svp/plugins/fusion_plugin.php

    r48111 r48126  
    33if (!defined('_ECRIRE_INC_VERSION')) return;
    44include_spip('inc/plugin');
     5include_spip('inc/svp_intervaller');
    56
    67// Fusion des informations de chaque balise plugin en considerant la compatibilite SPIP
     
    5354}
    5455
    55 function fusionner_intervalles($intervalle_a, $intervalle_b) {
    56 
    57         // On recupere les bornes de chaque intervalle
    58         $borne_a = extraire_bornes($intervalle_a);
    59         $borne_b = extraire_bornes($intervalle_b);
    60 
    61         // On initialise la borne min de chaque intervalle a 1.9.0 si vide
    62         if (!$borne_a['min']['valeur'])
    63                 $borne_a['min']['valeur'] = _SVP_VERSION_SPIP_MIN;
    64         if (!$borne_b['min']['valeur'])
    65                 $borne_b['min']['valeur'] = _SVP_VERSION_SPIP_MIN;
    66 
    67         // On calcul maintenant :
    68         // -- la borne min de l'intervalle fusionne = min(min_a, min_b)
    69         // -- suivant l'intervalle retenu la borne max est forcement dans l'autre intervalle = max(autre intervalle)
    70         //    On presuppose evidemment que les intervalles ne sont pas disjoints et coherents entre eux
    71         if (spip_version_compare($borne_a['min']['valeur'], $borne_b['min']['valeur'], '<=')) {
    72                 $bornes_fusionnees['min'] = $borne_a['min'];
    73                 $bornes_fusionnees['max'] = $borne_b['max'];
    74         }
    75         else {
    76                 $bornes_fusionnees['min'] = $borne_b['min'];
    77                 $bornes_fusionnees['max'] = $borne_a['max'];
    78         }
    79 
    80         return contruire_intervalle($bornes_fusionnees);
    81 }
    82 
    83 function extraire_bornes($intervalle) {
    84         static $borne_vide = array('valeur' => '', 'incluse' => false);
    85         $bornes = array('min' => $borne_vide, 'max' => $borne_vide);
    86 
    87         if ($intervalle
    88         AND preg_match(',^[\[\(\]]([0-9.a-zRC\s\-]*)[;]([0-9.a-zRC\s\-\*]*)[\]\)\[]$,Uis', $intervalle, $matches)) {
    89                 if ($matches[1]) {
    90                         $bornes['min']['valeur'] = trim($matches[1]);
    91                         $bornes['min']['incluse'] = ($intervalle{0} == "[");
    92                 }
    93                 if ($matches[2]) {
    94                         $bornes['max']['valeur'] = trim($matches[2]);
    95                         $bornes['max']['incluse'] = (substr($intervalle,-1) == "]");
    96                 }
    97         }
    98        
    99         return $bornes;
    100 }
    101 
    102 function contruire_intervalle($bornes, $dtd='paquet') {
    103         return ($bornes['min']['incluse'] ? '[' : ($dtd=='paquet' ? ']' : '('))
    104                         . $bornes['min']['valeur'] . ';' . $bornes['max']['valeur']
    105                         . ($bornes['max']['incluse'] ? ']' : ($dtd=='paquet' ? '[' : ')'));
    106 }
    10756?>
Note: See TracChangeset for help on using the changeset viewer.