Valider 881ee5cc rédigé par arnaud.berard@mister-graphx.com's avatar arnaud.berard@mister-graphx.com
Parcourir les fichiers

Import du plugin IEconfigPlus

En resumé 

Export/Import des Metas

- SEO
- GIS
- FB_models
- ckeditor
- autorite
- panier
- bank

Exports/import d'objets

- Exportation et import des sélection éditoriales (pas de prise en charge des contenus). Utile pour importer facilement une structure de squelette.

- Exportation et import des Pages uniques

- Exportation et import des Formulaires formidables

- Exportation et import des Groupes de mots-clef et des mots (ajout récent fonctionnel mais encore capricieux et à améliorer)


la doc en cours de rédaction …

https://contrib.spip.net/ecrire/?exec=article&id_article=5008
parent 218f524e
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+3 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
* text=auto !eol
prive/themes/spip/images/ieconfigplus-128.png -text
prive/themes/spip/images/ieconfigplus-32.png -text
prive/themes/spip/images/ieconfigplus-64.png -text
+131 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<?php
/**
 * Utilisations de pipelines par Importeur/Exporteur de configuration Addons
 *
 * @plugin     Importeur/Exporteur de configuration Addons
 * @copyright  2018
 * @author     Arnaud B. (Mist. GraphX)
 * @licence    GNU/GPL
 * @package    SPIP\Ieconfigplus\Pipelines
 */

if (!defined('_ECRIRE_INC_VERSION')) {
	return;
}
// Import-export
//
// il est possible d’indiquer, via le pipeline ieconfig_metas,
// un préfixe de méta en le faisant suivre d’une astérisque (*).
//
// par exemple :
//
// function prefixe_plugin_ieconfig_metas($table){
// 		$table['prefixe_plugin']['titre'] = nom_du_plugin;
// 		$table['prefixe_plugin']['icone'] = 'chemin/image.png';
// 		$table['prefixe_plugin']['metas_serialize'] = 'titi,toto_*';
// 		return $table;
// 	}

function ieconfigplus_ieconfig_metas($table){


	// Surcharge de l'export des metas pour MOTS
	$table['mots_meta']['titre'] = _T('mots:info_mots_cles');
	$table['mots_meta']['icone'] = 'mot-16.png';
	$table['mots_meta']['metas_brutes'] = 'articles_mots,config_precise_groupes,mots_cles_forums';

	// SEO
	if(test_plugin_actif('seo')){
		$table['seo']['titre'] = _T('paquet-seo:seo_slogan');
		$table['seo']['icone'] = 'prive/themes/spip/images/seo-16.png';
		$table['seo']['metas_serialize'] = 'seo';
	}

    // Export de config des plugins <utilise>
    // http://zone.spip.org/trac/spip-zone/browser/_plugins_/ieconfig/trunk/ieconfig_pipelines.php

  // Gis
  if(test_plugin_actif('gis')){
      $table['gis']['titre'] = _T('gis:cfg_titre_gis');
      $table['gis']['icone'] = 'prive/themes/spip/images/gis-16.png';
      $table['gis']['metas_serialize'] = 'gis';
  }

  // Facebook Modèle : fb_modeles
  if(test_plugin_actif('fb_modeles')){
      $table['fb_modeles']['titre'] = _T('fbmodeles:cfg_descr_titre');
      $table['fb_modeles']['icone'] = 'prive/themes/spip/images/fb-btn-16.png';
      $table['fb_modeles']['metas_serialize'] = 'fb_modeles';
  }

  // CKeditor pour spip
  if(test_plugin_actif('ckeditor')){
      $table['ckeditor']['titre'] = _T('paquet-ckeditor:ckeditor_slogan');
      $table['ckeditor']['icone'] = 'prive/themes/spip/images/ckspip-logo-16.png';
      $table['ckeditor']['metas_serialize'] = 'ckeditor';
  }

	// Autorite
  if(test_plugin_actif('autorite')){
      $table['autorite']['titre'] = _T('paquet-autorite:autorite_nom');
      $table['autorite']['icone'] = 'prive/themes/spip/images/illuminati-16.png';
      $table['autorite']['metas_serialize'] = 'autorite';
  }

	// Paniers
  if(test_plugin_actif('paniers')){
      $table['paniers']['titre'] = _T('paniers:titre_panier');
      $table['paniers']['icone'] = 'prive/themes/spip/images/paniers-16.png';
      $table['paniers']['metas_serialize'] = 'paniers,paniers_*';
  }

	// Bank
  if(test_plugin_actif('bank')){
      $table['bank']['titre'] = _T('bank:titre_menu_configurer');
      $table['bank']['icone'] = 'prive/themes/spip/images/credit-card-16.png';
      $table['bank']['metas_serialize'] = 'bank,bank_*';
  }

  return $table;
}

