Changeset 111452 in spip-zone


Ignore:
Timestamp:
Aug 27, 2018, 9:10:48 PM (8 months ago)
Author:
real3t@…
Message:

[SoyezCréateurs?] Activation rapide du mode Cognac fonctionnelle !

Location:
_squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/paquet.xml

    r111446 r111452  
    22        prefix="soyezcreateurs"
    33        categorie="squelette"
    4         version="5.0.6"
     4        version="5.0.7"
    55        etat="stable"
    66        compatibilite="[3.1.8;3.2.*]"
     
    9494        <menu nom="soyezcreateur_config21" titre="soyezcreateurs:configurersc" parent="bando_configuration" icone="images/soyezcreateurs-16.png" action="configurer_soyezcreateurs" parametres="cfg=soyezcreateurs" />
    9595        <menu nom="sc_aide" titre="soyezcreateurs:aidesc" parent="bando_squelette" icone="images/soyezcreateurs_help-16.png" action="sc_aide" />
    96         <menu nom="sc_import" titre="soyezcreateursprive:configurations_rapides_soyezcreateurs" parent="bando_squelette" icone="images/soyezcreateurs_help-16.png" action="sc_import" />
    9796</paquet>
  • _squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/prive/exec/sc_aide.html

    r103719 r111452  
    55(#AUTORISER{webmestre}|oui)<li><a href="#URL_ECRIRE{sc_vide}">Supprimer les articles de démonstration inutiles</a><br />Cette opération est potentiellement <strong>dangereuse</strong> et n'est à faire qu'en comprenant bien ce que vous faites !</li>
    66[(#PLUGIN{campagnes}|oui)<li><a href="[(#URL_ECRIRE{sc_aide}|parametre_url{doit,1})]">Créer les emplacements de bannières publicitaires par défaut</a><br />Action <strong>immédiate</strong> !</li>]
     7[(#PLUGIN{ieconfig}|oui)<li><a href="[(#URL_ECRIRE{sc_import}|parametre_url{doit,1})]"><:soyezcreateursprive:configurations_rapides_soyezcreateurs:></li>]
    78]</ul>
    89<?php
  • _squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/prive/exec/sc_import.html

    r111306 r111452  
    11<h1><:soyezcreateursprive:ieconfig_import_spe:></h1>
    2 
    3 <ul >
    4         [
    5         (#AUTORISER{webmestre}|oui)<li><a href="./?exec=sc_import&nom=C:/wamp64/www/plugins/auto/soyezcreateurs/v4.3.16/cfg_config/soyezcreateurs_couleurs_seul_bleu_blanc_rouge.yaml&option=fusion">Activer mode Cognac de SoyezCréateurs</a> (attention, ne pas le faire maintenant, ça n'est pas terminé de coder)</li>
    6         ]
    7 
    8 
    9 
    102<?php
    113        $nom = _request('nom');
     
    146                include_spip('soyezcreateurs_fonctions_ieconfig');
    157                if(!preg_match('[.a-zA-Z0-9_/\]', $nom)) {
    16                         $ok = sc_ieconfig_importer_fichier($nom,$option);
     8                        $result = sc_ieconfig_importer_fichier($nom,$option);
    179                }
    1810        }
    1911?>
     12
     13<ul >
     14        [
     15        (#AUTORISER{webmestre}|oui)<li><a href="[(#SELF|parametre_url{nom,cfg_config/soyezcreateurs_mode_cognac}|parametre_url{option,fusion})]">Activer mode Cognac de SoyezCréateurs</a> (<strong>Attention</strong>, action immédiate&nbsp;!)</li>
     16        ]
    2017</ul>
     18
     19<?php
     20        if ($result) {
     21                $ok = $result['message_ok'];
     22                echo "<p>$ok (#ENV{nom})</p>";
     23
     24        }
     25?>
     26
  • _squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/soyezcreateurs_fonctions_ieconfig.php

    r111447 r111452  
    1919/*      - 'fusion_inv' : Fusionner la configuration actuelle avec le fichier d'importation, les paramètres renseignés dans le fichier d'importation sont ignorés s'il sont présent dans la configuration actuelle
    2020*/
    21 function sc_ieconfig_importer_fichier($chemin,$option = 'ecrase') {
     21function sc_ieconfig_importer_fichier($chemin, $option = 'ecrase') {
    2222        include_spip('inc/yaml');
    23                 $config = yaml_decode_file($chemin);
     23        $config = yaml_decode_file(find_in_path($chemin.'.yaml'));
     24       
     25        // On passe via le pipeline ieconfig
     26        $message_erreur = pipeline('ieconfig', array(
     27                'args' => array(
     28                        'action' => 'import',
     29                        'config' => $config,
     30                ),
     31                'data' => '',
     32        ));
    2433
    25                 // On passe via le pipeline ieconfig
    26                 $message_erreur = pipeline('ieconfig', array(
    27                         'args' => array(
    28                                 'action' => 'import',
    29                                 'config' => $config,
    30                         ),
    31                         'data' => '',
    32                 ));
    33 
    34                 // Gestion des plugins utilisant le pipeline ieconfig_metas
    35                 foreach (pipeline('ieconfig_metas', array()) as $prefixe => $data) {
    36                         if (in_array($prefixe, $import_metas) && isset($config[$prefixe])) {
    37                                 $config_importee .= $prefixe . ' ';
    38                                 if (isset($data['metas_brutes'])) {
    39                                         foreach (explode(',', $data['metas_brutes']) as $meta) {
    40                                                 // On teste le cas ou un prefixe est indique (dernier caractere est *)
    41                                                 if (substr($meta, -1) == '*') {
    42                                                         $p = substr($meta, 0, -1);
    43                                                         foreach ($config[$prefixe] as $m => $v) {
    44                                                                 if (substr($m, 0, strlen($p)) == $p) {
    45                                                                         if (($option === 'ecrase') OR ($option === 'fusion')) {
    46                                                                                 ecrire_config($m);
    47                                                                         }
    48                                                                         if ($option === 'fusion_inv') {
    49                                                                                 if (is_null(lire_config($m . '/'))) {
    50                                                                                         ecrire_config($m . '/', $v);
    51                                                                                 }
    52                                                                         }
    53                                                                 }
    54                                                         }
    55                                                 } elseif (isset($config[$prefixe][$meta])) {
     34        // Gestion des plugins utilisant le pipeline ieconfig_metas
     35        foreach (pipeline('ieconfig_metas', array()) as $prefixe => $data) {
     36                if (isset($data['metas_brutes'])) {
     37                        foreach (explode(',', $data['metas_brutes']) as $meta) {
     38                                // On teste le cas ou un prefixe est indique (dernier caractere est *)
     39                                if (substr($meta, -1) == '*') {
     40                                        $p = substr($meta, 0, -1);
     41                                        foreach ($config[$prefixe] as $m => $v) {
     42                                                if (substr($m, 0, strlen($p)) == $p) {
    5643                                                        if (($option === 'ecrase') OR ($option === 'fusion')) {
    57                                                                 ecrire_config($meta . '/', $config[$prefixe][$meta]);
     44                                                                ecrire_config($m);
    5845                                                        }
    5946                                                        if ($option === 'fusion_inv') {
    60                                                                 if (is_null(lire_config($meta . '/'))) {
    61                                                                         ecrire_config($meta . '/', $config[$prefixe][$meta]);
     47                                                                if (is_null(lire_config($m . '/'))) {
     48                                                                        ecrire_config($m . '/', $v);
    6249                                                                }
    6350                                                        }
    6451                                                }
    6552                                        }
    66                                 }
    67                                 if (isset($data['metas_serialize'])) {
    68                                         foreach (explode(',', $data['metas_serialize']) as $meta) {
    69                                                 // On teste le cas ou un prefixe est indique (dernier caractere est *)
    70                                                 if (substr($meta, -1) == '*') {
    71                                                         $p = substr($meta, 0, -1);
    72                                                         foreach ($config[$prefixe] as $m => $v) {
    73                                                                 if (substr($m, 0, strlen($p)) == $p) {
    74                                                                         $import = array();
    75                                                                         if ($option === 'ecrase') {
    76                                                                                 $import = $v;
    77                                                                         }
    78                                                                         if ($option === 'fusion') {
    79                                                                                 $import = array_merge(lire_config($m . '/'), $v);
    80                                                                         }
    81                                                                         if ($option === 'fusion_inv') {
    82                                                                                 $import_plus = array_diff_key($v, lire_config($meta . '/'));
    83                                                                                 $import_base = array_diff_key(lire_config($meta . '/'), $import_plus);
    84                                                                                 $import = (array_merge($import_plus, $import_base));
    85                                                                         }
    86                                                                         ksort($import);
    87                                                                         ecrire_config($m . '/', serialize($import));
    88                                                                 }
    89                                                         }
    90                                                 } elseif (isset($config[$prefixe][$meta])) {
    91                                                         $import = array();
    92                                                         if ($option === 'ecrase') {
    93                                                                 $import = $config[$prefixe][$meta];
    94                                                         }
    95                                                         if ($option === 'fusion') {
    96                                                                 $import = array_merge(lire_config($meta . '/'), $config[$prefixe][$meta]);
    97                                                         }
    98                                                         if ($option === 'fusion_inv') {
    99                                                                 $import_plus = array_diff_key($config[$prefixe][$meta], lire_config($meta . '/'));
    100                                                                 $import_base = array_diff_key(lire_config($meta . '/'), $import_plus);
    101                                                                 $import = (array_merge($import_plus, $import_base));
    102                                                         }
    103                                                         ksort($import);
    104                                                         ecrire_config($meta . '/', serialize($import));
     53                                } elseif (isset($config[$prefixe][$meta])) {
     54                                        if (($option === 'ecrase') OR ($option === 'fusion')) {
     55                                                ecrire_config($meta . '/', $config[$prefixe][$meta]);
     56                                        }
     57                                        if ($option === 'fusion_inv') {
     58                                                if (is_null(lire_config($meta . '/'))) {
     59                                                        ecrire_config($meta . '/', $config[$prefixe][$meta]);
    10560                                                }
    10661                                        }
     
    10863                        }
    10964                }
     65                if (isset($data['metas_serialize'])) {
     66                        foreach (explode(',', $data['metas_serialize']) as $meta) {
     67                                // On teste le cas ou un prefixe est indique (dernier caractere est *)
     68                                if (substr($meta, -1) == '*') {
     69                                        $p = substr($meta, 0, -1);
     70                                        foreach ($config[$prefixe] as $m => $v) {
     71                                                if (substr($m, 0, strlen($p)) == $p) {
     72                                                        $import = array();
     73                                                        if ($option === 'ecrase') {
     74                                                                $import = $v;
     75                                                        }
     76                                                        if ($option === 'fusion') {
     77                                                                $import = array_merge(lire_config($m . '/'), $v);
     78                                                        }
     79                                                        if ($option === 'fusion_inv') {
     80                                                                $import_plus = array_diff_key($v, lire_config($meta . '/'));
     81                                                                $import_base = array_diff_key(lire_config($meta . '/'), $import_plus);
     82                                                                $import = (array_merge($import_plus, $import_base));
     83                                                        }
     84                                                        ksort($import);
     85                                                        ecrire_config($m . '/', serialize($import));
     86                                                }
     87                                        }
     88                                } elseif (isset($config[$prefixe][$meta])) {
     89                                        $import = array();
     90                                        if ($option === 'ecrase') {
     91                                                $import = $config[$prefixe][$meta];
     92                                        }
     93                                        if ($option === 'fusion') {
     94                                                $import = array_merge(lire_config($meta . '/'), $config[$prefixe][$meta]);
     95                                        }
     96                                        if ($option === 'fusion_inv') {
     97                                                $import_plus = array_diff_key($config[$prefixe][$meta], lire_config($meta . '/'));
     98                                                $import_base = array_diff_key(lire_config($meta . '/'), $import_plus);
     99                                                $import = (array_merge($import_plus, $import_base));
     100                                        }
     101                                        ksort($import);
     102                                        ecrire_config($meta . '/', serialize($import));
     103                                }
     104                        }
     105                }
     106        }
    110107
    111                 if ($message_erreur != '') {
    112                         return array('message_erreur' => $message_erreur);
    113                 } else {
    114                         return array('message_ok' => _T('ieconfig:message_ok_import'));
    115                 }
     108        if ($message_erreur != '') {
     109                return array('message_erreur' => $message_erreur);
     110        } else {
     111                return array('message_ok' => _T('ieconfig:message_ok_import'));
     112        }
    116113}
    117114
Note: See TracChangeset for help on using the changeset viewer.