source: spip-zone/_plugins_/snippets/snippets/rubriques/importer.php @ 53451

Last change on this file since 53451 was 53451, checked in by yffic@…, 10 years ago

if (!defined("_ECRIRE_INC_VERSION")) return; sur tout fichier PHP pour sécurité future principalement

File size: 2.5 KB
Line 
1<?php
2/*
3 * snippets
4 * Gestion d'import/export XML de contenu
5 *
6 * Auteurs :
7 * Cedric Morin
8 * © 2006 - Distribue sous licence GNU/GPL
9 *
10 */
11if (!defined("_ECRIRE_INC_VERSION")) return;
12
13
14function snippets_rubriques_importer($id_target,$arbre,$contexte){
15        include_spip('base/serial');
16        include_spip('base/abstract_sql');
17        include_spip('inc/snippets');
18        include_spip('snippets/articles/importer');
19       
20        $table_prefix = $GLOBALS['table_prefix'] ;
21
22        $champs_non_importables = array('id_article',"id_rubrique","id_secteur","maj","export","visites","referers","popularite","id_trad","idx","id_version","url_propre");
23        $champs_non_ajoutables = array('titre',"statut",'date','date_redac','lang');
24        $champs_jointures = array('auteur','mot');
25        $champs_defaut_values = array('statut'=>'prop');
26        $table = 'spip_rubriques';
27        $primary = 'id_rubrique';
28        $fields = $GLOBALS['tables_principales']['spip_rubriques']['field'];
29        $tag_objets="rubriques";
30        $tag_objet="rubrique";
31        $translations = array();
32       
33        if ($arbre && isset($arbre[$tag_objets]))
34                foreach($arbre[$tag_objets] as $objets){
35                        foreach($objets[$tag_objet] as $objet){
36                                include_spip('action/editer_rubrique');
37                                // si c'est une creation, creer le formulaire avec les infos d'entete
38                                if (!($id_objet=intval($id_target))){
39                                        if (preg_match(",id_rubrique=([0-9]*),i",$contexte,$regs))
40                                                $id_rubrique=intval($regs[1]);
41                                        $id_objet = insert_rubrique($id_rubrique);
42                                        $creation = true;
43                                }
44                                // sinon on ajoute chaque champ, sauf le titre
45                                $row = spip_fetch_array(spip_query("SELECT * FROM $table WHERE $primary="._q($id_objet)));
46                                foreach (array_keys($row) as $key)
47                                        if (    !in_array($key,$champs_non_importables) 
48                                                AND !in_array($key,$champs_jointures) 
49                                                AND ($creation OR !in_array($key,$champs_non_ajoutables) OR !$row[$key])
50                                                AND isset($objet[$key])){
51                                                $v=trim(spip_xml_aplatit($objet[$key]));
52                                                $row[$key] = $creation?$v:($row[$key].$v);
53                                        }
54                                                               
55                                revisions_rubriques($id_objet , $row);
56                                //$translations[] = array($table,$objet[$primary],$id_objet);
57                                // gerer l'import de liens eventuels
58                               
59                                if ( $objet['liste_articles']){
60                                        snippets_articles_importer("",$objet['liste_articles'][0],"id_rubrique=$id_objet") ;                                                                   
61                                }
62                               
63                               
64                                if ($objet['liste_rubriques']){
65                                snippets_rubriques_importer("",$objet['liste_rubriques'][0],"id_rubrique=$id_objet");
66                                }
67                               
68                       
69                       
70                       
71                        }
72                }
73        return "";
74}
75
76
77
78?>
Note: See TracBrowser for help on using the repository browser.