/**
 * Pipeline ieconfig pour l'import/export de configuration
 *
 *
 * @see http://contrib.spip.net/Importeur-Exporteur-de-configurations-documentation
 * @todo gérer lors de l'import si on a des identifiants identiques, voir ou en est le plugin IDENTIFIANTS
 * @todo annoncer les erreurs d'import si un champ sql n'est pas présent (exemple composition et pages), lors de l'export d'un skel x vers un skel y
 *
 * @param array $flux
 * @return array
 */
function ieconfigplus_ieconfig($flux){
  include_spip('inc/texte');
	$action = $flux['args']['action'];

  // Export des groupes et mots-clefs
  include_spip('inc/ieconfig_mots_fonctions');
  $mots = ieconfig_mots($flux,$action);

  // Pages
  if(test_plugin_actif('pages')){
      include_spip('inc/ieconfig_pages_fonctions');
      $pages = ieconfig_pages($flux,$action);
  }

  // Selections Editoriales
  if(test_plugin_actif('selections_editoriales')){
      include_spip('inc/ieconfig_selections_editoriales_fonctions');
      $selections = ieconfig_selections_editoriales($flux,$action);
  }

  // Formidable
  if(test_plugin_actif('formidable')){
      include_spip('inc/ieconfig_formidable_fonctions');
      $formidables = ieconfig_formidable($flux, $action);
  }


  return $flux;
}
+263 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<?php

if (!defined("_ECRIRE_INC_VERSION")) return;



/**
 * Fonction d'export/import pour la Pipeline ieconfig
 *
 * @param array $flux
 * @param string $action
 * @return array
 */
