source: pmb4.1/trunk/fuentes/pmb/classes/search_perso.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: 8.1 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: search_perso.class.php,v 1.3 2013-04-16 09:36:38 mbertin Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9// classes de gestion des recherches personnalisées
10
11// inclusions principales
12require_once("$include_path/templates/search_perso.tpl.php");
13require_once("$class_path/search.class.php");
14
15class search_perso {
16
17// constructeur
18function search_perso($id=0) {
19        global $PMBuserid,$search_perso_user;
20        // si id, allez chercher les infos dans la base
21        if($id) {
22                $this->id = $id;
23                $this->fetch_data();
24        }       
25        $this->user = $PMBuserid;
26        if(!$search_perso_user) {
27                $search_perso_user=$this->get_link_user();
28        }
29        return $this->id;
30}
31   
32// récupération des infos en base
33function fetch_data() {
34        global $dbh;
35       
36        $myQuery = mysql_query("SELECT * FROM search_perso WHERE search_id='".$this->id."' LIMIT 1", $dbh);
37        $myreq= mysql_fetch_object($myQuery);
38       
39        $this->user=$myreq->num_user;
40        $this->name=$myreq->search_name;
41        $this->shortname=$myreq->search_shortname;
42        $this->query=$myreq->search_query;
43        $this->human=$myreq->search_human;
44        $this->directlink=$myreq->search_directlink;
45}
46
47function get_link_user() {
48        global $dbh,$PMBuserid; 
49        $myQuery = mysql_query("SELECT * FROM search_perso WHERE num_user='".$PMBuserid."' order by search_name ", $dbh);
50        $this->search_perso_user=array();
51        $link="";
52        if(mysql_num_rows($myQuery)){
53                $i=0;
54                while(($r=mysql_fetch_object($myQuery))) {
55                        if($r->search_directlink) {                             
56                                if($r->search_shortname)$libelle=$r->search_shortname;
57                                else $libelle=$r->search_name;
58                                $link.="
59                                        <span>
60                                                <a href=\"javascript:document.forms['search_form".$r->search_id."'].submit();\">$libelle</a>
61                                        </span>
62                                ";
63                        }
64                        $this->search_perso_user[$i]= new stdClass();           
65                        $this->search_perso_user[$i]->id=$r->search_id;
66                        $this->search_perso_user[$i]->name=$r->search_name;
67                        $this->search_perso_user[$i]->shortname=$r->search_shortname;
68                        $this->search_perso_user[$i]->query=$r->search_query;
69                        $this->search_perso_user[$i]->human=$r->search_human;
70                        $this->search_perso_user[$i]->directlink=$r->search_directlink;                                 
71                        $i++;                   
72                }       
73        }       
74        $this->directlink_user=$link;
75        return true;
76}
77// fonction de mise à jour ou de création
78function update($value) {       
79        global $dbh,$msg,$search_perso_user;
80        $fields="";
81        foreach($value as $key => $val) {
82                if($fields) $fields.=","; 
83                $fields.=" $key='$val' ";       
84        }               
85        if($this->id) {
86                // modif
87                $no_erreur=mysql_query("UPDATE search_perso SET $fields WHERE search_id=".$this->id, $dbh);     
88                if(!$no_erreur) {
89                        error_message($msg["search_perso_form_edit"], $msg["search_perso_form_add_error"],1);   
90                        exit;
91                }
92               
93        } else {
94                // create
95                $no_erreur=mysql_query("INSERT INTO search_perso SET $fields ", $dbh);
96                $this->id = mysql_insert_id($dbh);
97                if(!$no_erreur) {
98                        error_message($msg["search_perso_form_add"], $msg["search_perso_form_add_error"],1);
99                        exit;
100                }
101        }       
102        // rafraischissement des données
103        $this->fetch_data();
104        $search_perso_user=$this->get_link_user();
105        return $this->id;
106}
107
108function update_from_form() {
109        global $PMBuserid,$name,$shortname,$query,$human,$directlink;
110       
111        $value->num_user=$PMBuserid;
112        $value->search_name=$name;
113        $value->search_shortname=$shortname;
114        $value->search_query=$query;
115        $value->search_human=$human;
116        $value->search_directlink=$directlink;
117       
118        $this->update($value); 
119}
120
121// fonction générant le form de saisie
122function do_form() {
123        global $msg,$tpl_search_perso_form,$charset;   
124       
125        // titre formulaire
126        if($this->id) {
127                $libelle=$msg["search_perso_form_edit"];
128                $link_delete="<input type='button' class='bouton' value='".$msg[63]."' onClick=\"confirm_delete();\" />";
129               
130        } else {
131                $libelle=$msg["search_perso_form_add"];
132                $link_delete="";
133                /*
134                foreach($_POST as $key =>$val) {
135                        if($val) {
136                                if(is_array($val)) {
137                                        foreach($val as $val_array) {
138                                                $memo_search.= "<input type='hidden' name='".$key."[]' value='$val_array'/>";
139                                        }
140                                }
141                                else $memo_search.="<input type='hidden' name='$key' value='$val'/>";
142                        }               
143                }               
144                $this->query=$memo_search;
145               
146                global $search;         
147        for ($i=0; $i<count($search); $i++) {
148                $op="op_".$i."_".$search[$i];
149                global $$op;
150                $field_="field_".$i."_".$search[$i];
151                global $$field_;
152        }       */     
153                $my_search=new search();
154                $this->query=$my_search->serialize_search();
155                $this->human = $my_search->make_human_query();         
156        }
157        // Champ éditable
158        $tpl_search_perso_form = str_replace('!!id!!', htmlentities($this->id,ENT_QUOTES,$charset), $tpl_search_perso_form);
159        $tpl_search_perso_form = str_replace('!!name!!', htmlentities($this->name,ENT_QUOTES,$charset), $tpl_search_perso_form);
160        $tpl_search_perso_form = str_replace('!!shortname!!', htmlentities($this->shortname,ENT_QUOTES,$charset), $tpl_search_perso_form);
161        if($this->directlink) $checked= " checked='checked' ";
162        $tpl_search_perso_form = str_replace('!!directlink!!', $checked, $tpl_search_perso_form);
163
164
165        $tpl_search_perso_form = str_replace('!!query!!', htmlentities($this->query,ENT_QUOTES,$charset), $tpl_search_perso_form);
166        $tpl_search_perso_form = str_replace('!!human!!', htmlentities($this->human,ENT_QUOTES,$charset), $tpl_search_perso_form);
167       
168        $action="./catalog.php?categ=serials&sub=collstate_update&serial_id=".$this->serial_id."&id=".$this->id;
169        $tpl_search_perso_form = str_replace('!!action!!', $action, $tpl_search_perso_form);
170        $tpl_search_perso_form = str_replace('!!delete!!', $link_delete, $tpl_search_perso_form);
171        $tpl_search_perso_form = str_replace('!!libelle!!',htmlentities($libelle,ENT_QUOTES,$charset) , $tpl_search_perso_form);
172       
173        $link_annul = "onClick=\"unload_off();history.go(-1);\"";
174        $tpl_search_perso_form = str_replace('!!annul!!', $link_annul, $tpl_search_perso_form);
175       
176        return $tpl_search_perso_form; 
177}
178
179
180// fonction générant le form de saisie
181function do_list() {
182        global $tpl_search_perso_liste_tableau,$tpl_search_perso_liste_tableau_ligne;   
183               
184        // liste des lien de recherche directe
185        $tpl_search_perso_liste_tableau = str_replace('!!preflink!!',$this->directlink_user , $tpl_search_perso_liste_tableau);
186        $liste="";
187        // pour toute les recherche de l'utilisateur
188        $my_search=new search();
189        for($i=0;$i<count($this->search_perso_user);$i++) {
190                if ($i % 2) $pair_impair = "even"; else $pair_impair = "odd";
191               
192                //composer le formulaire de la recherche
193                $my_search->unserialize_search($this->search_perso_user[$i]->query);
194                $forms_search.= $my_search->make_hidden_search_form("./catalog.php?categ=search&mode=6","search_form".$this->search_perso_user[$i]->id);
195               
196               
197        $td_javascript="  onmousedown=\"document.forms['search_form".$this->search_perso_user[$i]->id."'].submit();\" ";
198        $tr_surbrillance = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='".$pair_impair."'\" ";
199
200        $line = str_replace('!!td_javascript!!',$td_javascript , $tpl_search_perso_liste_tableau_ligne);
201        $line = str_replace('!!tr_surbrillance!!',$tr_surbrillance , $line);
202        $line = str_replace('!!pair_impair!!',$pair_impair , $line);
203
204                $line =str_replace('!!id!!', $this->search_perso_user[$i]->id, $line);
205                $line = str_replace('!!name!!', $this->search_perso_user[$i]->name, $line);
206                $line = str_replace('!!human!!', $this->search_perso_user[$i]->human, $line);           
207                $line = str_replace('!!shortname!!', $this->search_perso_user[$i]->shortname, $line);
208                if($this->search_perso_user[$i]->directlink)
209                        $directlink="<img src='./images/tick.gif' border='0'  hspace='0' align='middle'  class='bouton-nav' value='=' />";
210                else $directlink="";
211                $line = str_replace('!!directlink!!', $directlink, $line);
212               
213                $liste.=$line;
214        }
215        $tpl_search_perso_liste_tableau = str_replace('!!lignes_tableau!!',$liste , $tpl_search_perso_liste_tableau);
216        return $forms_search.$tpl_search_perso_liste_tableau;   
217}
218
219// suppression d'une collection ou de toute les collections d'un périodique
220function delete() {
221        global $dbh,$search_perso_user;
222       
223        if($this->id) {
224                mysql_query("DELETE from search_perso WHERE search_id='".$this->id."' ", $dbh);
225        }
226        $search_perso_user=$this->get_link_user();     
227}
228
229} // fin définition classe
Note: See TracBrowser for help on using the repository browser.