source: pmb4.2/trunk/fuentes/pmb/classes/docs_location.class.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: 12.4 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: docs_location.class.php,v 1.15.4.1 2015-11-12 10:06:16 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9// définition de la classe de gestion des 'docs_location'
10
11if ( ! defined( 'DOCSLOCATION_CLASS' ) ) {
12  define( 'DOCSLOCATION_CLASS', 1 );
13       
14        class docs_location {
15       
16        /* ---------------------------------------------------------------
17                        propriétés de la classe
18           --------------------------------------------------------------- */
19               
20                var $id=0;
21                var $libelle='';
22                var $pret_flag='';
23                var $locdoc_codage_import="";
24                var $locdoc_owner=0;
25                var $num_infopage=0;
26       
27        /* ---------------------------------------------------------------
28                        docs_location($id) : constructeur
29           --------------------------------------------------------------- */
30               
31                function docs_location($id=0) {
32                        if($id) {
33                                /* on cherche à atteindre un lieu existant */
34                                $this->id = $id;
35                                $this->getData();
36                        } else {
37                                $this->id = 0;
38                                $this->getData();
39                        }
40                }
41       
42        /* ---------------------------------------------------------------
43                        getData() : récupération des propriétés
44           --------------------------------------------------------------- */
45                function getData() {
46                        global $dbh;
47       
48                        if(!$this->id) return;
49                       
50                        /* récupération des informations du statut */
51               
52                        $requete = 'SELECT * FROM docs_location WHERE idlocation='.$this->id.' LIMIT 1;';
53                        $result = @pmb_mysql_query($requete, $dbh);
54                        if(!pmb_mysql_num_rows($result)) return;
55                               
56                        $data = pmb_mysql_fetch_object($result);
57                        $this->id = $data->idlocation;         
58                        $this->libelle = $data->location_libelle;               
59                        $this->locdoc_codage_import = $data->locdoc_codage_import;
60                        $this->locdoc_owner = $data->locdoc_owner;
61                        $this->num_infopage = $data->num_infopage;
62                }
63               
64                // ---------------------------------------------------------------
65                //              import() : import d'un lieu de document
66                // ---------------------------------------------------------------
67                function import($data) {
68       
69                        // cette méthode prend en entrée un tableau constitué des informations suivantes :
70                        //      $data['location_libelle']       
71                        //      $data['locdoc_codage_import']
72                        //      $data['locdoc_owner']
73       
74                        global $dbh;
75       
76                        // check sur le type de  la variable passée en paramètre
77                        if(!sizeof($data) || !is_array($data)) {
78                                // si ce n'est pas un tableau ou un tableau vide, on retourne 0
79                                return 0;
80                        }
81                        // check sur les éléments du tableau
82               
83                        $long_maxi = pmb_mysql_field_len(pmb_mysql_query("SELECT location_libelle FROM docs_location limit 1"),0);
84                        $data['location_libelle'] = rtrim(substr(preg_replace('/\[|\]/', '', rtrim(ltrim($data['location_libelle']))),0,$long_maxi));
85                        $long_maxi = pmb_mysql_field_len(pmb_mysql_query("SELECT locdoc_codage_import FROM docs_location limit 1"),0);
86                        $data['locdoc_codage_import'] = rtrim(substr(preg_replace('/\[|\]/', '', rtrim(ltrim($data['locdoc_codage_import']))),0,$long_maxi));
87               
88                        if($data['locdoc_owner']=="") $data['locdoc_owner'] = 0;
89                        if($data['location_libelle']=="") return 0;
90                        /* locdoc_codage_import est obligatoire si locdoc_owner != 0 */
91                        //if(($data['locdoc_owner']!=0) && ($data['locdoc_codage_import']=="")) return 0;
92                       
93                        // préparation de la requête
94                        $key0 = addslashes($data['location_libelle']);
95                        $key1 = addslashes($data['locdoc_codage_import']);
96                        $key2 = $data['locdoc_owner'];
97                       
98                        /* vérification que le lieu existe */
99                        $query = "SELECT idlocation FROM docs_location WHERE locdoc_codage_import='${key1}' and locdoc_owner = '${key2}' LIMIT 1 ";
100                        $result = @pmb_mysql_query($query, $dbh);
101                        if(!$result) die("can't SELECT docs_location ".$query);
102                        $docs_location  = pmb_mysql_fetch_object($result);
103               
104                        /* le lieu de doc existe, on retourne l'ID */
105                        if($docs_location->idlocation) return $docs_location->idlocation;
106               
107                        // id non-récupérée, il faut créer la forme.
108                       
109                        $query  = "INSERT INTO docs_location SET ";
110                        $query .= "location_libelle='".$key0."', ";
111                        $query .= "locdoc_codage_import='".$key1."', ";
112                        $query .= "locdoc_owner='".$key2."' ";
113                        $result = @pmb_mysql_query($query, $dbh);
114                        if(!$result) die("can't INSERT into docs_location ".$query);
115               
116                        return pmb_mysql_insert_id($dbh);
117                } /* fin méthode import */
118       
119                       
120                /* une fonction pour générer des combo Box
121                   paramêtres :
122                        $selected : l'élément sélectioné le cas échéant
123                   retourne une chaine de caractères contenant l'objet complet */
124                static function gen_combo_box ( $selected ) {
125                        global $msg;
126                        $requete="select idlocation, location_libelle from docs_location order by location_libelle ";
127                        $champ_code="idlocation";
128                        $champ_info="location_libelle";
129                        $nom="book_location_id";
130                        $on_change="";
131                        $liste_vide_code="0";
132                        $liste_vide_info=$msg['class_location'];
133                        $option_premier_code="";
134                        $option_premier_info="";
135                        $gen_liste_str="";
136                        $resultat_liste=pmb_mysql_query($requete);
137                        $gen_liste_str = "<select name=\"$nom\" onChange=\"$on_change\">\n" ;
138                        $nb_liste=pmb_mysql_num_rows($resultat_liste);
139                        if ($nb_liste==0) {
140                                $gen_liste_str.="<option value=\"$liste_vide_code\">$liste_vide_info</option>\n" ;
141                        } else {
142                                if ($option_premier_info!="") {
143                                        $gen_liste_str.="<option value=\"".$option_premier_code."\" ";
144                                        if ($selected==$option_premier_code) $gen_liste_str.="selected" ;
145                                        $gen_liste_str.=">".$option_premier_info."\n";
146                                }
147                                $i=0;
148                                while ($i<$nb_liste) {
149                                        $gen_liste_str.="<option value=\"".pmb_mysql_result($resultat_liste,$i,$champ_code)."\" " ;
150                                        if ($selected==pmb_mysql_result($resultat_liste,$i,$champ_code)) {
151                                                $gen_liste_str.="selected" ;
152                                        }
153                                        $gen_liste_str.=">".pmb_mysql_result($resultat_liste,$i,$champ_info)."</option>\n" ;
154                                        $i++;
155                                }
156                        }
157                        $gen_liste_str.="</select>\n" ;
158                        return $gen_liste_str ;
159                } /* fin gen_combo_box */
160       
161                static function gen_combo_box_empr ( $selected, $afficher_premier=1, $on_change="" ) {
162                        global $msg;
163                        $requete="select idlocation, location_libelle from docs_location order by location_libelle ";
164                        $champ_code="idlocation";
165                        $champ_info="location_libelle";
166                        $nom="empr_location_id";
167                        $liste_vide_code="0";
168                        $liste_vide_info=$msg['class_location'];
169                        $option_premier_code="0";
170                        if ($afficher_premier) $option_premier_info=$msg['all_location'];
171                        $gen_liste_str="";
172                        $resultat_liste=pmb_mysql_query($requete);
173                        $gen_liste_str = "<select name=\"$nom\" onChange=\"$on_change\" >\n";
174                        $nb_liste=pmb_mysql_num_rows($resultat_liste);
175                        if ($nb_liste==0) {
176                                $gen_liste_str.="<option value=\"$liste_vide_code\">$liste_vide_info</option>\n" ;
177                        } else {
178                                if ($option_premier_info!="") {
179                                        $gen_liste_str.="<option value=\"".$option_premier_code."\" ";
180                                        if ($selected==$option_premier_code) $gen_liste_str.="selected" ;
181                                        $gen_liste_str.=">".$option_premier_info."</option>\n";
182                                }
183                                $i=0;
184                                while ($i<$nb_liste) {
185                                        $gen_liste_str.="<option value=\"".pmb_mysql_result($resultat_liste,$i,$champ_code)."\" " ;
186                                        if ($selected==pmb_mysql_result($resultat_liste,$i,$champ_code)) {
187                                                $gen_liste_str.="selected" ;
188                                        }
189                                        $gen_liste_str.=">".pmb_mysql_result($resultat_liste,$i,$champ_info)."</option>\n" ;
190                                        $i++;
191                                }
192                        }
193                        $gen_liste_str.="</select>\n" ;
194                        return $gen_liste_str ;
195                } /* fin gen_combo_box_empr */
196               
197                static function gen_combo_box_docs ( $selected, $afficher_premier=1, $on_change="" ) {
198                        global $msg;
199                        $requete="select idlocation, location_libelle from docs_location order by location_libelle ";
200                        $champ_code="idlocation";
201                        $champ_info="location_libelle";
202                        $nom="docs_location_id";
203                        $liste_vide_code="0";
204                        $liste_vide_info=$msg['class_location'];
205                        $option_premier_code="0";
206                        if ($afficher_premier) $option_premier_info=$msg['all_location'];
207                        $gen_liste_str="";
208                        $resultat_liste=pmb_mysql_query($requete);
209                        $gen_liste_str = "<select name=\"$nom\" onChange=\"$on_change\" >\n";
210                        $nb_liste=pmb_mysql_num_rows($resultat_liste);
211                        if ($nb_liste==0) {
212                                $gen_liste_str.="<option value=\"$liste_vide_code\">$liste_vide_info</option>\n" ;
213                        } else {
214                                if ($option_premier_info!="") {
215                                        $gen_liste_str.="<option value=\"".$option_premier_code."\" ";
216                                        if ($selected==$option_premier_code) $gen_liste_str.="selected" ;
217                                        $gen_liste_str.=">".$option_premier_info."</option>\n";
218                                }
219                                $i=0;
220                                while ($i<$nb_liste) {
221                                        $gen_liste_str.="<option value=\"".pmb_mysql_result($resultat_liste,$i,$champ_code)."\" " ;
222                                        if ($selected==pmb_mysql_result($resultat_liste,$i,$champ_code)) {
223                                                $gen_liste_str.="selected" ;
224                                        }
225                                        $gen_liste_str.=">".pmb_mysql_result($resultat_liste,$i,$champ_info)."</option>\n" ;
226                                        $i++;
227                                }
228                        }
229                        $gen_liste_str.="</select>\n" ;
230                        return $gen_liste_str ;
231                } /* fin gen_combo_box_docs */
232               
233               
234                function gen_combo_box_sugg ( $selected, $afficher_premier=1, $on_change="" ) {
235                        global $msg;
236                        $requete="select idlocation, location_libelle from docs_location order by location_libelle ";
237                        $champ_code="idlocation";
238                        $champ_info="location_libelle";
239                        $nom="sugg_location_id";
240                        $liste_vide_code="0";
241                        $liste_vide_info=$msg['class_location'];
242                        $option_premier_code="0";
243                        if ($afficher_premier) $option_premier_info=$msg['all_location'];
244                        $gen_liste_str="";
245                        $resultat_liste=pmb_mysql_query($requete);
246                        $gen_liste_str = "<select name=\"$nom\" onChange=\"$on_change\" >\n";
247                        $nb_liste=pmb_mysql_num_rows($resultat_liste);
248                        if ($nb_liste==0) {
249                                $gen_liste_str.="<option value=\"$liste_vide_code\">$liste_vide_info</option>\n" ;
250                        } else {
251                                if ($option_premier_info!="") {
252                                        $gen_liste_str.="<option value=\"".$option_premier_code."\" ";
253                                        if ($selected==$option_premier_code) $gen_liste_str.="selected" ;
254                                        $gen_liste_str.=">".$option_premier_info."</option>\n";
255                                }
256                                $i=0;
257                                while ($i<$nb_liste) {
258                                        $gen_liste_str.="<option value=\"".pmb_mysql_result($resultat_liste,$i,$champ_code)."\" " ;
259                                        if ($selected==pmb_mysql_result($resultat_liste,$i,$champ_code)) {
260                                                $gen_liste_str.="selected" ;
261                                        }
262                                        $gen_liste_str.=">".pmb_mysql_result($resultat_liste,$i,$champ_info)."</option>\n" ;
263                                        $i++;
264                                }
265                        }
266                        $gen_liste_str.="</select>\n" ;
267                        return $gen_liste_str ;
268                } /* fin gen_combo_box_sugg */
269               
270               
271                function gen_multiple_combo($liste_id=array()){
272                        global $dbh, $msg,$charset;
273                       
274                        if(!$liste_id) return;
275                       
276                        $req = "select count(1) from docs_location";
277                        $res = pmb_mysql_query($req,$dbh);
278                        $nb_loc = pmb_mysql_result($res,0,0);
279                        $req= "select idlocation, location_libelle from docs_location";
280                        $res = pmb_mysql_query($req,$dbh);
281                        $selector_location="";
282                        if(pmb_mysql_num_rows($res)){                           
283                                $selector_location = "<select id='loc_selector' name='loc_selector[]' multiple>";
284                                $selector_location .= "<option value='-1' ".((count($liste_id) == $nb_loc) ? 'selected' : '').">".htmlentities($msg['all_location'],ENT_QUOTES,$charset)."</option>";
285                                while($loc = pmb_mysql_fetch_object($res)){
286                                        if((array_search($loc->idlocation,$liste_id) !== false) && (count($liste_id) != $nb_loc))
287                                                $selected = 'selected';
288                                        else $selected = '';
289                                        $selector_location .= "<option value='".$loc->idlocation."' $selected>".htmlentities($loc->location_libelle,ENT_QUOTES,$charset)."</option>";
290                                }
291                                $selector_location .= "</select>";
292                        }       
293                        return $selector_location;     
294                }
295               
296
297                static function get_html_select($selected=array(),$sel_all=array('id'=>0,'msg'=>''),$sel_attr=array()) {
298                        global $dbh,$charset;
299       
300                        $sel='';
301                        $q = "select idlocation, location_libelle from docs_location order by location_libelle";
302                        $r = pmb_mysql_query($q, $dbh);
303                        $res = array();
304                        if (count($sel_all)) {
305                                $res[$sel_all['id']]=htmlentities($sel_all['msg'],ENT_QUOTES,$charset);
306                        }
307                        if (pmb_mysql_num_rows($r)) {
308                                while ($row = pmb_mysql_fetch_object($r)){
309                                        $res[$row->idlocation] = $row->location_libelle;
310                                }
311                        }
312                        $size=count($res);
313                        if ($sel_attr['size']>$size) $sel_attr['size']=$size;
314                        if ($size) {
315                                $sel="<select ";
316                                if (count($sel_attr)) {
317                                        foreach($sel_attr as $attr=>$val) {
318                                                $sel.="$attr='".$val."' ";
319                                        }
320                                }
321                                $sel.=">";
322                                foreach($res as $id=>$val){
323                                        $sel.="<option value='".$id."'";
324                                        if(in_array($id,$selected)) $sel.=" selected='selected'";
325                                        $sel.=" >";
326                                        $sel.=htmlentities($val,ENT_QUOTES,$charset);
327                                        $sel.="</option>";
328                                }
329                                $sel.='</select>';
330                        }
331                        return $sel;
332                }
333               
334               
335        } /* fin de définition de la classe */
336
337} /* fin de délaration */
338
339
Note: See TracBrowser for help on using the repository browser.