source: pmb4.2/trunk/fuentes/pmb/classes/equation.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: 9.3 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: equation.class.php,v 1.18 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 'équations de recherche'
10require_once($class_path."/search.class.php");
11
12class equation {
13
14// ---------------------------------------------------------------
15//              propriétés de la classe
16// ---------------------------------------------------------------
17var $id_equation=0;     
18var $num_classement=1; 
19var     $nom_equation="";
20var     $comment_equation="";
21var     $requete="";
22var     $proprio_equation=0;
23var $search_class;
24var $human_query = "" ;
25
26// ---------------------------------------------------------------
27//              constructeur
28// ---------------------------------------------------------------
29function equation ($id=0) {
30        //Instantiation d'une classe recherche
31        $this->search_class=new search(false);
32        if ($id) {
33                // on cherche à atteindre une notice existante
34                $this->id_equation = $id;
35                $this->getData();
36        } else {
37                // la notice n'existe pas
38                $this->id_equation = 0;
39                $this->getData();
40        }
41}
42
43// ---------------------------------------------------------------
44//              getData() : récupération infos
45// ---------------------------------------------------------------
46function getData() {
47        global $dbh;
48        global $msg;
49       
50        if (!$this->id_equation) {
51                // pas d'identifiant. on retourne un tableau vide
52                $this->id_equation=0;
53                $this->num_classement = 1 ;
54                $this->nom_equation="";
55                $this->comment_equation="";
56                $this->requete="";
57                $this->proprio_equation=0;
58                $this->human_query = "" ;
59        } else {
60                $requete = "SELECT id_equation, num_classement, nom_equation,comment_equation,requete, proprio_equation FROM equations WHERE id_equation='".$this->id_equation."' " ;
61                $result = pmb_mysql_query($requete, $dbh) or die ($requete."<br /> in equation.class.php : ".pmb_mysql_error());
62                if(pmb_mysql_num_rows($result)) {
63                        $temp = pmb_mysql_fetch_object($result);
64                        $this->id_equation              = $temp->id_equation ;
65                        $this->num_classement   = $temp->num_classement ;
66                        $this->nom_equation             = $temp->nom_equation ;
67                        $this->comment_equation = $temp->comment_equation ;     
68                        $this->requete                  = $temp->requete ;
69                        $this->proprio_equation = $temp->proprio_equation ;     
70                        $this->human_query = $this->search_class->make_serialized_human_query($this->requete) ;
71                } else {
72                        // pas de bannette avec cette clé
73                        $this->id_equation=0;
74                        $this->num_classement = 1 ;
75                        $this->nom_equation="";
76                        $this->comment_equation="";
77                        $this->requete="";
78                        $this->proprio_equation=0;
79                        $this->human_query = "" ;
80                }
81        }
82}
83
84// ---------------------------------------------------------------
85//              show_form : affichage du formulaire de saisie
86// ---------------------------------------------------------------
87function show_form() {
88
89        global $msg, $charset;
90        global $dsi_equation_form;
91       
92        if($this->id_equation) {
93                $action = "./dsi.php?categ=equations&sub=$type&id_equation=$this->id_equation&suite=update";
94                $button_delete = "<input type='button' class='bouton' value='$msg[63]' ";
95                $button_delete .= "onClick=\"confirm_delete();\">";
96                $libelle = $msg['dsi_equ_form_modif'];
97                $button_modif_requete = "<input type='button' class='bouton' value=\"$msg[dsi_equ_modif_requete]\" onClick=\"document.modif_requete_form_$this->id_equation.submit();\">";
98                $form_modif_requete = $this->make_hidden_search_form();
99        } else {
100                $action = "./dsi.php?categ=equations&sub=$type&id_equation=0&suite=update";
101                $libelle = $msg['dsi_equ_form_creat'];
102                $button_delete ='';
103                $button_modif_requete = "";
104                $form_modif_requete = "";
105        }
106
107        $dsi_equation_form = str_replace('!!libelle!!', $libelle, $dsi_equation_form);
108
109        $dsi_equation_form = str_replace('!!id_equation!!', $this->id_equation, $dsi_equation_form);
110        $dsi_equation_form = str_replace('!!action!!', $action, $dsi_equation_form);
111        $dsi_equation_form = str_replace('!!nom_equation!!', htmlentities($this->nom_equation,ENT_QUOTES, $charset), $dsi_equation_form);
112       
113        $dsi_equation_form = str_replace('!!num_classement!!', show_classement_utilise ('EQU', $this->num_classement, 0), $dsi_equation_form);
114       
115        $dsi_equation_form = str_replace('!!comment_equation!!', htmlentities($this->comment_equation,ENT_QUOTES, $charset), $dsi_equation_form);
116
117        $dsi_equation_form = str_replace('!!requete!!', htmlentities($this->requete,ENT_QUOTES, $charset), $dsi_equation_form);
118        $dsi_equation_form = str_replace('!!requete_human!!', $this->search_class->make_serialized_human_query($this->requete), $dsi_equation_form);
119       
120        if ($this->proprio_equation==0) 
121                $dsi_equation_form = str_replace('!!proprio_equation!!', htmlentities($msg['dsi_equ_no_proprio'],ENT_QUOTES, $charset), $dsi_equation_form);
122        else 
123                $dsi_equation_form = str_replace('!!proprio_equation!!', "Choix de proprio à faire", $dsi_equation_form);
124       
125        $dsi_equation_form = str_replace('!!delete!!', $button_delete,  $dsi_equation_form);
126        $dsi_equation_form = str_replace('!!bouton_modif_requete!!', $button_modif_requete,  $dsi_equation_form);
127        $dsi_equation_form = str_replace('!!form_modif_requete!!', $form_modif_requete,  $dsi_equation_form);
128       
129        return $dsi_equation_form;
130}
131
132// ---------------------------------------------------------------
133//              delete() : suppression
134// ---------------------------------------------------------------
135function delete() {
136        global $dbh;
137        global $msg;
138       
139        if (!$this->id_equation)
140                // impossible d'accéder à cette équation
141                return $msg[409];
142
143        $requete = "delete from bannette_equation WHERE num_equation='$this->id_equation'";
144        $res = pmb_mysql_query($requete, $dbh);
145        $requete = "delete from equations WHERE id_equation='$this->id_equation'";
146        $res = pmb_mysql_query($requete, $dbh);
147
148        $query = pmb_mysql_query("DELETE bannettes FROM bannettes LEFT JOIN empr ON proprio_bannette = id_empr WHERE id_empr IS NULL AND proprio_bannette !=0");
149        $query = pmb_mysql_query("DELETE equations FROM equations LEFT JOIN empr ON proprio_equation = id_empr WHERE id_empr IS NULL AND proprio_equation !=0 ");
150        $query = pmb_mysql_query("DELETE bannette_equation FROM bannette_equation LEFT JOIN bannettes ON num_bannette = id_bannette WHERE id_bannette IS NULL ");
151        $query = pmb_mysql_query("DELETE bannette_equation FROM bannette_equation LEFT JOIN equations on num_equation=id_equation WHERE id_equation is null");
152        $query = pmb_mysql_query("DELETE bannette_abon FROM bannette_abon LEFT JOIN empr on num_empr=id_empr WHERE id_empr is null");
153        $query = pmb_mysql_query("DELETE bannette_abon FROM bannette_abon LEFT JOIN bannettes ON num_bannette=id_bannette WHERE id_bannette IS NULL ");
154       
155}
156
157
158// ---------------------------------------------------------------
159//              update
160// ---------------------------------------------------------------
161function update($temp) {
162
163        global $dbh;
164        global $msg;
165       
166        if ($this->id_equation) {
167                // update
168                $req = "UPDATE equations set ";
169                $clause = " WHERE id_equation='".$this->id_equation."'";
170        } else {
171                $req = "insert into equations set ";
172                $clause = "";
173        }
174        $req.="num_classement='$temp->num_classement',";
175        $req.="nom_equation='".trim($temp->nom_equation)."',";
176        $req.="comment_equation='".trim($temp->comment_equation)."',"; 
177        $req.="requete='$temp->requete',";
178        $req.="proprio_equation='$temp->proprio_equation'";     
179        $req.=$clause ;
180        $res = pmb_mysql_query($req, $dbh);
181        if (!$this->id_equation) $this->id_equation = pmb_mysql_insert_id() ;
182}
183
184// pour maj de requete d'équation
185function make_hidden_search_form($url="", $priv_pro="PUB", $id_empr=0) {
186    global $search;
187    global $charset;
188    global $page;
189    $url = "./catalog.php?categ=search&mode=6" ;
190    // remplir $search
191    $this->search_class->unserialize_search($this->requete);
192   
193    $r="<form name='modif_requete_form_$this->id_equation' action='$url' style='display:none' method='post'>";
194   
195    for ($i=0; $i<count($search); $i++) {
196        $inter="inter_".$i."_".$search[$i];
197        global $$inter;
198        $op="op_".$i."_".$search[$i];
199        global $$op;
200        $field_="field_".$i."_".$search[$i];
201        global $$field_;
202        $field=$$field_;
203        //Récupération des variables auxiliaires
204        $fieldvar_="fieldvar_".$i."_".$search[$i];
205        global $$fieldvar_;
206        $fieldvar=$$fieldvar_;
207        if (!is_array($fieldvar)) $fieldvar=array();
208
209        $r.="<input type='hidden' name='search[]' value='".htmlentities($search[$i],ENT_QUOTES,$charset)."'/>";
210        $r.="<input type='hidden' name='".$inter."' value='".htmlentities($$inter,ENT_QUOTES,$charset)."'/>";
211        $r.="<input type='hidden' name='".$op."' value='".htmlentities($$op,ENT_QUOTES,$charset)."'/>";
212        for ($j=0; $j<count($field); $j++) {
213                $r.="<input type='hidden' name='".$field_."[]' value='".htmlentities($field[$j],ENT_QUOTES,$charset)."'/>";
214        }
215        reset($fieldvar);
216        while (list($var_name,$var_value)=each($fieldvar)) {
217                for ($j=0; $j<count($var_value); $j++) {
218                        $r.="<input type='hidden' name='".$fieldvar_."[".$var_name."][]' value='".htmlentities($var_value[$j],ENT_QUOTES,$charset)."'/>";
219                }
220        }
221    }
222    $r.="<input type='hidden' name='id_equation' value='$this->id_equation'/>";
223    $r.="<input type='hidden' name='priv_pro' value='$priv_pro'/>";
224    $r.="<input type='hidden' name='id_empr' value='$id_empr'/>";
225    $r.="</form>";
226    return $r;
227    }
228   
229
230} # fin de définition de la classe equation
Note: See TracBrowser for help on using the repository browser.