Skip to content
Extraits de code Groupes Projets
Valider d575b40b rédigé par riedel.nobuyuki@yahoo.fr's avatar riedel.nobuyuki@yahoo.fr
Parcourir les fichiers

mise à jour de la fonction sc_ieconfig_importer_fichier($chemin,$option) pour...

mise à jour de la fonction sc_ieconfig_importer_fichier($chemin,$option) pour qu'elle fasse ce qui lui est demandé

modification de sc_import.html pour faire un exemple d'importation avec la couleur bleu_blanc_rouge 
parent c654c2eb
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -2,20 +2,19 @@ ...@@ -2,20 +2,19 @@
<ul > <ul >
[ [
(#AUTORISER{webmestre}|oui)<li><a href="./?exec=sc_import&nom=soyezcreateurs_couleurs_cfg_bleu&option=fusion">Activer mode Cognac de SoyezCréateurs</a> (attention, ne pas le faire maintenant, ça n'est pas terminé de coder)</li> (#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>
] ]
<?php <?php
$nom = _request('nom'); $nom = _request('nom');
$option = _request('option'); $option = _request('option');
if (isset($nom) and isset($option)) { if (isset($nom) and isset($option)) {
include_spip('soyezcreateurs_fonctions_ieconfig'); include_spip('soyezcreateurs_fonctions_ieconfig');
if(!preg_match ('/[^a-zA-Z0-9_]/i', $nom)) { if(!preg_match('[.a-zA-Z0-9_/\]', $nom)) {
$ok = sc_ieconfig_importer_fichier($fichier,$option); $ok = sc_ieconfig_importer_fichier($nom,$option);
}
} }
}
?> ?>
</ul> </ul>
\ No newline at end of file
...@@ -237,12 +237,20 @@ function form_export() { ...@@ -237,12 +237,20 @@ function form_export() {
*/ */
function sc_ieconfig_importer_fichier($chemin,$option) { function sc_ieconfig_importer_fichier($chemin,$option) {
include_spip('inc/yaml'); include_spip('inc/yaml');
$config = yaml_decode_file($chemin); $config = yaml_decode_file($chemin);
// Gestion des plugins utilisant le pipeline ieconfig_metas // On passe via le pipeline ieconfig
foreach (pipeline('ieconfig_metas', array()) as $prefixe => $data) { $message_erreur = pipeline('ieconfig', array(
//Si on veut une importation avec écrasement 'args' => array(
if (isset($config[$prefixe])) { 'action' => 'import',
'config' => $config,
),
'data' => '',
));
// Gestion des plugins utilisant le pipeline ieconfig_metas
foreach (pipeline('ieconfig_metas', array()) as $prefixe => $data) {
//Si on veut une importation avec écrasement //Si on veut une importation avec écrasement
if ($option === 'ecrase') { if ($option === 'ecrase') {
...@@ -287,15 +295,17 @@ function sc_ieconfig_importer_fichier($chemin,$option) { ...@@ -287,15 +295,17 @@ function sc_ieconfig_importer_fichier($chemin,$option) {
$p = substr($meta, 0, -1); $p = substr($meta, 0, -1);
foreach ($config[$prefixe] as $m => $v) { foreach ($config[$prefixe] as $m => $v) {
if (substr($m, 0, strlen($p)) == $p) { if (substr($m, 0, strlen($p)) == $p) {
$sc = lire_config($m . '/', $v); $save = lire_config($m . '/', $v);
$v = array_merge($sc,$v); $import = ($v);
$import = array_merge($save,$import);
ecrire_config($m . '/', $v); ecrire_config($m . '/', $v);
} }
} }
} elseif (isset($config[$prefixe][$meta])) { } elseif (isset($config[$prefixe][$meta])) {
$sc = lire_config($meta . '/', $config[$prefixe][$meta]); $save = lire_config($meta . '/', $config[$prefixe][$meta]);
$config[$prefixe][$meta] = array_merge($sc,$config[$prefixe][$meta]); $import = ($config[$prefixe][$meta]);
ecrire_config($meta . '/', $config[$prefixe][$meta]); $import = array_merge($save,$import);
ecrire_config($meta . '/', $import);
} }
} }
} }
...@@ -306,21 +316,24 @@ function sc_ieconfig_importer_fichier($chemin,$option) { ...@@ -306,21 +316,24 @@ function sc_ieconfig_importer_fichier($chemin,$option) {
$p = substr($meta, 0, -1); $p = substr($meta, 0, -1);
foreach ($config[$prefixe] as $m => $v) { foreach ($config[$prefixe] as $m => $v) {
if (substr($m, 0, strlen($p)) == $p) { if (substr($m, 0, strlen($p)) == $p) {
$sc = lire_config($m . '/', serialize($v)); $save = lire_config($m . '/', serialize($v));
$v = array_merge($sc,$v); $import = ($v);
ecrire_config($m . '/', serialize($v)); $import = array_merge($save,$import);
ecrire_config($m . '/', serialize($import));
} }
} }
} elseif (isset($config[$prefixe][$meta])) { } elseif (isset($config[$prefixe][$meta])) {
$sc = lire_config($meta . '/', serialize($config[$prefixe][$meta])); $save = lire_config($meta . '/', serialize($config[$prefixe][$meta]));
$config[$prefixe][$meta] = array_merge($sc,$config[$prefixe][$meta]); $import = ($config[$prefixe][$meta]);
ecrire_config($meta . '/', serialize($config[$prefixe][$meta])); $import = array_merge($save,$import);
ecrire_config($meta . '/', serialize($import));
} }
} }
} }
} }
//Si on veut une importation avec fusion_inv //Si on veut une importation avec fusion_inv
if ($option === 'fusion_inv') { if ($option === 'fusion_inv') {
if (isset($data['metas_brutes'])) { if (isset($data['metas_brutes'])) {
foreach (explode(',', $data['metas_brutes']) as $meta) { foreach (explode(',', $data['metas_brutes']) as $meta) {
// On teste le cas ou un prefixe est indique (dernier caractere est *) // On teste le cas ou un prefixe est indique (dernier caractere est *)
...@@ -328,15 +341,17 @@ function sc_ieconfig_importer_fichier($chemin,$option) { ...@@ -328,15 +341,17 @@ function sc_ieconfig_importer_fichier($chemin,$option) {
$p = substr($meta, 0, -1); $p = substr($meta, 0, -1);
foreach ($config[$prefixe] as $m => $v) { foreach ($config[$prefixe] as $m => $v) {
if (substr($m, 0, strlen($p)) == $p) { if (substr($m, 0, strlen($p)) == $p) {
$sc = lire_config($m . '/', $v); $save = lire_config($m . '/', $v);
$v = array_merge($v,$sc); $import = ($v);
ecrire_config($m . '/', $v); $import = array_merge($import,$save);
ecrire_config($m . '/', $import);
} }
} }
} elseif (isset($config[$prefixe][$meta])) { } elseif (isset($config[$prefixe][$meta])) {
$sc = lire_config($meta . '/', $config[$prefixe][$meta]); $save = lire_config($meta . '/', $config[$prefixe][$meta]);
$config[$prefixe][$meta] = array_merge($config[$prefixe][$meta],$sc); $import = ($config[$prefixe][$meta]);
ecrire_config($meta . '/', $config[$prefixe][$meta]); $import = array_merge($import,$save);
ecrire_config($meta . '/', $import);
} }
} }
} }
...@@ -347,29 +362,27 @@ function sc_ieconfig_importer_fichier($chemin,$option) { ...@@ -347,29 +362,27 @@ function sc_ieconfig_importer_fichier($chemin,$option) {
$p = substr($meta, 0, -1); $p = substr($meta, 0, -1);
foreach ($config[$prefixe] as $m => $v) { foreach ($config[$prefixe] as $m => $v) {
if (substr($m, 0, strlen($p)) == $p) { if (substr($m, 0, strlen($p)) == $p) {
$sc = lire_config($m . '/', serialize($v)); $save = lire_config($m . '/', serialize($v));
$v = array_merge($v,$sc); $import = ($v);
ecrire_config($m . '/', serialize($v)); $import = array_merge($import,$save);
ecrire_config($m . '/', serialize($import));
} }
} }
} elseif (isset($config[$prefixe][$meta])) { } elseif (isset($config[$prefixe][$meta])) {
$sc = lire_config($meta . '/', serialize($config[$prefixe][$meta])); $save = lire_config($meta . '/', serialize($config[$prefixe][$meta]));
$config[$prefixe][$meta] = array_merge($config[$prefixe][$meta],$sc); $import = ($config[$prefixe][$meta]);
ecrire_config($meta . '/', serialize($config[$prefixe][$meta])); $import = array_merge($import,$save);
ecrire_config($meta . '/', serialize($import));
} }
} }
} }
} }
} }
}
if ($message_erreur != '') { if ($message_erreur != '') {
return array('message_erreur' => $message_erreur); return array('message_erreur' => $message_erreur);
} else { } else {
return array('message_ok' => _T('ieconfig:message_ok_import')); return array('message_ok' => _T('ieconfig:message_ok_import'));
} }
//On appelle la fonction d'importation des configurations
return soyezcreateurs_importer_configuration($option,$option,$option,$option,$config);
} }
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter