Changeset 39752 in spip-zone


Ignore:
Timestamp:
Aug 9, 2010, 9:54:39 AM (9 years ago)
Author:
kent1@…
Message:

On vérifie les dépendances dans le pipeline également

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/jquery_ui/jqueryui_pipelines.php

    r39720 r39752  
    99        $config['plugins'] = array_unique(array_merge(sinon(pipeline('jqueryui_forcer'),array()),$config['plugins']));
    1010       
     11        /**
     12         * Gestion des dépendances inter plugins
     13         */
     14        $dependance_core = array(
     15                                                        'jquery.ui.mouse',
     16                                                        'jquery.ui.widget',
     17                                                        'jquery.ui.datepicker'
     18        );
     19
     20        /**
     21         * Dépendances à widget
     22         * Si un autre plugin est dépendant d'un de ceux là, on ne les ajoute pas
     23         */
     24        $dependance_widget = array(
     25                                                        'jquery.ui.mouse',
     26                                                        'jquery.ui.accordion',
     27                                                        'jquery.ui.autocomplete',
     28                                                        'jquery.ui.button',
     29                                                        'jquery.ui.dialog',
     30                                                        'jquery.ui.tabs',
     31                                                        'jquery.ui.progressbar'                                         
     32                                                        );
     33       
     34        $dependance_mouse = array(
     35                                                        'jquery.ui.draggable',
     36                                                        'jquery.ui.droppable',
     37                                                        'jquery.ui.resizable',
     38                                                        'jquery.ui.selectable',
     39                                                        'jquery.ui.sortable',
     40                                                        'jquery.ui.slider'
     41                                                );
     42       
     43        $dependance_position = array(
     44                                                        'jquery.ui.autocomplete',
     45                                                        'jquery.ui.dialog',
     46                                                        );
     47       
     48        $dependance_draggable = array(
     49                                                        'jquery.ui.droppable'
     50                                                        );
     51       
     52        $dependance_effects = array(
     53                                                        'jquery.effects.blind',
     54                                                        'jquery.effects.bounce',
     55                                                        'jquery.effects.clip',
     56                                                        'jquery.effects.drop',
     57                                                        'jquery.effects.explode',
     58                                                        'jquery.effects.fold',
     59                                                        'jquery.effects.highlight',
     60                                                        'jquery.effects.pulsate',
     61                                                        'jquery.effects.scale',
     62                                                        'jquery.effects.shake',
     63                                                        'jquery.effects.slide',
     64                                                        'jquery.effects.transfer'
     65                                                );
     66       
     67        /**
     68         * Vérification des dépendances
     69         * Ici on ajoute quand même le plugin en question et on supprime les doublons via array_unique
     70         * Pour éviter le cas où un pipeline demanderait un plugin dans le mauvais sens de la dépendance par exemple
     71         *
     72         * On commence par le bas de l'échelle :
     73         * - draggable
     74         * - position
     75         * - mouse
     76         * - widget
     77         * - core
     78         * - effects
     79         */
     80        if(count($intersect = array_intersect($config['plugins'],$dependance_draggable)) > 0){
     81                $keys = array_keys($intersect);
     82                array_splice($config['plugins'],$keys[0], 0, "jquery.ui.draggable");
     83        }
     84        if(count($intersect = array_intersect($config['plugins'],$dependance_position)) > 0){
     85                $keys = array_keys($intersect);
     86                array_splice($config['plugins'],$keys[0], 0, "jquery.ui.position");
     87        }
     88        if(count($intersect = array_intersect($config['plugins'],$dependance_mouse)) > 0){
     89                $keys = array_keys($intersect);
     90                array_splice($config['plugins'],$keys[0], 0, "jquery.ui.mouse");
     91        }
     92        if(count($intersect = array_intersect($config['plugins'],$dependance_widget)) > 0){
     93                $keys = array_keys($intersect);
     94                array_splice($config['plugins'],$keys[0], 0, "jquery.ui.widget");
     95        }
     96        if(count($intersect = array_intersect($config['plugins'],$dependance_core)) > 0){
     97                $keys = array_keys($intersect);
     98                array_splice($config['plugins'],$keys[0], 0, "jquery.ui.core");
     99        }
     100        if(count($intersect = array_intersect($config['plugins'],$dependance_effects)) > 0){
     101                $keys = array_keys($intersect);
     102                array_splice($config['plugins'],$keys[0], 0, "jquery.effects.core");
     103        }
     104        if(count($intersect = array_intersect($config['plugins'],$dependance_effects)) > 0){
     105                $keys = array_keys($intersect);
     106                array_splice($config['plugins'],$keys[0], 0, "jquery.effects.core");
     107        }
     108        $config['plugins'] = array_unique($config['plugins']);
    11109        foreach ($config['plugins'] as $val) {
    12110                $plugins[] = _DIR_JQUERYUI_JS.$val.".js";
Note: See TracChangeset for help on using the changeset viewer.