source: pmb4.2/trunk/fuentes/pmb/classes/docs_section.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: 5.7 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_section.class.php,v 1.8 2015-04-03 11:16:19 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9// définition de la classe de gestion des 'docs_section'
10
11if ( ! defined( 'DOCSSECTION_CLASS' ) ) {
12  define( 'DOCSSECTION_CLASS', 1 );
13
14class docs_section {
15
16/* ---------------------------------------------------------------
17                propriétés de la classe
18   --------------------------------------------------------------- */
19var $id=0;
20var $libelle='';
21var $sdoc_codage_import="";
22var $sdoc_owner=0;
23
24/* ---------------------------------------------------------------
25                docs_section($id) : constructeur
26   --------------------------------------------------------------- */
27function docs_section($id=0) {
28        if($id) {
29                /* on cherche à atteindre une section existante */
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
48        $requete = "SELECT * FROM docs_section WHERE idsection='".$this->id."' ";
49        $result = @pmb_mysql_query($requete, $dbh);
50        if(!pmb_mysql_num_rows($result)) return;
51               
52        $data = pmb_mysql_fetch_object($result);
53        $this->id = $data->idsection;           
54        $this->libelle = $data->section_libelle;
55        $this->sdoc_codage_import = $data->sdoc_codage_import;
56        $this->sdoc_owner = $data->sdoc_owner;
57
58        }
59
60// ---------------------------------------------------------------
61//              import() : import d'une section de document
62// ---------------------------------------------------------------
63function import($data) {
64
65        // cette méthode prend en entrée un tableau constitué des informations suivantes :
66        //      $data['section_libelle']       
67        //      $data['sdoc_codage_import']
68        //      $data['sdoc_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 = pmb_mysql_field_len(pmb_mysql_query("SELECT section_libelle FROM docs_section limit 1"),0);
79        $data['section_libelle'] = rtrim(substr(preg_replace('/\[|\]/', '', rtrim(ltrim($data['section_libelle']))),0,$long_maxi));
80        $long_maxi = pmb_mysql_field_len(pmb_mysql_query("SELECT sdoc_codage_import FROM docs_section limit 1"),0);
81        $data['sdoc_codage_import'] = rtrim(substr(preg_replace('/\[|\]/', '', rtrim(ltrim($data['sdoc_codage_import']))),0,$long_maxi));
82
83        if($data['sdoc_owner']=="") $data['sdoc_owner'] = 0;
84        if($data['section_libelle']=="") return 0;
85        /* sdoc_codage_import est obligatoire si sdoc_owner != 0 */
86        // if(($data['sdoc_owner']!=0) && ($data['sdoc_codage_import']=="")) return 0;
87       
88        // préparation de la requête
89        $key0 = addslashes($data['section_libelle']);
90        $key1 = addslashes($data['sdoc_codage_import']);
91        $key2 = $data['sdoc_owner'];
92       
93        /* vérification que la section existe */
94        $query = "SELECT idsection FROM docs_section WHERE sdoc_codage_import='${key1}' and sdoc_owner = '${key2}' LIMIT 1 ";
95        $result = @pmb_mysql_query($query, $dbh);
96        if(!$result) die("can't SELECT docs_section ".$query);
97        $docs_section  = pmb_mysql_fetch_object($result);
98
99        /* le type de doc existe, on retourne l'ID */
100        if($docs_section->idsection) return $docs_section->idsection;
101
102        // id non-récupérée, il faut créer la forme.
103        $query  = "INSERT INTO docs_section SET ";
104        $query .= "section_libelle='".$key0."', ";
105        $query .= "sdoc_codage_import='".$key1."', ";
106        $query .= "sdoc_owner='".$key2."' ";
107        $result = @pmb_mysql_query($query, $dbh);
108        if(!$result) die("can't INSERT into docs_section ".$query);
109        $id_section_cree = pmb_mysql_insert_id($dbh);
110        $query = "insert into docsloc_section (SELECT $id_section_cree, idlocation FROM docs_location) ";
111        $result = @pmb_mysql_query($query, $dbh);
112
113        return $id_section_cree ;
114
115        } /* fin méthode import */
116
117/* une fonction pour générer des combo Box
118   paramêtres :
119        $selected : l'élément sélectioné le cas échéant
120   retourne une chaine de caractères contenant l'objet complet */
121static function gen_combo_box ( $selected ) {
122        global $msg;
123        $requete="select idsection, section_libelle from docs_section order by section_libelle ";
124        $champ_code="idsection";
125        $champ_info="section_libelle";
126        $nom="book_section_id";
127        $on_change="";
128        $liste_vide_code="0";
129        $liste_vide_info=$msg['class_section'];
130        $option_premier_code="";
131        $option_premier_info="";
132        $gen_liste_str="";
133        $resultat_liste=pmb_mysql_query($requete);
134        $gen_liste_str = "<select name=\"$nom\" onChange=\"$on_change\">\n" ;
135        $nb_liste=pmb_mysql_num_rows($resultat_liste);
136        if ($nb_liste==0) {
137                $gen_liste_str.="<option value=\"$liste_vide_code\">$liste_vide_info</option>\n" ;
138                } else {
139                        if ($option_premier_info!="") {
140                                $gen_liste_str.="<option value=\"".$option_premier_code."\" ";
141                                if ($selected==$option_premier_code) $gen_liste_str.="selected" ;
142                                $gen_liste_str.=">".$option_premier_info."\n";
143                                }
144                        $i=0;
145                        while ($i<$nb_liste) {
146                                $gen_liste_str.="<option value=\"".pmb_mysql_result($resultat_liste,$i,$champ_code)."\" " ;
147                                if ($selected==pmb_mysql_result($resultat_liste,$i,$champ_code)) {
148                                        $gen_liste_str.="selected" ;
149                                        }
150                                $gen_liste_str.=">".pmb_mysql_result($resultat_liste,$i,$champ_info)."</option>\n" ;
151                                $i++;
152                                }
153                        }
154        $gen_liste_str.="</select>\n" ;
155        return $gen_liste_str ;
156        } /* fin gen_combo_box */
157
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.