function ieconfig_formidable(&$flux, $action){
	// Formulaire d'export
	if ($action=='form_export') {
		$saisies = array(
			array(
				'saisie' => 'fieldset',
				'options' => array(
					'nom' => 'formidable_export',
					'label' => '<:fragments_core:formidable_export_titre:>',
					'icone' => 'formulaire-16.png'
				),
				'saisies' => array(
					array(
						'saisie' => 'formulaire_formidable_multiple',
						'options' => array(
							'nom' => 'formidable_a_exporter',
							'label' => '<:fragments_core:formidable_choix_export:>',
							'cacher_option_intro' => 'oui'
						)
					)
				)
			)
		);
		$flux['data'] = array_merge($flux['data'],$saisies);
	}
	
	// Tableau d'export
	if ($action=='export' && is_array(_request('formidable_a_exporter')) && count(_request('formidable_a_exporter'))>0) {
		$flux['data']['formidable'] = array();
		include_spip('base/abstract_sql');
		//include_spip('echanger/formulaire/yaml');
		foreach (_request('formidable_a_exporter') as $identifiant) {
			$formulaire = sql_fetsel(array('id_formulaire','identifiant','titre'),'spip_formulaires','identifiant = '.sql_quote($identifiant));
                        $id_formulaire = $formulaire['id_formulaire'];
			unset($formulaire['id_formulaire']);
			$formulaire['entrees'] = exporter_formulaire($id_formulaire);
			$flux['data']['formidable'][$identifiant] = $formulaire;
		}
	}
	
	// Formulaire d'import
	if ($action=='form_import' && isset($flux['args']['config']['formidable']) && is_array($flux['args']['config']['formidable']) && count($flux['args']['config']['formidable'])>0) {
		$saisies = array(
			array(
				'saisie' => 'fieldset',
				'options' => array(
					'nom' => 'formidable_import',
					'label' => '<:formidable:editer_formidable_titre:>',
					'icone' => 'menu-16.png'
				),
				'saisies' => array(
					array(
						'saisie' => 'explication',
						'options' => array(
							'nom' => 'formidable_import_explication',
							'texte' => '<:formidable:formulaire_ieconfig_choisir_formidable_a_importer:>'
						)
					)
				)
			)
		);
		foreach ($flux['args']['config']['formidable'] as $identifiant => $formulaire) {
			if (sql_countsel('spip_formulaires','identifiant = '.sql_quote($identifiant))>0) {
				$saisies[0]['saisies'][] = array(
					'saisie' => 'selection',
					'options' => array(
						'nom' => 'formidable_importer_'.$identifiant,
						'label' => $identifiant.(isset($formulaire['titre']) ? ' ('.typo($formulaire['titre']).')' : ''),
						'cacher_option_intro' => 'oui',
						'attention' => '<:formidable:formulaire_ieconfig_menu_meme_identifiant:>',
						'datas' => array(
							'non' => '<:formidable:formulaire_ieconfig_ne_pas_importer:>',
							'renommer' => '<:formidable:formulaire_ieconfig_renommer:>',
							'remplacer' => '<:formidable:formulaire_ieconfig_remplacer:>'
						)
					)
				);
			} else {
				$saisies[0]['saisies'][] = array(
					'saisie' => 'selection',
					'options' => array(
						'nom' => 'formidable_importer_'.$identifiant,
						'label' => $identifiant.(isset($formulaire['titre']) ? ' ('.typo($formulaire['titre']).')' : ''),
						'cacher_option_intro' => 'oui',
						'datas' => array(
							'non' => '<:formidable:formulaire_ieconfig_ne_pas_importer:>',
							'importer' => '<:formidable:formulaire_ieconfig_importer:>'
						)
					)
				);
			}
		}
		$flux['data'] = array_merge($flux['data'],$saisies);
	}
	
	// Import de la configuration
	if ($action=='import' && isset($flux['args']['config']['formidable']) && is_array($flux['args']['config']['formidable']) && count($flux['args']['config']['formidable'])>0) {
		foreach ($flux['args']['config']['formidable'] as $identifiant => $formulaire) {
			$choix = _request('formidable_importer_'.$identifiant);
			include_spip('base/abstract_sql');
			//include_spip('inc/formidable');
			// include_spip('action/editer_menu');
			if ($choix == 'remplacer') {
				$id_formulaire = intval(sql_getfetsel('id_formulaire','spip_formulaires','identifiant = '.sql_quote($identifiant)));
				formulaire_supprimer($id_formulaire);
			}
			if ($choix == 'renommer')
				$identifiant = $identifiant.'_'.time();
			if (in_array($choix,array('importer','remplacer','renommer'))) {
				$titre = isset($menu['titre']) ? $menu['titre'] : '';
				$id_menu = sql_insertq('spip_formulaires',array(
					'identifiant' => $identifiant,
					'titre' => $titre
				));
				if (isset($formulaire['entrees']))
					formulaire_importer($formulaire['entrees']);
			}
		}
	}// ./end test defined(_DIR_PLUGIN_FORMIDABLE)


	return($flux);
}

/**
 * exporter_formulaire
 *
 * tiré de la function echanger/formulaire/yaml
*/
function exporter_formulaire($id_formulaire){
    include_spip('base/abstract_sql');
	include_spip('inc/yaml');
	$id_formulaire = intval($id_formulaire);
	
	if ($id_formulaire > 0){
		// On récupère le formulaire
		$formulaire = sql_fetsel(
			'*',
			'spip_formulaires',
			'id_formulaire = '.$id_formulaire
		);
		
		// On décompresse les trucs sérialisés
		$formulaire['saisies'] = unserialize($formulaire['saisies']);
		$formulaire['traitements'] = unserialize($formulaire['traitements']);
                
        return $formulaire;
	}
}

function formulaire_importer($formulaire){

        

        // Si le decodage marche on importe alors le contenu
        if (is_array($formulaire)){
                // include_spip('action/editer_formulaire');
                // On enlève les champs inutiles
                unset($formulaire['id_formulaire']);
                // On vérifie que l'identifiant n'existe pas déjà
                $deja = sql_getfetsel(
                        'id_formulaire',
                        'spip_formulaires',
                        'identifiant = '.sql_quote($formulaire['identifiant'])
                );
                if ($deja){
                        $formulaire['identifiant'] .= '_'.date('Ymd_His');
                }
                
                // On insère un nouveau formulaire
                $id_formulaire = ieconfig_formulaire_insserer();
                // Si ça a marché on transforme les tableaux et on modifie les champs
                if ($id_formulaire > 0){
                        if (is_array($formulaire['saisies'])){
                                $formulaire['saisies'] = serialize($formulaire['saisies']);
                        }
                        if (is_array($formulaire['traitements'])){
                                $formulaire['traitements'] = serialize($formulaire['traitements']);
                        }
                        
                        $erreur = ieconfig_formulaire_modifier($id_formulaire, $formulaire);
                }
        }
	
}


