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