Exemple #1
0
function action_editer_rubrique_dist($arg=null) {

	if (is_null($arg)){
		$securiser_action = charger_fonction('securiser_action', 'inc');
		$arg = $securiser_action();
	}

	if (!$id_rubrique = intval($arg)) {
		if ($arg != 'oui') {
			include_spip('inc/headers');
			redirige_url_ecrire();
		}
		$id_rubrique = insert_rubrique(_request('id_parent'));
	}

	revisions_rubriques($id_rubrique);

	if (_request('redirect')) {
		$redirect = parametre_url(
			urldecode(_request('redirect')),
			'id_rubrique', $id_rubrique, '&');
	
		include_spip('inc/headers');
		redirige_par_entete($redirect);
	}
	else 
		return array($id_rubrique,'');
}
Exemple #2
0
function snippets_rubriques_importer($id_target,$arbre,$contexte){
	include_spip('base/serial');
	include_spip('base/abstract_sql');
	include_spip('inc/snippets');
	include_spip('snippets/articles/importer');
	
	$table_prefix = $GLOBALS['table_prefix'] ;

	$champs_non_importables = array('id_article',"id_rubrique","id_secteur","maj","export","visites","referers","popularite","id_trad","idx","id_version","url_propre");
	$champs_non_ajoutables = array('titre',"statut",'date','date_redac','lang');
	$champs_jointures = array('auteur','mot');
	$champs_defaut_values = array('statut'=>'prop');
	$table = 'spip_rubriques';
	$primary = 'id_rubrique';
	$fields = $GLOBALS['tables_principales']['spip_rubriques']['field'];
	$tag_objets="rubriques";
	$tag_objet="rubrique";
	$translations = array();
	
	if ($arbre && isset($arbre[$tag_objets]))
		foreach($arbre[$tag_objets] as $objets){
			foreach($objets[$tag_objet] as $objet){
				include_spip('action/editer_rubrique');
				// si c'est une creation, creer le formulaire avec les infos d'entete
				if (!($id_objet=intval($id_target))){
					if (preg_match(",id_rubrique=([0-9]*),i",$contexte,$regs))
						$id_rubrique=intval($regs[1]);
					$id_objet = insert_rubrique($id_rubrique);
					$creation = true;
				}
				// sinon on ajoute chaque champ, sauf le titre
				$row = spip_fetch_array(spip_query("SELECT * FROM $table WHERE $primary="._q($id_objet)));
				foreach (array_keys($row) as $key)
					if ( 	!in_array($key,$champs_non_importables) 
						AND !in_array($key,$champs_jointures) 
						AND ($creation OR !in_array($key,$champs_non_ajoutables) OR !$row[$key])
						AND isset($objet[$key])){
						$v=trim(spip_xml_aplatit($objet[$key]));
						$row[$key] = $creation?$v:($row[$key].$v);
					}
								
				revisions_rubriques($id_objet , $row);
				//$translations[] = array($table,$objet[$primary],$id_objet);
				// gerer l'import de liens eventuels
				
				if ( $objet['liste_articles']){
					snippets_articles_importer("",$objet['liste_articles'][0],"id_rubrique=$id_objet") ;              							
				}
				
				
				if ($objet['liste_rubriques']){
				snippets_rubriques_importer("",$objet['liste_rubriques'][0],"id_rubrique=$id_objet");
				}
				
        		
        		
        		
			}
		}
	return "";
}