/**
 * Crée un nouveau formulaire et retourne son ID
 *
 * @return int id_formulaire
 */
function ieconfig_formulaire_insserer() {
	$champs = array(
		'statut' => 'prop',
		'date_creation' => date('Y-m-d H:i:s'),
	);
	
	$id_formulaire = sql_insertq("spip_formulaires", $champs);


	return $id_formulaire;
}

function formulaire_supprimer($id_formulaire){
        sql_delete("spip_formulaires", "idformulaire=$id_$id_formulaire");
}


/**
 * Appelle la fonction de modification d'un formulaire
 *
 * @param int $id_formulaire
 * @param array|null $set
 * @return string
 */
function ieconfig_formulaire_modifier($id_formulaire, $set=null) {
	include_spip('inc/modifier');
	include_spip('inc/filtres');
	$err = '';

	$c = collecter_requests(
		// white list
		objet_info('formulaire','champs_editables'),
		// black list
		array('statut'),
		// donnees eventuellement fournies
		$set
	);


	$invalideur = "id='id_formulaire/$id_formulaire'";
	if ($err = objet_modifier_champs('formulaire', $id_formulaire,
		array(
			'nonvide' => array('titre' => _T('info_sans_titre')),
			'invalideur' => $invalideur,
		),
		$c))
		return $err;

	// Modification de statut, changement de rubrique ?
	$c = collecter_requests(array('statut'),array(),$set);
	include_spip("action/editer_objet");
	$err = objet_instituer('formulaire',$id_formulaire, $c);

	return $err;
}


?>
 No newline at end of file
+176 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<?php

if (!defined("_ECRIRE_INC_VERSION")) return;

/**
 * Pipeline ieconfig pour l'import/export des
 * groupes de mots-clefs
 * l'entree de tableau yaml doit être le prefix d'un plugin
 * on nomme donc l'export mots.
 *
 * @see http://contrib.spip.net/Importeur-Exporteur-de-configurations-documentation
 *
 *
 * @param array $flux
 * @param string $action (form_export|form_import)
 * @return array
 */
