source: pmb4.2/trunk/fuentes/pmb/export.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 7.5 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: export.php,v 1.7.4.1 2015-09-10 07:58:28 jpermanne Exp $
6
7// définition du minimum nécéssaire
8$base_path=".";                           
9$base_auth = "ADMINISTRATION_AUTH|CATALOGAGE_AUTH"; 
10$base_title = "";
11$base_noheader=1;
12$base_nosession=1;
13require_once ("$base_path/includes/init.inc.php"); 
14
15switch($quoi) {
16        // Export de procédures
17        case "procs":
18                switch($sub) {
19                        case "caddie" :
20                                header("Content-Type: application/download\n");
21                                header("Content-Disposition: atachement; filename=\"caddie_proc_".$id.".sql\"");
22                               
23                                $req="select type, name, requete, comment, autorisations, parameters from caddie_procs where idproc='$id' ";
24                                $res = pmb_mysql_query($req,$dbh);
25                                if ($p=pmb_mysql_fetch_object($res)) {
26                                        $exp="INSERT INTO caddie_procs set type='".addslashes($p->type)."', name='".addslashes($p->name)."', requete='".addslashes($p->requete)."', comment='".addslashes($p->comment)."', autorisations='1', parameters='".addslashes($p->parameters)."' ";
27                                        //nettoyage de l'entête des paramètres, pour les anciennes procédures
28                                        if($charset=='utf-8'){
29                                                $exp = str_replace('<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>', '<?xml version=\"1.0\" encoding=\"utf-8\"?>', $exp) ;
30                                        }elseif($charset=='iso-8859-1'){
31                                                $exp = str_replace('<?xml version=\"1.0\" encoding=\"utf-8\"?>', '<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>', $exp) ;
32                                        }
33                                        //tag pour l'encodage du contenu
34                                        $exp .= "\n#charset=".$charset;
35                                        echo $exp ;
36                                        }                       
37                                break;
38                        case "empr_caddie" :
39                                header("Content-Type: application/download\n");
40                                header("Content-Disposition: atachement; filename=\"empr_caddie_proc_".$id.".sql\"");
41                               
42                                $req="select type, name, requete, comment, autorisations, parameters from empr_caddie_procs where idproc='$id' ";
43                                $res = pmb_mysql_query($req,$dbh);
44                                if ($p=pmb_mysql_fetch_object($res)) {
45                                        $exp="INSERT INTO empr_caddie_procs set type='".addslashes($p->type)."', name='".addslashes($p->name)."', requete='".addslashes($p->requete)."', comment='".addslashes($p->comment)."', autorisations='1', parameters='".addslashes($p->parameters)."' ";
46                                        //nettoyage de l'entête des paramètres, pour les anciennes procédures
47                                        if($charset=='utf-8'){
48                                                $exp = str_replace('<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>', '<?xml version=\"1.0\" encoding=\"utf-8\"?>', $exp) ;
49                                        }elseif($charset=='iso-8859-1'){
50                                                $exp = str_replace('<?xml version=\"1.0\" encoding=\"utf-8\"?>', '<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>', $exp) ;
51                                        }
52                                        //tag pour l'encodage du contenu
53                                        $exp .= "\n#charset=".$charset;
54                                        echo $exp ;
55                                        }                       
56                                break;
57                        case "actionsperso" :
58                                header("Content-Type: application/download\n");
59                                header("Content-Disposition: atachement; filename=\"admin_proc_".$id.".sql\"");
60                               
61                                $req="select name, requete, comment, autorisations, parameters from procs where idproc='$id' ";
62                                $res = pmb_mysql_query($req,$dbh);
63                                if ($p=pmb_mysql_fetch_object($res)) {
64                                        $exp="INSERT INTO procs set name='".addslashes($p->name)."', requete='".addslashes($p->requete)."', comment='".addslashes($p->comment)."', autorisations='1', parameters='".addslashes($p->parameters)."' ";
65                                        //nettoyage de l'entête des paramètres, pour les anciennes procédures
66                                        if($charset=='utf-8'){
67                                                $exp = str_replace('<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>', '<?xml version=\"1.0\" encoding=\"utf-8\"?>', $exp) ;
68                                        }elseif($charset=='iso-8859-1'){
69                                                $exp = str_replace('<?xml version=\"1.0\" encoding=\"utf-8\"?>', '<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>', $exp) ;
70                                        }
71                                        //tag pour l'encodage du contenu
72                                        $exp .= "\n#charset=".$charset;
73                                        echo $exp ;
74                                        }                       
75                                break;
76                               
77                        }                       
78                break;
79        case "stat" :
80                header("Content-Type: application/download\n");
81                header("Content-Disposition: atachement; filename=\"admin_stat_".$id_req.".sql\"");
82               
83                $req="SELECT * from statopac_request WHERE idproc='$id_req' ";
84                $res = pmb_mysql_query($req,$dbh);
85                if ($p=pmb_mysql_fetch_object($res)) {
86                        $requete=$p->requete;
87                        $exp="INSERT INTO statopac_request set name='".addslashes($p->name)."', requete='".addslashes($requete)."', comment='".addslashes($p->comment)."', parameters='".addslashes($p->parameters)."' ";
88                        //nettoyage de l'entête des paramètres, pour les anciennes procédures
89                        if($charset=='utf-8'){
90                                $exp = str_replace('<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>', '<?xml version=\"1.0\" encoding=\"utf-8\"?>', $exp) ;
91                        }elseif($charset=='iso-8859-1'){
92                                $exp = str_replace('<?xml version=\"1.0\" encoding=\"utf-8\"?>', '<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>', $exp) ;
93                        }
94                        //Colonnes vue
95                        $req2="SELECT nom_col, expression, filtre, datatype FROM statopac_vues_col WHERE num_vue=".$p->num_vue." ORDER BY LENGTH(nom_col) DESC";
96                        $res2 = pmb_mysql_query($req2,$dbh);
97                        while ($p2=pmb_mysql_fetch_object($res2)) {
98                                if(preg_match('`[^a-zA-Z0-9\_]'.$p2->nom_col.'[^a-zA-Z0-9\_]`',$requete)){
99                                        $arrayTmp=array();
100                                        $arrayTmp[]=$p2->nom_col;
101                                        $arrayTmp[]=$p2->expression;
102                                        $arrayTmp[]=$p2->filtre;
103                                        $arrayTmp[]=$p2->datatype;
104                                        $exp .= "\n#col=".serialize($arrayTmp);
105                                }                               
106                        }
107                        //tag pour l'encodage du contenu
108                        $exp .= "\n#charset=".$charset;
109                        echo $exp ;
110                }
111                break;
112        case "notice_tpl" :
113                header("Content-Type: application/download\n");
114                header("Content-Disposition: atachement; filename=\"notice_tpl_".$id.".tpl\"");
115               
116                $exp = '';
117                $array_loc=array();
118                $req="SELECT * from notice_tpl WHERE notpl_id='$id' ";
119                $res = pmb_mysql_query($req,$dbh);
120                if ($p=pmb_mysql_fetch_object($res)) {
121                        $requete=$p->requete;
122                        $array_tmp=array();
123                        $array_tmp[]=array("field"=>'notpl_name',"value"=>$p->notpl_name);
124                        $array_tmp[]=array("field"=>'notpl_code',"value"=>$p->notpl_code);
125                        $array_tmp[]=array("field"=>'notpl_comment',"value"=>$p->notpl_comment);
126                        if (trim($exp)) {
127                                $exp .= "\n";
128                        }
129                        $exp .= "#main#=".serialize($array_tmp);
130                        $req2="SELECT * from notice_tplcode WHERE num_notpl='$id' ";
131                        $res2 = pmb_mysql_query($req2,$dbh);
132                        $array_sub=array();
133                        while ($p2=pmb_mysql_fetch_object($res2)) {
134                                $array_tmp=array();
135                                $array_tmp[]=array("field"=>'notplcode_localisation',"value"=>$p2->notplcode_localisation);
136                                $array_tmp[]=array("field"=>'notplcode_typdoc',"value"=>$p2->notplcode_typdoc);
137                                $array_tmp[]=array("field"=>'notplcode_niveau_biblio',"value"=>$p2->notplcode_niveau_biblio);
138                                $array_tmp[]=array("field"=>'notplcode_niveau_hierar',"value"=>$p2->notplcode_niveau_hierar);
139                                $array_tmp[]=array("field"=>'nottplcode_code',"value"=>$p2->nottplcode_code);
140                                $array_sub[]=$array_tmp;
141                                if($p2->notplcode_localisation){
142                                        if(!count($array_loc)||!in_array($p2->notplcode_localisation,$array_loc)){
143                                                $array_loc[]=$p2->notplcode_localisation;
144                                        }
145                                }
146                        }
147                        $exp .= "\n#sub#=".serialize($array_sub);
148                        //localisations
149                        if(count($array_loc)){
150                                $array_tmp=array();
151                                foreach($array_loc as $id_loc){
152                                        $res=pmb_mysql_query("SELECT location_libelle FROM docs_location WHERE idlocation=".$id_loc);
153                                        $row=pmb_mysql_fetch_object($res);
154                                        $array_tmp[]=array("id_location"=>$id_loc,"lib_location"=>$row->location_libelle);
155                                       
156                                }
157                                $exp .= "\n#locations#=".serialize($array_tmp);
158                        }
159                        //tag pour l'encodage du contenu
160                        $exp .= "\n#charset#=".$charset;
161                        echo $exp ;
162                }
163                break;
164        }
165       
166pmb_mysql_close($dbh);
Note: See TracBrowser for help on using the repository browser.