source: pmb4.1/trunk/fuentes/pmb/classes/docs_type.class.php @ 478

Last change on this file since 478 was 478, checked in by mabarracus, 4 years ago

copy trusty code 4.1

  • Property svn:executable set to *
File size: 5.6 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_type.class.php,v 1.7 2013-04-11 08:08:11 mbertin Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9// définition de la classe de gestion des 'docs_type'
10
11if ( ! defined( 'DOCSTYPE_CLASS' ) ) {
12  define( 'DOCSTYPE_CLASS', 1 );
13
14class docs_type {
15/* ---------------------------------------------------------------
16                propriétés de la classe
17   -------------------------------------------------------------- */
18var $id=0;
19var $libelle='';
20var $duree_pret=0;
21var $tdoc_codage_import="";
22var $tdoc_owner=0;
23
24/* ---------------------------------------------------------------
25                docs_type($id) : constructeur
26   --------------------------------------------------------------- */
27function docs_type($id=0) {
28        if($id) {
29                /* on cherche à atteindre un  typdoc existant */
30                $this->id = $id;
31        $this->getData();
32        } else {
33                $this->id = 0;
34                $this->getData();
35        }
36}
37
38/* ---------------------------------------------------------------
39                getData() : récupération des propriétés
40   --------------------------------------------------------------- */
41function getData() {
42        global $dbh;
43
44        if(!$this->id) return;
45
46        /* récupération des informations de la catégorie */
47        $requete = 'SELECT * FROM docs_type WHERE idtyp_doc='.$this->id.' LIMIT 1;';
48        $result = mysql_query($requete, $dbh) or die (mysql_error()." ".$requete);
49        if(!mysql_num_rows($result)) return;
50               
51        $data = mysql_fetch_object($result);
52        $this->id = $data->idtyp_doc;           
53        $this->libelle = $data->tdoc_libelle;
54        $this->duree_pret = $data->duree_pret;
55        $this->tdoc_codage_import = $data->tdoc_codage_import;
56        $this->tdoc_owner = $data->tdoc_owner;
57
58}
59
60// ---------------------------------------------------------------
61//              import() : import d'un type de document
62// ---------------------------------------------------------------
63function import($data) {
64        // cette méthode prend en entrée un tableau constitué des informations suivantes :
65        //      $data['tdoc_libelle']   
66        //      $data['duree_pret']
67        //      $data['tdoc_codage_import']
68        //      $data['tdoc_owner']
69
70        global $dbh;
71
72        // check sur le type de  la variable passée en paramètre
73        if(!sizeof($data) || !is_array($data)) {
74                // si ce n'est pas un tableau ou un tableau vide, on retourne 0
75                return 0;
76                }
77        // check sur les éléments du tableau
78        $long_maxi = mysql_field_len(mysql_query("SELECT tdoc_libelle FROM docs_type limit 1"),0);
79        $data['tdoc_libelle'] = rtrim(substr(preg_replace('/\[|\]/', '', rtrim(ltrim($data['tdoc_libelle']))),0,$long_maxi));
80        $long_maxi = mysql_field_len(mysql_query("SELECT tdoc_codage_import FROM docs_type limit 1"),0);
81        $data['tdoc_codage_import'] = rtrim(substr(preg_replace('/\[|\]/', '', rtrim(ltrim($data['tdoc_codage_import']))),0,$long_maxi));
82
83        if($data['tdoc_owner']=="") $data['tdoc_owner'] = 0;
84        if($data['tdoc_libelle']=="") return 0;
85        /* tdoc_codage_import est obligatoire si tdoc_owner != 0 */
86        //if(($data['tdoc_owner']!=0) && ($data['tdoc_codage_import']=="")) return 0;
87       
88        // préparation de la requête
89        $key0 = addslashes($data['tdoc_libelle']);
90        $key1 = addslashes($data['tdoc_codage_import']);
91        $key2 = $data['tdoc_owner'];
92       
93        /* vérification que le type doc existe */
94        $query = "SELECT idtyp_doc FROM docs_type WHERE tdoc_codage_import='${key1}' and tdoc_owner = '${key2}' LIMIT 1 ";
95        $result = @mysql_query($query, $dbh);
96        if(!$result) die("can't SELECT docs_type ".$query);
97        $docs_type  = mysql_fetch_object($result);
98
99        /* le type de doc existe, on retourne l'ID */
100        if($docs_type->idtyp_doc) return $docs_type->idtyp_doc;
101
102        // id non-récupérée, il faut créer la forme.
103        /* une petite valeur par défaut */
104        if ($data['duree_pret']=="") $data['duree_pret']=0;
105       
106        $query  = "INSERT INTO docs_type SET ";
107        $query .= "tdoc_libelle='".$key0."', ";
108        $query .= "duree_pret='".$data['duree_pret']."', ";
109        $query .= "tdoc_codage_import='".$key1."', ";
110        $query .= "tdoc_owner='".$key2."' ";
111        $result = @mysql_query($query, $dbh);
112        if(!$result) die("can't INSERT into docs_type ".$query);
113
114        return mysql_insert_id($dbh);
115
116        } /* fin méthode import */
117
118/* une fonction pour générer des combo Box
119   paramêtres :
120        $selected : l'élément sélectioné le cas échéant
121   retourne une chaine de caractères contenant l'objet complet */
122static function gen_combo_box ( $selected ) {
123        global $msg;
124        $requete="select idtyp_doc, tdoc_libelle from docs_type order by tdoc_libelle ";
125        $champ_code="idtyp_doc";
126        $champ_info="tdoc_libelle";
127        $nom="book_doctype_id";
128        $on_change="";
129        $liste_vide_code="0";
130        $liste_vide_info=$msg['class_typdoc'];
131        $option_premier_code="";
132        $option_premier_info="";
133        $gen_liste_str="";
134        $resultat_liste=mysql_query($requete) or die (mysql_error()." ".$requete);
135        $gen_liste_str = "<select name=\"$nom\" onChange=\"$on_change\">\n" ;
136        $nb_liste=mysql_numrows($resultat_liste);
137        if ($nb_liste==0) {
138                $gen_liste_str.="<option value=\"$liste_vide_code\">$liste_vide_info</option>\n" ;
139        } else {
140                if ($option_premier_info!="") {
141                        $gen_liste_str.="<option value=\"".$option_premier_code."\" ";
142                        if ($selected==$option_premier_code) $gen_liste_str.="selected" ;
143                        $gen_liste_str.=">".$option_premier_info."\n";
144                }
145                $i=0;
146                while ($i<$nb_liste) {
147                        $gen_liste_str.="<option value=\"".mysql_result($resultat_liste,$i,$champ_code)."\" " ;
148                        if ($selected==mysql_result($resultat_liste,$i,$champ_code)) {
149                                $gen_liste_str.="selected" ;
150                                }
151                        $gen_liste_str.=">".mysql_result($resultat_liste,$i,$champ_info)."</option>\n" ;
152                        $i++;
153                }
154        }
155        $gen_liste_str.="</select>\n" ;
156        return $gen_liste_str ;
157} /* fin gen_combo_box */
158
159
160} /* fin de définition de la classe */
161
162} /* fin de délaration */
163
164
Note: See TracBrowser for help on using the repository browser.