function ieconfig_mots(&$flux, $action){

	// Formulaire d'export
	if ($action=='form_export') {
		$saisies = array(
			array(
				'saisie' => 'fieldset',
				'options' => array(
					'nom' => 'groupe_mots_export',
					'label' => '<:fragments_core:mots_export_titre:>',
					'icone' => 'mot-16.png'
				),
				'saisies' => array(
					array(
						'saisie' => 'selection_groupes_mots_multiple',
						'options' => array(
							'nom' => 'groupe_mots_a_exporter',
							'label' => '<:fragments_core:mots_choix_export:>',
							'cacher_option_intro' => 'oui'
						)
					)
				)
			)
		);
		$flux['data'] = array_merge($flux['data'],$saisies);
	}

	// Tableau d'export
	if ($action=='export' && is_array(_request('groupe_mots_a_exporter')) && count(_request('groupe_mots_a_exporter'))>0) {
		$flux['data']['mots'] = array();
		include_spip('base/abstract_sql');
		foreach (_request('groupe_mots_a_exporter') as $id_groupe_mots) {
			$groupe = sql_fetsel('*','spip_groupes_mots','id_groupe = '.sql_quote($id_groupe_mots));
			$groupe['mots'] = sql_allfetsel('*','spip_mots', 'id_groupe = '.$id_groupe_mots);
			// On enlève juste les champs qui ne sont pas necessaires à un import
			// Au cas ou des champs extras seraient présents
			//unset($groupe['id_groupe']);

			// La clef doit être un prefix
			$flux['data']['mots'][$id_groupe_mots] = $groupe;
		}
	}

	// Formulaire d'import
	if ($action=='form_import'
		&& isset($flux['args']['config']['mots'])
		&& is_array($flux['args']['config']['mots'])
		&& count($flux['args']['config']['mots'])>0){

		$saisies = array(
			array(
				'saisie' => 'fieldset',
				'options' => array(
					'nom' => 'groupe_mots_import',
					'label' => '<:fragments_core:mots_import_titre:>',
					'icone' => 'mot-16.png'
				),
				'saisies' => array(
					array(
						'saisie' => 'explication',
						'options' => array(
							'nom' => 'groupe_mots_import_explication',
							'texte' => '<:fragments_core:mots_choix_import:>'
						)
					)
				)
			)
		);
		foreach ($flux['args']['config']['mots'] as $id_groupe => $groupe) {
			if (sql_countsel('spip_groupes_mots','id_groupe = '.$id_groupe)>0) {
				$saisies[0]['saisies'][] = array(
					'saisie' => 'selection',
					'options' => array(
						'nom' => 'groupe_importer_'.$id_groupe,
						'label' => $id_groupe.(isset($groupe['titre']) ? ' ('.typo($groupe['titre']).')' : ''),
						'cacher_option_intro' => 'oui',
						'attention' => '<:fragments_core:ieconfig_attention_meme_identifiant:>',
						'datas' => array(
							'non' => '<:fragments_core:ieconfig_ne_pas_importer:>',
							'renommer' => '<:fragments_core:ieconfig_renommer:>',
							'remplacer' => '<:fragments_core:ieconfig_remplacer:>'
						)
					)
				);
			} else {
				$saisies[0]['saisies'][] = array(
					'saisie' => 'selection',
					'options' => array(
						'nom' => 'groupe_importer_'.$id_groupe,
						'label' => $id_groupe.(isset($groupe['titre']) ? ' ('.typo($groupe['titre']).')' : ''),
						'cacher_option_intro' => 'oui',
						'datas' => array(
							'non' => '<:fragments_core:ieconfig_ne_pas_importer:>',
							'importer' => '<:fragments_core:ieconfig_importer:>'
						)
					)
				);
			}
		}
		$flux['data'] = array_merge($flux['data'],$saisies);
	}

	// Import des groupes et mots
	if ($action=='import'
		&& isset($flux['args']['config']['mots'])
		&& is_array($flux['args']['config']['mots'])
		&& count($flux['args']['config']['mots'])>0) {

		foreach ($flux['args']['config']['mots'] as $id_groupe => $groupe_datas) {

			$choix = _request('groupe_importer_'.$id_groupe);
			include_spip('base/abstract_sql');

			// On supprime toutes les entrée groupe et mot
			// on les réinssère ensuite
			if ($choix == 'remplacer') {
				supprimer_groupe_mots($id_groupe);
			}

			if ($choix == 'renommer'){
				$groupe_datas['titre'] = $groupe_datas['titre'].'_'.time();
				unset($groupe_datas['id_groupe']);

			}


			if (in_array($choix, array('importer','remplacer','renommer'))) {
				$groupe_datas['titre'] = isset($groupe_datas['titre']) ? $groupe_datas['titre'] : '';

        // extraire les mots clefs de la description du groupe
				$mots = $groupe_datas['mots'];
				unset($groupe_datas['mots']);
        // inssertion du groupe
				$id_groupe = sql_insertq('spip_groupes_mots', $groupe_datas);
				// insertion des mots
				$groupe_mots = sql_insertq_multi('spip_mots', $mots);
			}
		}
	}

	return($flux);
}


/**
 * supprimer_groupe_mots
 *
 * fonction de suppression d'un groupe de mots'
 *
 * @param $id_groupe
*/
function supprimer_groupe_mots($id_groupe){
		// supprimer les mots
		sql_delete('spip_mots', 'id_groupe ='.$id_groupe);
    sql_delete('spip_groupes_mots', 'id_groupe = '.$id_article);
}


?>
+178 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<?php

if (!defined("_ECRIRE_INC_VERSION")) return;

/**
 * Pipeline ieconfig pour l'import/export de configuration
 * des objets pages uniques
 *
 * @see http://contrib.spip.net/Importeur-Exporteur-de-configurations-documentation
 * @todo gérer lors de l'import si on as des identifiants identiques
 *
 * @param array $flux
 * @param string $action (form_export|form_import)
 * @return array
 */
