Changeset 111383 in spip-zone


Ignore:
Timestamp:
Aug 20, 2018, 8:44:55 AM (5 weeks ago)
Author:
eric@…
Message:

On revient à la version avant les modifs de Riedel qui ne sont pas insérées là où il faudrait et restent à discuter.

Location:
_plugins_/ieconfig/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/ieconfig/trunk/formulaires/ieconfig_import.php

    r111380 r111383  
    55}
    66
    7 function ieconfig_metas_liste($prefixeaimporter = null) {
    8         static $ieconfig_metas;
    9         if (!is_array($ieconfig_metas)) {
    10                 $ieconfig_metas = array();
    11                 include_spip('inc/yaml');
    12                 $config = yaml_decode(_request('_code_yaml'));
    13                
    14                 foreach (pipeline('ieconfig_metas', array()) as $prefixe => $data) {
    15                         if (isset($config[$prefixe])) {
    16                                 if (!isset($prefixeaimporter)
    17                                         OR
    18                                         (isset($prefixeaimporter) && $prefixe === $prefixeaimporter)
    19                                         ) {
    20                                         if (isset($data['icone'])) {
    21                                                 $icone = chemin_image($data['icone']);
    22                                                 if (!$icone) {
    23                                                         $icone = find_in_path($data['icone']);
    24                                                 }
    25                                                 if ($icone) {
    26                                                         $icone = '<img src="' . $icone . '" alt="" style="margin-left:-50px; margin-right:34px;" />';
    27                                                 }
    28                                         } else {
    29                                                 $icone = 'config-export-16.png';
    30                                         }
    31                                         $ieconfig_metas[$prefixe] = $icone . (isset($data['titre']) ? $data['titre'] : $prefixe);
    32                                         }
    33                         }
    34                 }
    35         }
    36         return $ieconfig_metas;
    37 }
    38 
    39 function ieconfig_saisies_import($prefixeaimporter = null) {
     7function ieconfig_saisies_import() {
    408        // Etape de selection du fichier
    419        if (!_request('_code_yaml') or _request('annuler') or _request('importer')) {
     
    6533                                                        'label' => '<:ieconfig:label_ieconfig_import_local:>',
    6634                                                        'explication' => '<:ieconfig:explication_ieconfig_import_local:>',
    67                                                         'datas' => ieconfig_config_locales($prefixeaimporter),
    68                                                 ),
    69                                         ),
    70                                         array(
    71                                                 'saisie' => 'radio',
    72                                                 'options' => array(
    73                                                         'nom' => 'import_methode',
    74                                                         'label' => '<:ieconfig:ieconfig_import:>',
    75                                                         'datas' => array(
    76                                                                 'fusion' => '<:ieconfig:ieconfig_import_fusionner:>',
    77                                                                 'fusion_inv' => '<:ieconfig:ieconfig_import_fusionner_inv:>',
    78                                                                 'ecrase' => '<:ieconfig:ieconfig_import_ecraser:>',
    79                                                                 ),
    80                                                         'defaut' => 'fusion',
     35                                                        'datas' => ieconfig_config_locales(),
    8136                                                ),
    8237                                        ),
     
    10762                }
    10863
     64                $saisies = array(
     65                        array(
     66                                'saisie' => 'explication',
     67                                'options' => array(
     68                                        'nom' => 'import_details',
     69                                        'texte' => $texte_explication,
     70                                ),
     71                        ),
     72                );
    10973
    11074                // Gestion des plugins utilisant le pipeline ieconfig_metas
    111                 $ieconfig_metas = ieconfig_metas_liste($prefixeaimporter);
    112                 if (count($ieconfig_metas) > 1) {
    113                         $saisies = array(
    114                                 array(
    115                                         'saisie' => 'explication',
    116                                         'options' => array(
    117                                                 'nom' => 'import_details',
    118                                                 'texte' => $texte_explication,
    119                                         ),
    120                                 ),
    121                         );
     75                $ieconfig_metas = array();
     76                foreach (pipeline('ieconfig_metas', array()) as $prefixe => $data) {
     77                        if (isset($config[$prefixe])) {
     78                                if (isset($data['icone'])) {
     79                                        $icone = chemin_image($data['icone']);
     80                                        if (!$icone) {
     81                                                $icone = find_in_path($data['icone']);
     82                                        }
     83                                        if ($icone) {
     84                                                $icone = '<img src="' . $icone . '" alt="" style="margin-left:-50px; margin-right:34px;" />';
     85                                        }
     86                                } else {
     87                                        $icone = '';
     88                                }
     89                                $ieconfig_metas[$prefixe] = $icone . (isset($data['titre']) ? $data['titre'] : $prefixe);
     90                        }
     91                }
     92                if (count($ieconfig_metas) > 0) {
    12293                        $saisies[] = array(
    12394                                'saisie' => 'fieldset',
    12495                                'options' => array(
    12596                                        'nom' => 'metas_fieldset',
    126                                         'label' => _T('ieconfig:label_importer_metas').' ('._request('import_methode').')',
     97                                        'label' => _T('ieconfig:label_importer_metas'),
    12798                                        'icone' => 'config-export-16.png',
    12899                                ),
     
    133104                                                        'nom' => 'import_metas',
    134105                                                        'label' => _T('ieconfig:label_importer'),
    135                                                         'tout_selectionner' => (count($ieconfig_metas) > 1) ? 'oui':'',
     106                                                        'tout_selectionner' => 'oui',
    136107                                                        'datas' => $ieconfig_metas,
    137108                                                ),
    138109                                        ),
    139                                         array(
    140                                                 'saisie' => 'hidden',
    141                                                 'options' => array(
    142                                                         'default' => _request('import_methode'),
    143                                                         'nom' => 'import_methode',
    144                                                         'label' => 'import_methode',
    145                                                 ),
    146                                         ),
    147                                 )
     110                                ),
    148111                        );
    149112                }
    150                
     113
    151114                // On passe via le pipeline ieconfig
    152115                $saisies = pipeline('ieconfig', array(
     
    158121                ));
    159122        }
     123
    160124        return $saisies;
    161125}
    162126
    163 function formulaires_ieconfig_import_charger_dist($prefixeaimporter = null) {
     127function formulaires_ieconfig_import_charger_dist() {
    164128        include_spip('inc/saisies');
    165         $saisies = ieconfig_saisies_import($prefixeaimporter);
     129        $saisies = ieconfig_saisies_import();
    166130        $contexte = array(
    167131                '_saisies' => $saisies,
     
    170134                $contexte['_code_yaml'] = _request('_code_yaml');
    171135        }
    172        
    173136
    174137        return array_merge(saisies_charger_champs($saisies), $contexte);
    175138}
    176139
    177 function formulaires_ieconfig_import_verifier_dist($prefixeaimporter = null) {
     140function formulaires_ieconfig_import_verifier_dist() {
    178141        $erreurs = array();
    179142        // Etape de selection du fichier
     
    186149        else {
    187150                include_spip('inc/saisies');
    188                 $erreurs = saisies_verifier(ieconfig_saisies_import($prefixeaimporter));
     151                $erreurs = saisies_verifier(ieconfig_saisies_import());
    189152        }
    190153
     
    192155}
    193156
    194 function formulaires_ieconfig_import_traiter_dist($prefixeaimporter = null) {
    195 
     157function formulaires_ieconfig_import_traiter_dist() {
    196158        include_spip('inc/config');
     159
    197160        // Si on est à l'étape de sélection d'un fichier de configuration
    198161        // On place le code YAML dans le contexte
     
    211174                set_request('_code_yaml', $code_yaml);
    212175        } // Si on valide l'import
    213         $ieconfig_metas = ieconfig_metas_liste($prefixeaimporter);
    214         if (((count($ieconfig_metas) == 1) OR _request('importer')) && _request('_code_yaml')) {
     176        elseif (_request('importer') && _request('_code_yaml')) {
    215177                include_spip('inc/yaml');
    216178                $config = yaml_decode(_request('_code_yaml'));
     
    225187                ));
    226188
    227                 if (count($ieconfig_metas) == 1) {
    228                         $import_metas = array(key($ieconfig_metas));
    229                 } else {
    230                         $import_metas = _request('import_metas');
    231                 }
     189                // Gestion des plugins utilisant le pipeline ieconfig_metas
     190                $import_metas = _request('import_metas');
    232191                if (!is_array($import_metas)) {
    233192                        $import_metas = array();
    234193                }
    235                 // Gestion des plugins utilisant le pipeline ieconfig_metas
    236                 $option = _request('import_methode');
    237                 $config_importee = '';
     194
    238195                foreach (pipeline('ieconfig_metas', array()) as $prefixe => $data) {
    239196                        if (in_array($prefixe, $import_metas) && isset($config[$prefixe])) {
    240                                 $config_importee .= $prefixe . ' ';
    241197                                if (isset($data['metas_brutes'])) {
    242198                                        foreach (explode(',', $data['metas_brutes']) as $meta) {
     
    246202                                                        foreach ($config[$prefixe] as $m => $v) {
    247203                                                                if (substr($m, 0, strlen($p)) == $p) {
    248                                                                         if (($option === 'ecrase') OR ($option === 'fusion')) {
    249                                                                                 ecrire_config($m);
    250                                                                         }
    251                                                                         if ($option === 'fusion_inv') {
    252                                                                                 if (is_null(lire_config($m . '/'))) {
    253                                                                                         ecrire_config($m . '/', $v);
    254                                                                                 }
    255                                                                         }
     204                                                                        ecrire_config($m . '/', $v);
    256205                                                                }
    257206                                                        }
    258207                                                } elseif (isset($config[$prefixe][$meta])) {
    259                                                         if (($option === 'ecrase') OR ($option === 'fusion')) {
    260                                                                 ecrire_config($meta . '/', $config[$prefixe][$meta]);
    261                                                         }
    262                                                         if ($option === 'fusion_inv') {
    263                                                                 if (is_null(lire_config($meta . '/'))) {
    264                                                                         ecrire_config($meta . '/', $config[$prefixe][$meta]);
    265                                                                 }
    266                                                         }
     208                                                        ecrire_config($meta . '/', $config[$prefixe][$meta]);
    267209                                                }
    268210                                        }
     
    275217                                                        foreach ($config[$prefixe] as $m => $v) {
    276218                                                                if (substr($m, 0, strlen($p)) == $p) {
    277                                                                         $import = array();
    278                                                                         if ($option === 'ecrase') {
    279                                                                                 $import = $v;
    280                                                                         }
    281                                                                         if ($option === 'fusion') {
    282                                                                                 $import = array_merge(lire_config($m . '/'), $v);
    283                                                                         }
    284                                                                         if ($option === 'fusion_inv') {
    285                                                                                 $import_plus = array_diff_key($v, lire_config($meta . '/'));
    286                                                                                 $import_base = array_diff_key(lire_config($meta . '/'), $import_plus);
    287                                                                                 $import = (array_merge($import_plus, $import_base));
    288                                                                         }
    289                                                                         ksort($import);
    290                                                                         ecrire_config($m . '/', serialize($import));
     219                                                                        ecrire_config($m . '/', serialize($v));
    291220                                                                }
    292221                                                        }
    293222                                                } elseif (isset($config[$prefixe][$meta])) {
    294                                                         $import = array();
    295                                                         if ($option === 'ecrase') {
    296                                                                 $import = $config[$prefixe][$meta];
    297                                                         }
    298                                                         if ($option === 'fusion') {
    299                                                                 $import = array_merge(lire_config($meta . '/'), $config[$prefixe][$meta]);
    300                                                         }
    301                                                         if ($option === 'fusion_inv') {
    302                                                                 $import_plus = array_diff_key($config[$prefixe][$meta], lire_config($meta . '/'));
    303                                                                 $import_base = array_diff_key(lire_config($meta . '/'), $import_plus);
    304                                                                 $import = (array_merge($import_plus, $import_base));
    305                                                         }
    306                                                         ksort($import);
    307                                                         ecrire_config($meta . '/', serialize($import));
     223                                                        ecrire_config($meta . '/', serialize($config[$prefixe][$meta]));
    308224                                                }
    309225                                        }
     
    315231                        return array('message_erreur' => $message_erreur);
    316232                } else {
    317                         return array('message_ok' => _T('ieconfig:message_ok_import') . " ($option / $config_importee)");
     233                        return array('message_ok' => _T('ieconfig:message_ok_import'));
    318234                }
    319235        }
     
    321237
    322238// Renvoie la liste des fichiers de configurations présents dans un sous-répertoires ieconfig/
    323 function ieconfig_config_locales($prefixeaimporter = null) {
     239function ieconfig_config_locales() {
    324240        static $liste_config = null;
    325241
     
    342258                                }
    343259                        }
    344                         if (isset($prefixeaimporter) AND !isset($config[$prefixeaimporter])) {
    345                                 $ok = false;
    346                         }
    347260                        //on vérifie s'il y a un champs nom
    348261                        if ($ok) {
  • _plugins_/ieconfig/trunk/paquet.xml

    r111380 r111383  
    22        prefix="ieconfig"
    33        categorie="maintenance"
    4         version="2.0.5"
     4        version="2.0.6"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.