Changeset 54400 in spip-zone


Ignore:
Timestamp:
Nov 13, 2011, 6:15:48 PM (8 years ago)
Author:
eric@…
Message:

Amélioration de la fusion dans les cas d'absence de balise et extension aux balises install, options et fonctions.

Location:
_plugins_/svp
Files:
4 edited

Legend:

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

    r54353 r54400  
    151151
    152152function balise_identique($balise1, $balise2) {
    153         foreach ($balise1 as $_attribut1 => $_valeur1){
    154                 if (!array_key_exists($_attribut1, $balise2))
    155                         return false;
    156                 else
    157                         if ($_valeur1 != $balise2[$_attribut1])
     153        if (is_array($balise1)) {
     154                foreach ($balise1 as $_attribut1 => $_valeur1){
     155                        if (!array_key_exists($_attribut1, $balise2))
    158156                                return false;
    159         }
    160 
    161         return true;
     157                        else
     158                                if ($_valeur1 != $balise2[$_attribut1])
     159                                        return false;
     160                }
     161                return true;
     162        }
     163        else
     164                return ($balise1 == $balise2);
    162165}
    163166
  • _plugins_/svp/plugins/fusion_plugin.php

    r54227 r54400  
    2525                                $fusion[$_btech][0] = $balise;
    2626                        }
     27                        else {
     28                                $fusion[$_btech] = array();
     29                        }
    2730                }
    2831        }
     
    4750                // les traitements effectues sont les suivants :
    4851                // -- nom, prefix, documentation, version, etat, version_base, description : *rien*, on conserve ces informations en l'etat
    49                 // -- options, fonctions, install, path, pipeline, bouton, onglet : *rien*, meme si certaines pourraient etre fusionnees ces infos ne sont pas stockees
     52                // -- options, fonctions, install : *rien*, meme si certaines pourraient etre fusionnees ces infos ne sont pas stockees
    5053                // -- auteur, licence : *rien*, l'heuristique pour fusionner ces infos est trop compliquee aujourdhui car c'est du texte libre
    5154                // -- categorie, logo : si la valeur du bloc selectionne est vide on essaye d'en trouver une non vide dans les autres blocs
     
    5962                $fusion['compatibilite'] = fusionner_intervalles($fusion['compatibilite'], $plugins[$cle_min_min]['compatibilite']);
    6063
    61                 // necessite, utilise, lib : on indexe chaque liste de dependances par l'intervalle de compatibilite
    62                 // sans regrouper les doublons pour l'instant
     64                // necessite, utilise, lib, chemin, pipeline, bouton, onglet : on indexe chaque liste de dependances
     65                // par l'intervalle de compatibilite sans regrouper les doublons pour l'instant
    6366                foreach ($balises_techniques as $_btech) {
    64                         if (!isset($fusion[$_btech]) OR !$fusion[$_btech]) {
     67                        if (!isset($fusion[$_btech]) AND !isset($plugins[$cle_min_min][$_btech])) {
     68                                // Aucun des tableaux ne contient cette balise technique : on la positionne a un array vide
     69                                $fusion[$_btech] = array();
     70                        }
     71                        else if (!isset($fusion[$_btech]) OR !$fusion[$_btech]) {
    6572                                if ($plugins[$cle_min_min][$_btech]) {
    6673                                        // La balise technique est vide dans le tableau de fusion mais non vide dans la deuxieme balise plugin
     
    103110
    104111                                // On traite maintenant les balises restantes du deuxieme tableau
    105                                 if ($plugins[$cle_min_min][$_btech])
     112                                if ($plugins[$cle_min_min][$_btech]) {
    106113                                        foreach ($plugins[$cle_min_min][$_btech] as $_balise2) {
    107114                                                $fusion[$_btech][$plugins[$cle_min_min]['compatibilite']][] = $_balise2;
    108115                                        }
     116                                }
    109117                        }
    110118                }
  • _plugins_/svp/svp_options.php

    r54350 r54400  
    3131// Liste des balises techniques autorisees dans la balise <spip> et des balises autorisant une traduction
    3232$GLOBALS['balises_techniques'] = array(
    33         'menu', 'chemin', 'lib',        'necessite', 'onglet', 'procure', 'pipeline', 'utilise');
     33        'menu', 'chemin', 'lib', 'necessite', 'onglet', 'procure', 'pipeline', 'utilise',
     34        'options', 'fonctions', 'install');
    3435$GLOBALS['balises_multis'] = array(
    3536        'nom', 'slogan', 'description');
  • _plugins_/svp/tests/depot.xml

    r54348 r54400  
    206206        <description>Ce plugin fonctionne sur les squelettes disposant de la balise <code>#INSERT_HEAD</code></description>
    207207
     208        <fonctions>fancybox_fonctions.php</fonctions>
     209
    208210        <necessite id="SPIP" version="[2.0.0;2.0.99]" />
    209211        <utilise id="cfg" version="[1.12;]" />
     
    237239        <licence>GPL - (c) 2001-2010</licence>
    238240
     241        <fonctions>fancybox_fonctions.php</fonctions>
     242        <fonctions>toto/fancybox_fonctions_1.php</fonctions>
    239243        <options>fancybox_options.php</options>
    240244
Note: See TracChangeset for help on using the changeset viewer.