function ieconfig_pages(&$flux, $action){

	// Formulaire d'export
	if ($action=='form_export') {
		$saisies = array(
			array(
				'saisie' => 'fieldset',
				'options' => array(
					'nom' => 'pages_export',
					'label' => '<:fragments_core:pages_export_titre:>',
					'icone' => 'pages-16.png'
				),
				'saisies' => array(
					array(
						'saisie' => 'selection_pages_multiple',
						'options' => array(
							'nom' => 'pages_a_exporter',
							'label' => '<:fragments_core:pages_choix_export:>',
							'cacher_option_intro' => 'oui'
						)
					)
				)
			)
		);
		$flux['data'] = array_merge($flux['data'],$saisies);
	}

	// Tableau d'export
	if ($action=='export' && is_array(_request('pages_a_exporter')) && count(_request('pages_a_exporter'))>0) {
		// Spécifier que le plugin page est necessité
		//
		$flux['data']['necessite'][] = 'pages';
		$flux['data']['pages'] = array();
		include_spip('base/abstract_sql');
		foreach (_request('pages_a_exporter') as $page) {
			$page_unique = sql_fetsel('*','spip_articles','page = '.sql_quote($page));
			// On enlève juste les champs qui ne sont pas necessaires à un import
			// Au cas ou des champs extras seraient présents
			unset($page_unique['id_article'],
				  $page_unique['date'],$page_unique['maj'],$page_unique['date_redac'],
				  $page_unique['visites'],
				  $page_unique['referers'],
				  $page_unique['popularite']);

			$flux['data']['pages'][$page] = $page_unique;
		}
	}

	// Formulaire d'import
	if ($action=='form_import'
		&& isset($flux['args']['config']['pages'])
		&& is_array($flux['args']['config']['pages'])
		&& count($flux['args']['config']['pages'])>0){
		$saisies = array(
			array(
				'saisie' => 'fieldset',
				'options' => array(
					'nom' => 'pages_import',
					'label' => '<:fragments_core:pages_import_titre:>',
					'icone' => 'pages-16.png'
				),
				'saisies' => array(
					array(
						'saisie' => 'explication',
						'options' => array(
							'nom' => 'pages_import_explication',
							'texte' => '<:fragments_core:pages_choix_import:>'
						)
					)
				)
			)
		);
		foreach ($flux['args']['config']['pages'] as $page => $page_unique) {
			if (sql_countsel('spip_articles','page = '.sql_quote($page))>0) {
				$saisies[0]['saisies'][] = array(
					'saisie' => 'selection',
					'options' => array(
						'nom' => 'page_importer_'.$page,
						'label' => $page.(isset($page_unique['titre']) ? ' ('.typo($page_unique['titre']).')' : ''),
						'cacher_option_intro' => 'oui',
						'attention' => '<:fragments_core:ieconfig_attention_meme_identifiant:>',
						'datas' => array(
							'non' => '<:fragments_core:ieconfig_ne_pas_importer:>',
							'renommer' => '<:fragments_core:ieconfig_renommer:>',
							'remplacer' => '<:fragments_core:ieconfig_remplacer:>'
						)
					)
				);
			} else {
				$saisies[0]['saisies'][] = array(
					'saisie' => 'selection',
					'options' => array(
						'nom' => 'page_importer_'.$page,
						'label' => $page.(isset($page_unique['titre']) ? ' ('.typo($page_unique['titre']).')' : ''),
						'cacher_option_intro' => 'oui',
						'datas' => array(
							'non' => '<:fragments_core:ieconfig_ne_pas_importer:>',
							'importer' => '<:fragments_core:ieconfig_importer:>'
						)
					)
				);
			}
		}
		$flux['data'] = array_merge($flux['data'],$saisies);
	}

	// Import des pages
	if ($action=='import'&& isset($flux['args']['config']['pages'])&& is_array($flux['args']['config']['pages'])&& count($flux['args']['config']['pages'])>0) {
		foreach ($flux['args']['config']['pages'] as $page => $page_datas) {

			$choix = _request('page_importer_'.$page);
			include_spip('base/abstract_sql');

			if ($choix == 'remplacer') {
				$id_page = intval(sql_getfetsel('id_article','spip_articles','page = '.sql_quote($page)));
				supprimer_page($id_page);
			}

			if ($choix == 'renommer')
				$page_datas['titre'] = $page_datas['titre'].'_'.time();

			if (in_array($choix, array('importer','remplacer','renommer'))) {
				$page_datas['titre'] = isset($page_datas['titre']) ? $page_datas['titre'] : '';
				$id_page = sql_insertq('spip_articles',$page_datas);
			}
		}
	}

	return($flux);
}

/**
 * exporter_page()
 *
 * fonction d'export d'une page unique
 *
 *
 * @param $id_article
 *
*/
function exporter_page($id_article){
    include_spip('base/abstract_sql');
	$id_article = intval($id_article);
	if ($id_article > 0){
		// On récupère la page
		$page = sql_fetsel('*','spip_articles','id_article = '.$id_article);
        return $page;
	}
}

/**
 * supprimer_page
 *
 * fonction de suppression d'une page unique
 *
 * @param $id_article
*/
function supprimer_page($id_article){
    sql_delete("spip_articles", "id_article = $id_article");
}


?>
Chargement en cours