diff --git a/lang/soyezcreateursprive_fr.php b/lang/soyezcreateursprive_fr.php index 81ba7190eb911d577a56c9d69bbc7b29bf1e2c52..b4c1e69f8bc5f43ea448c368f598ff3141f6ab0e 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 79afd640d292ffff3ad5abfcd21061e4b00a621d..6f22afbb4a9cafd8ed841465e294a889510a67bd 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 ace172585eff4f04f1b22699084488cd21812010..d6dff78029a6975310734bd586a12500c1ebf92c 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'),