From aeeecc096e8cdbc1e8266d792f1a45b92039ddd0 Mon Sep 17 00:00:00 2001 From: "riedel.nobuyuki@yahoo.fr" <> Date: Thu, 28 Jun 2018 09:43:36 +0000 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20de=20l'int=C3=A9gration=20d?= =?UTF-8?q?e=20l'import=20de=20ieconfig=20directement=20dans=20l'outil=20d?= =?UTF-8?q?e=20configuration=20de=20SoyezCr=C3=A9ateurs.=20=20-=20Quand=20?= =?UTF-8?q?on=20est=20dans=20un=20onglet=20donn=C3=A9=20on=20ne=20peut=20i?= =?UTF-8?q?mporter=20que=20la=20partie=20concernant=20celui-ci=20=20-=20Un?= =?UTF-8?q?=20message=20d'erreur=20invitant=20l'utilisateur=20=C3=A0=20cha?= =?UTF-8?q?nger=20de=20fichier=20=C3=A0=20importer=20est=20g=C3=A9n=C3=A9r?= =?UTF-8?q?=C3=A9=20s'il=20n'y=20a=20pas=20de=20sauvegarde=20pr=C3=A9sente?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lang/soyezcreateursprive_fr.php | 4 +- soyezcreateurs_fonctions_ieconfig.php | 40 +++++++++-- soyezcreateurs_ieconfig.php | 97 ++++++++++++++++++++++++--- 3 files changed, 125 insertions(+), 16 deletions(-) diff --git a/lang/soyezcreateursprive_fr.php b/lang/soyezcreateursprive_fr.php index 81ba7190..b4c1e69f 100644 --- a/lang/soyezcreateursprive_fr.php +++ b/lang/soyezcreateursprive_fr.php @@ -377,7 +377,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'ieconfig_soyezcreateurs_import_option_choix' => 'Quel type d’import souhaitez-vous?', 'soyezcreateurs_import_ecraser' => 'Avec écrasement de la configuration existante', 'soyezcreateurs_import_soyezcreateurs_fusionner' => 'Avec fusion des configurations (import > existant)', - 'soyezcreateurs_import_soyezcreateurs_rien' => 'Ne pas importer' + 'soyezcreateurs_import_soyezcreateurs_rien' => 'Ne pas importer', + 'soyezcreateurs_import_soyezcreateurs_fusionner_inv' => 'En n’écrire que si paramètre manquant (existant > import)', + 'ieconfig_soyezcreateurs_import_nofound_explication' => 'Aucune configuration trouvé pour cette onglet. Veuillez annuler l’importation et choisir une autre sauvegarde.' ); diff --git a/soyezcreateurs_fonctions_ieconfig.php b/soyezcreateurs_fonctions_ieconfig.php index 79afd640..6f22afbb 100644 --- a/soyezcreateurs_fonctions_ieconfig.php +++ b/soyezcreateurs_fonctions_ieconfig.php @@ -69,17 +69,16 @@ function soyezcreateurs_importer_configuration($choix_sc,$choix_sc_l,$choix_sc_c $soyezcreateurs_couleurs = $config['soyezcreateurs_couleurs']; $soyezcreateurs_google = $config['soyezcreateurs_google']; - - if ($choix_sc != 'rien') { + if ($choix_sc != 'rien' and $choix_sc !== null) { $ok = insert_base_ieconfig($choix_sc,$soyezcreateurs); } - if ($choix_sc_l != 'rien') { + if ($choix_sc_l != 'rien' and $choix_sc_l !== null) { $ok = insert_base_ieconfig($choix_sc_l,$soyezcreateurs_layout); } - if ($choix_sc_c != 'rien') { + if ($choix_sc_c != 'rien' and $choix_sc_c !== null) { $ok = insert_base_ieconfig($choix_sc_c,$soyezcreateurs_couleurs); } - if ($choix_sc_g != 'rien') { + if ($choix_sc_g != 'rien' and $choix_sc_g !== null) { $ok = insert_base_ieconfig($choix_sc_g,$soyezcreateurs_google); } @@ -114,6 +113,27 @@ function insert_base_ieconfig($choix,$sections){ $import['valeur'] = array_merge($val_exist['valeur'],$import['valeur']); + $t = sql_delete('spip_meta','nom=\''.$import['nom'].'\''); + } + $import['valeur'] = serialize($import['valeur']); + $ok = sql_insertq('spip_meta', array('nom' => $import['nom'], 'valeur' => $import['valeur'])); + } + if ($choix == 'fusion_inv') { + foreach ($sections as $section) { + $import = $section; + } + $nom = $import['nom']; + if (sql_countsel('spip_meta','nom=\''.$nom.'\'') != 0) { + $val_exist = sql_fetsel( + 'nom, valeur', + 'spip_meta', + 'nom=\''.$nom.'\'' + ); + $val_exist['valeur'] = unserialize($val_exist['valeur']); + + $import['valeur'] = array_merge($import['valeur'],$val_exist['valeur']); + + $t = sql_delete('spip_meta','nom=\''.$import['nom'].'\''); } $import['valeur'] = serialize($import['valeur']); @@ -129,4 +149,14 @@ function insert_base_ieconfig($choix,$sections){ return false; } +} + +function getURI(){ + $adresse = $_SERVER['PHP_SELF']; + $i = 0; + foreach($_GET as $cle => $valeur){ + $adresse .= ($i == 0 ? '?' : '&').$cle.($valeur ? '='.$valeur : ''); + $i++; + } + return $adresse; } \ No newline at end of file diff --git a/soyezcreateurs_ieconfig.php b/soyezcreateurs_ieconfig.php index ace17258..d6dff780 100644 --- a/soyezcreateurs_ieconfig.php +++ b/soyezcreateurs_ieconfig.php @@ -1,5 +1,5 @@ <?php - + include_spip('soyezcreateurs_fonctions_ieconfig'); function soyezcreateurs_ieconfig($flux){ $action = $flux['args']['action']; @@ -53,14 +53,13 @@ // Tableau d'export - if ($action == 'export' && _request('soyezcreateurs_export_option') == 'on') { - include_spip('soyezcreateurs_fonctions_ieconfig'); - + if ($action == 'export' && _request('soyezcreateurs_export_option') == 'on') { $flux['data']['soyezcreateurs'] = soyezcreateurs_tableau_export(_request('soyezcreateurs_export_choix')); } // Formulaire d'import - if ($action == 'form_import' && isset($flux['args']['config']['soyezcreateurs'])) { + if ($action == 'form_import' && isset($flux['args']['config']['soyezcreateurs'])) { + $url = getURI(); $saisies = array( array( 'saisie' => 'fieldset', @@ -72,8 +71,11 @@ ), ); $s1 = array(); - //on détermine quelles configuration sont effectivement sauvegarder - foreach ($flux['args']['config']['soyezcreateurs'] as $section=>$exist){ + //on détermine quelles configuration sont effectivement sauvegarder + + if (strpos($url, '?exec=ieconfig_import')) { + foreach ($flux['args']['config']['soyezcreateurs'] as $section=>$exist){ + $s1[] = array( 'saisie' => 'radio', 'options' => array( @@ -82,19 +84,94 @@ 'datas' => array( 'rien' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_rien:>', 'fusion' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_fusionner:>', - 'ecrase' => '<:soyezcreateursprive:soyezcreateurs_import_ecraser:>', + 'ecrase' => '<:soyezcreateursprive:soyezcreateurs_import_ecraser:>', + 'fusion_inv' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_fusionner_inv:>', + ), + 'defaut' => 'fusion', + ) + ); + } + } + elseif (strpos($url, '&cfg=soyezcreateurs_layout') and isset($flux['args']['config']['soyezcreateurs']['soyezcreateurs_layout'])) { + $s1[] = array( + 'saisie' => 'radio', + 'options' => array( + 'nom' => 'soyezcreateurs_import_choix_soyezcreateurs_layout', + 'label' => '<:soyezcreateursprive:ieconfig_soyezcreateurs_import_explication_soyezcreateurs_layout:>', + 'datas' => array( + 'rien' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_rien:>', + 'fusion' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_fusionner:>', + 'ecrase' => '<:soyezcreateursprive:soyezcreateurs_import_ecraser:>', + 'fusion_inv' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_fusionner_inv:>', + ), + 'defaut' => 'fusion', + ) + ); + } + elseif (strpos($url, '&cfg=soyezcreateurs_couleurs') and isset($flux['args']['config']['soyezcreateurs']['soyezcreateurs_couleurs'])) { + $s1[] = array( + 'saisie' => 'radio', + 'options' => array( + 'nom' => 'soyezcreateurs_import_choix_soyezcreateurs_couleurs', + 'label' => '<:soyezcreateursprive:ieconfig_soyezcreateurs_import_explication_soyezcreateurs_couleurs:>', + 'datas' => array( + 'rien' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_rien:>', + 'fusion' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_fusionner:>', + 'ecrase' => '<:soyezcreateursprive:soyezcreateurs_import_ecraser:>', + 'fusion_inv' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_fusionner_inv:>', + ), + 'defaut' => 'fusion', + ) + ); + } + elseif (strpos($url, '&cfg=soyezcreateurs_google') and isset($flux['args']['config']['soyezcreateurs']['soyezcreateurs_google'])) { + $s1[] = array( + 'saisie' => 'radio', + 'options' => array( + 'nom' => 'soyezcreateurs_import_choix_soyezcreateurs_google', + 'label' => '<:soyezcreateursprive:ieconfig_soyezcreateurs_import_explication_soyezcreateurs_google:>', + 'datas' => array( + 'rien' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_rien:>', + 'fusion' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_fusionner:>', + 'ecrase' => '<:soyezcreateursprive:soyezcreateurs_import_ecraser:>', + 'fusion_inv' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_fusionner_inv:>', ), 'defaut' => 'fusion', ) ); - } + } + elseif (strpos($url, '&cfg=soyezcreateurs') and isset($flux['args']['config']['soyezcreateurs']['soyezcreateurs'])) { + $s1[] = array( + 'saisie' => 'radio', + 'options' => array( + 'nom' => 'soyezcreateurs_import_choix_soyezcreateurs', + 'label' => '<:soyezcreateursprive:ieconfig_soyezcreateurs_import_explication_soyezcreateurs:>', + 'datas' => array( + 'rien' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_rien:>', + 'fusion' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_fusionner:>', + 'ecrase' => '<:soyezcreateursprive:soyezcreateurs_import_ecraser:>', + 'fusion_inv' => '<:soyezcreateursprive:soyezcreateurs_import_soyezcreateurs_fusionner_inv:>', + ), + 'defaut' => 'fusion', + ) + ); + } + else { + $s1[] = array( + 'saisie' => 'explication', + 'options' => array( + 'nom' => 'soyezcreateurs_nofound_explication', + 'texte' => '<:soyezcreateursprive:ieconfig_soyezcreateurs_import_nofound_explication:>', + ) + ); + } + $saisies[0]['saisies'] = $s1; $flux['data'] = array_merge($flux['data'], $saisies); } // Import de la configuration if ($action == 'import' && isset($flux['args']['config']['soyezcreateurs'])) { - include_spip('soyezcreateurs_fonctions_ieconfig'); if (!soyezcreateurs_importer_configuration( _request('soyezcreateurs_import_choix_soyezcreateurs'), _request('soyezcreateurs_import_choix_soyezcreateurs_layout'), -- GitLab