source: pmb4.2/trunk/fuentes/pmb/classes/authperso.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: 26.1 KB
Line 
1<?php
2// +-------------------------------------------------+
3// | 2002-2007 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: authperso.class.php,v 1.12 2015-06-23 14:35:34 ngantier Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9global $javascript_path; // pas compris pourquoi, sinon fait planter connector_out
10require_once($javascript_path."/misc.inc.php");
11require_once($include_path."/templates/authperso.tpl.php");
12require_once($include_path."/templates/parametres_perso.tpl.php");
13require_once($class_path."/custom_parametres_perso.class.php");
14require_once("$class_path/aut_link.class.php");
15require_once($class_path."/index_concept.class.php");
16require_once("$class_path/audit.class.php");
17@ini_set('zend.ze1_compatibility_mode',0);
18require_once($include_path."/h2o/h2o.php");
19
20
21class authperso {
22        var $id=0;
23        var $info=array();
24        var $elt_id=0;
25       
26        function authperso($id=0,$id_auth=0) {
27                global $dbh;
28                if(!$id && $id_auth){                   
29                        $req="select * from authperso_authorities,authperso where id_authperso=authperso_authority_authperso_num and id_authperso_authority=". $id_auth;
30                        $res = pmb_mysql_query($req,$dbh);
31                        if(($r=pmb_mysql_fetch_object($res))) {
32                                $id=$r->authperso_authority_authperso_num;
33                        }
34                }
35                $this->id=$id+0;
36                $this->fetch_data();
37        }
38       
39        function fetch_data() {         
40                $this->info=array();
41                $this->info['fields']=array();
42                if(!$this->id) return;
43               
44                $req="select * from authperso where id_authperso=". $this->id;         
45                $resultat=pmb_mysql_query($req);       
46                if (pmb_mysql_num_rows($resultat)) {
47                        $r=pmb_mysql_fetch_object($resultat);           
48                        $this->info['id']= $r->id_authperso;   
49                        $this->info['name']= $r->authperso_name;
50                        $this->info['onglet_num']= $r->authperso_notice_onglet_num;                     
51                        $this->info['isbd_script']= $r->authperso_isbd_script;                 
52                        $this->info['opac_search']= $r->authperso_opac_search;                 
53                        $this->info['opac_multi_search']= $r->authperso_opac_multi_search;                             
54                        $this->info['gestion_search']= $r->authperso_gestion_search;                   
55                        $this->info['gestion_multi_search']= $r->authperso_gestion_multi_search;               
56                        $this->info['comment']= $r->authperso_comment;
57                        $this->info['onglet_name']="";
58                        $req="SELECT * FROM notice_onglet where id_onglet=".$r->authperso_notice_onglet_num;
59                        $resultat=pmb_mysql_query($req);
60                        if (pmb_mysql_num_rows($resultat)) {
61                                $r_onglet=pmb_mysql_fetch_object($resultat);   
62                                $this->info['onglet_name']= $r_onglet->onglet_name;                                             
63                        }       
64                }               
65                $req="select * from authperso_custom where num_type=". $this->id." order by ordre";             
66                $resultat=pmb_mysql_query($req);       
67                $i=0;
68                if (pmb_mysql_num_rows($resultat)) {
69                        while($r=pmb_mysql_fetch_object($resultat)){   
70                                $this->info['fields'][$i]['id']= $r->idchamp;   
71                                $this->info['fields'][$i]['name']= $r->name;   
72                                $this->info['fields'][$i]['label']= $r->titre; 
73                                $this->info['fields'][$i]['type']= $r->type ;   
74                                $this->info['fields'][$i]['ordre']= $r->ordre ;                         
75                                $this->info['fields'][$i]['search']=$r->search;                         
76                                $this->info['fields'][$i]['pond']=$r->pond;
77                                $this->info['fields'][$i]['obligatoire']=$r->obligatoire;
78                                $this->info['fields'][$i]['export']=$r->export;
79                                $this->info['fields'][$i]['multiple']=$r->multiple;
80                                $this->info['fields'][$i]['opac_sort']=$r->opac_sort;
81                                $this->info['fields'][$i]['code_champ']=$this->id;
82                                $this->info['fields'][$i]['code_ss_champ']=$r->idchamp;
83                                $this->info['fields'][$i]['data']= array();             
84                                                       
85                                $i++;
86                        }
87                }
88        }
89       
90        function get_data(){
91                return $this->info;
92        }
93       
94        function get_info_fields($id=0){
95                global $dbh;
96                $info= array();
97                if($id){
98                        $req="select * from authperso_authorities,authperso where id_authperso=authperso_authority_authperso_num and id_authperso_authority=". $id;
99                        $res = pmb_mysql_query($req,$dbh);
100                        if(($r=pmb_mysql_fetch_object($res))) {
101                                $p_perso=new custom_parametres_perso("authperso","authperso",$r->authperso_authority_authperso_num,"./autorites.php?categ=authperso&sub=update&id_authperso=".$this->id,$option_navigation,$option_visibilite);
102                                $fields=$p_perso->get_out_values($id);
103                                $authperso_fields=$p_perso->values;                             
104                        }
105                }
106                foreach($this->info['fields'] as $field){
107                        $info[$field['id']]['id']= $field['id'];
108                        $info[$field['id']]['name']= $field['name'];
109                        $info[$field['id']]['label']= $field['label'];
110                        $info[$field['id']]['type']= $field['type'];
111                        $info[$field['id']]['ordre']= $field['ordre'];
112                        $info[$field['id']]['search']=$field['search'];
113                        $info[$field['id']]['pond']=$field['pond'];
114                        $info[$field['id']]['obligatoire']=$field['obligatoire'];
115                        $info[$field['id']]['export']=$field['export'];
116                        $info[$field['id']]['multiple']=$field['multiple'];
117                        $info[$field['id']]['opac_sort']=$field['opac_sort'];
118                        $info[$field['id']]['code_champ']=$this->id;
119                        $info[$field['id']]['code_ss_champ']=$field['id'];
120                        $info[$field['id']]['values']= $authperso_fields[$field['name']]['values'];             
121                        $info[$field['id']]['all_format_values']= $authperso_fields[$field['name']]['all_format_values'];                               
122                }
123                return $info;
124        }
125       
126        function fetch_data_auth($id) {
127                $p_perso=new custom_parametres_perso("authperso","authperso",$this->id);
128                $authperso_fields=$p_perso->get_out_values($id);
129               
130                $this->info['data_auth'][$id]=$p_perso->values;
131                //pour ne pas louper les champs vides...
132                foreach($this->info['fields'] as $i =>$field){
133                        $this->info['fields'][$i]['data'][$id]=$this->info['data_auth'][$id][$field['name']];
134                }
135                return $p_perso->values;
136        }
137       
138        function get_search_list($tpl_auth,$restriction){       
139                global $msg,$charset,$dbh;
140               
141                $req = "select * from authperso_authorities where  authperso_authority_authperso_num= ".$this->id;
142                $req .= " order by id_authperso_authority DESC $restriction";
143                $res = pmb_mysql_query($req, $dbh);
144                while(($r=pmb_mysql_fetch_object($res))) {
145                        $id=$r->id_authperso_authority;
146                        $isbd=$this->get_isbd($id);
147                       
148                        $tpl=$tpl_auth;
149                        $tpl = str_replace ('!!isbd_addslashes!!', htmlentities(addslashes($isbd),ENT_QUOTES, $charset), $tpl);
150                        $tpl = str_replace ('!!isbd!!', htmlentities($isbd), $tpl);
151                        $tpl = str_replace ('!!auth_id!!', $id, $tpl);                 
152                        $auth_lines.=$tpl;
153                }
154                return $auth_lines;
155        }
156       
157        function get_list() {           
158                global $msg,$charset,$dbh;
159                global $user_query, $user_input,$page,$nbr_lignes,$last_param; 
160                global $url_base;
161               
162                $nb_per_page = 10;             
163                if(!$page) $page=1;
164                $debut =($page-1)*$nb_per_page;
165               
166                $search_word = str_replace('*','%',$user_input);
167                if(!($nb_per_page*1)){
168                        $nb_per_page=$nb_per_page_search;
169                }
170                if(!$page) $page=1;
171                if(!$last_param){
172                        $debut =($page-1)*$nb_per_page;
173                        $requete = "SELECT count(1) FROM authperso_authorities where ( authperso_infos_global like '%".$search_word."%' or authperso_index_infos_global like '%".$user_input."%' ) and authperso_authority_authperso_num= ".$this->id;
174                        $res = pmb_mysql_query($requete, $dbh);
175                        $nbr_lignes = pmb_mysql_result($res, 0, 0);
176                       
177                        $req = "select * from authperso_authorities where ( authperso_infos_global like '%".$search_word."%' or authperso_index_infos_global like '%".$user_input."%' ) and  authperso_authority_authperso_num= ".$this->id;
178                        $req .= " order by authperso_index_infos_global LIMIT ".$debut.",".$nb_per_page." ";   
179                }else{ // les derniers créés
180                        $req = "select * from authperso_authorities where  authperso_authority_authperso_num= ".$this->id;
181                        $req .= " order by id_authperso_authority DESC LIMIT $nb_per_page";
182                }
183               
184                $res = pmb_mysql_query($req,$dbh);
185                $parity=1;
186                while(($r=pmb_mysql_fetch_object($res))) {
187                        if ($parity % 2) $pair_impair = "even"; else $pair_impair = "odd";                             
188                        $parity += 1;
189                        $id=$r->id_authperso_authority;
190                        $this->fetch_data_auth($r->id_authperso_authority);
191                        $auth_line="";
192                        //$this->info['fields'][$i]['data'][$id][$field['name']]
193                        foreach($this->info['fields'] as $field){
194                                $data_label=$field['data'][$id]['values'][0]['format_value'];
195                                $auth_line.="
196                                <td onmousedown=\"document.location='./autorites.php?categ=authperso&sub=authperso_form&id_authperso=".$this->id."&amp;id=$id&amp;user_input=!!user_input_url!!&amp;nbr_lignes=$nbr_lignes&amp;page=$page';\" title='' valign='top'>".
197                                        $data_label
198                                ."</td>";
199                               
200                                $auth_line = str_replace('!!user_input_url!!',  rawurlencode(stripslashes($user_input)),$auth_line);
201                        }
202                        // usage
203                        $auth_line.="
204                                <td onmousedown=\"document.location='./catalog.php?categ=search&mode=".($this->id +1000)."&etat=aut_search&aut_type=authperso&authperso_id=".$this->id."&aut_id=$id';\" title='' valign='top'>".
205                                        $this->get_count_notice($id)
206                                ."</td>";
207                               
208                        $auth_lines.="
209                        <tr class='$parity' onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='even'\" style=\"cursor: pointer\">
210                                $auth_line
211                        </tr>
212                        ";
213                }               
214                $user_query = str_replace ('!!user_query_title!!', $msg["authperso_search_title"], $user_query);
215                $user_query = str_replace ('!!action!!', "./autorites.php?categ=authperso&sub=reach&id_authperso=".$this->id."&id=", $user_query);
216                $user_query = str_replace ('!!add_auth_msg!!', $msg["authperso_search_add"] , $user_query);
217                $user_query = str_replace ('!!add_auth_act!!', './autorites.php?categ=authperso&sub=authperso_form&id_authperso='.$this->id, $user_query);
218                $user_query = str_replace ('<!-- lien_derniers -->', "<a href='./autorites.php?categ=authperso&sub=authperso_last&last_param=authperso_last&id_authperso=".$this->id."'>".$msg["authperso_search_last"]."</a>", $user_query);
219                $user_query = str_replace("!!user_input!!",htmlentities(stripslashes($user_input),ENT_QUOTES, $charset),$user_query);
220                $user_query = str_replace('!!user_input_url!!', rawurlencode(stripslashes($user_input)),$user_query);
221       
222                if($error){
223                        $user_query.error_message($msg["searcher_syntax_error"],sprintf($msg["searcher_syntax_error_desc"],$aq->current_car,$aq->input_html,$aq->error_message));
224                        exit;
225                }
226                $authperso_list_tpl= "
227                $user_query
228                <br />
229                <br />
230                <div class='row'>
231                        <h3><! --!!nb_autorite_found!!-- >".$msg["authperso_search_found"]." !!cle!! </h3>
232                        </div>
233                        <script type='text/javascript' src='./javascript/sorttable.js'></script>
234                        <table class='sortable'>
235                                <tr>
236                                !!th_fields!!
237                                </tr>
238                                !!list!!
239                        </table>
240                <div class='row'>
241                        !!nav_bar!!
242                </div>
243                ";
244               
245                foreach($this->info['fields'] as $field){
246                        $th_fields.="<th>".htmlentities($field['label'],ENT_QUOTES,$charset)."</th>";
247                }       
248                $th_fields.="<th>".htmlentities($msg['authperso_usage'],ENT_QUOTES,$charset)."</th>";
249               
250                $nav_bar = aff_pagination ($url_base, $nbr_lignes, $nb_per_page, $page, 10, false, true) ;
251               
252                $authperso_list_tpl=str_replace( "<! --!!nb_autorite_found!!-- >",$nbr_lignes.' ',$authperso_list_tpl);         
253                $authperso_list_tpl = str_replace("!!th_fields!!", $th_fields, $authperso_list_tpl);
254                $authperso_list_tpl = str_replace("!!cle!!", $user_input, $authperso_list_tpl);
255                $authperso_list_tpl = str_replace("!!list!!", $auth_lines, $authperso_list_tpl);
256                $authperso_list_tpl = str_replace("!!nav_bar!!", $nav_bar, $authperso_list_tpl);
257               
258                return $authperso_list_tpl;
259        }
260       
261        function get_list_selector() {
262                global $msg,$charset,$dbh;
263                global $user_query, $user_input,$page,$nbr_lignes,$last_param;         
264                global $callback;
265                global $caller;         
266                global $base_url;
267               
268                $nb_per_page = 10;
269                if(!$page) $page=1;
270                $debut =($page-1)*$nb_per_page;
271       
272                $search_word = str_replace('*','%',$user_input);
273                if(!($nb_per_page*1)){
274                        $nb_per_page=$nb_per_page_search;
275                }
276                if(!$page) $page=1;
277                if(!$last_param){
278                        $debut =($page-1)*$nb_per_page;
279                        $requete = "SELECT count(1) FROM authperso_authorities where ( authperso_infos_global like '%".$search_word."%' or authperso_index_infos_global like '%".$user_input."%' ) and authperso_authority_authperso_num= ".$this->id;
280                        $res = pmb_mysql_query($requete, $dbh);
281                        $nbr_lignes = pmb_mysql_result($res, 0, 0);
282                               
283                        $req = "select * from authperso_authorities where ( authperso_infos_global like '%".$search_word."%' or authperso_index_infos_global like '%".$user_input."%' ) and  authperso_authority_authperso_num= ".$this->id;
284                        $req .= " order by authperso_index_infos_global LIMIT ".$debut.",".$nb_per_page." ";
285                }else{ // les derniers créés
286                        $req = "select * from authperso_authorities where  authperso_authority_authperso_num= ".$this->id;
287                        $req .= " order by id_authperso_authority DESC LIMIT $nb_per_page";
288                }
289       
290                $res = pmb_mysql_query($req,$dbh);
291                while(($r=pmb_mysql_fetch_object($res))) {
292                        $id=$r->id_authperso_authority;
293                        $isbd=$this->get_isbd($id);
294                        $auth_lines.="<a href='#' onclick=\"set_parent('$caller', '$id', '".htmlentities(addslashes($isbd),ENT_QUOTES, $charset)."','$callback')\">".
295                                        htmlentities($isbd,ENT_QUOTES, $charset)."</a><br />";                 
296                }
297               
298                //$url_base = $base_url."&user_input=".rawurlencode(stripslashes($user_input));
299                $nav_bar = aff_pagination ($base_url, $nbr_lignes, $nb_per_page, $page, 10, false, true) ;
300               
301                $authperso_list_tpl= "         
302                        <br />
303                                $auth_lines
304                        <div class='row'>&nbsp;<hr /></div><div align='center'>                 
305                                $nav_bar
306                        </div>
307                ";
308       
309                return $authperso_list_tpl;
310        }       
311       
312        function get_isbd($id){
313                global $dbh;
314
315                $req="select * from authperso_authorities,authperso where id_authperso=authperso_authority_authperso_num and id_authperso_authority=". $id;
316                $res = pmb_mysql_query($req,$dbh);
317                if(($r=pmb_mysql_fetch_object($res))) {                 
318                        $p_perso=new custom_parametres_perso("authperso","authperso",$r->authperso_authority_authperso_num);
319                        $fields=$p_perso->get_out_values($id);                 
320                        $authperso_fields=$p_perso->values;                     
321                        if($r->authperso_isbd_script){
322                                $index_concept = new index_concept($id, TYPE_AUTHPERSO);       
323                                $authperso_fields['index_concepts']=$index_concept->get_data();
324                                $isbd=H2o::parseString($r->authperso_isbd_script)->render($authperso_fields);
325                        }else{
326                                foreach ($authperso_fields as $field){                                 
327                                        $isbd.=$field[values][0][format_value].".  ";
328                                }
329                        }       
330                }
331                return $isbd;
332        }
333       
334        function get_count_notice($id){
335                global $dbh;
336                       
337                $req="select count(1) from notices_authperso where notice_authperso_authority_num=". $id;
338                return pmb_mysql_result(pmb_mysql_query($req, $dbh), 0, 0);                                     
339        }
340               
341        function get_notices($id){
342                global $dbh;
343               
344                $list=array(); 
345                $req="select notice_authperso_notice_num from notices_authperso where notice_authperso_authority_num=". $id;
346                $res = pmb_mysql_query($req,$dbh);
347                if(($r=pmb_mysql_fetch_object($res))) { 
348                        $list[]=$r>notice_authperso_notice_num;
349                }       
350                return $list;           
351        }
352               
353        function get_form($id) {
354                global $msg,$charset,$authperso_form;   
355                global $user_query, $user_input,$page,$nbr_lignes;     
356                global $pmb_type_audit;
357                global $thesaurus_concepts_active;
358               
359                $p_perso=new custom_parametres_perso("authperso","authperso",$this->id,"./autorites.php?categ=authperso&sub=update&id_authperso=".$this->id,$option_navigation,$option_visibilite);
360                $authperso_fields=$p_perso->show_editable_fields($id);
361               
362                $authperso_field_tpl=
363                <div class='row'>
364                        <label class='etiquette'>!!titre!!</label>
365                </div>
366                <div class='row'>
367                        !!aff!!
368                </div>";
369                foreach($authperso_fields['FIELDS'] as $field){
370                        //printr($field);
371                        $field_tpl=$authperso_field_tpl;                       
372                        $field_tpl = str_replace("!!titre!!", $field['TITRE'], $field_tpl);
373                        $field_tpl = str_replace("!!aff!!", $field['AFF'], $field_tpl);
374                        $tpl.=$field_tpl;
375                }       
376                $button_remplace = "<input type='button' class='bouton' value='$msg[158]' onclick='unload_off();document.location=\"./autorites.php?categ=authperso&sub=replace&id_authperso=".$this->id."&id=$id\"'>";                 
377                $button_voir = "<input type='button' class='bouton' value='$msg[voir_notices_assoc]' onclick='unload_off();document.location=\"./catalog.php?categ=search&mode=".($this->id + 1000)."&etat=aut_search&aut_type=authperso&aut_id=$id\"'>";
378               
379                if ($pmb_type_audit && $id)
380                        $bouton_audit= "&nbsp;<input class='bouton' type='button' onClick=\"openPopUp('./audit.php?type_obj=".($this->id + 1000)."&object_id=".$id."', 'audit_popup', 700, 500, -2, -2, 'scrollbars=yes, toolbar=no, dependent=yes, resizable=yes')\" title=\"".$msg['audit_button']."\" value=\"".$msg['audit_button']."\" />&nbsp;";
381
382                $aut_link= new aut_link($this->id+1000,$id);
383                $authperso_form = str_replace('<!-- aut_link -->', $aut_link->get_form('saisie_authperso') , $authperso_form);
384
385                // Indexation concept
386                if($thesaurus_concepts_active == 1){
387                        $index_concept = new index_concept($id, TYPE_AUTHPERSO);
388                        $authperso_form = str_replace('<!-- index_concept_form -->', $index_concept->get_form('saisie_authperso'), $authperso_form);
389                }
390                $authperso_form = str_replace("!!list_field!!", $tpl, $authperso_form);
391                if(!$id){
392                        $authperso_form = str_replace("!!libelle!!", $msg['authperso_form_titre_new'], $authperso_form);
393                        $authperso_form = str_replace("!!delete!!", "", $authperso_form);
394                        $authperso_form = str_replace("!!remplace!!", "", $authperso_form);
395                        $authperso_form = str_replace("!!voir_notices!!", "", $authperso_form);
396                        $authperso_form = str_replace("!!audit_bt!!", "", $authperso_form);
397                }else{
398                        $authperso_form = str_replace("!!libelle!!", $msg['authperso_form_titre_edit'], $authperso_form);
399                        $authperso_form = str_replace("!!delete!!", "<input type='button' class='bouton' value='$msg[63]' onClick=\"confirm_delete();\">", $authperso_form);
400                        $authperso_form = str_replace("!!remplace!!", $button_remplace, $authperso_form);
401                        $authperso_form = str_replace("!!voir_notices!!", $button_voir, $authperso_form);
402                        $authperso_form = str_replace("!!audit_bt!!", $bouton_audit, $authperso_form);
403                }
404                $authperso_form = str_replace("!!action!!", "./autorites.php?categ=authperso&sub=update&id_authperso=".$this->id."&id=$id", $authperso_form);
405                $authperso_form = str_replace("!!id_authperso!!", $this->id, $authperso_form);
406                $authperso_form = str_replace("!!id!!", $id, $authperso_form);
407                $authperso_form = str_replace("!!page!!", $page, $authperso_form);
408                $authperso_form = str_replace("!!nbr_lignes!!", $nbr_lignes, $authperso_form);
409                $authperso_form = str_replace("!!user_input!!",htmlentities(stripslashes($user_input),ENT_QUOTES, $charset),$authperso_form);
410                $authperso_form = str_replace('!!user_input_url!!',     rawurlencode(stripslashes($user_input)),$authperso_form);
411                return $authperso_form;
412        }
413       
414        function get_form_select($id,$base_url) {
415                global $msg,$charset,$authperso_form_select;   
416                global $user_query, $user_input,$page,$nbr_lignes;     
417                global $pmb_type_audit;
418                global $thesaurus_concepts_active;
419               
420                $p_perso=new custom_parametres_perso("authperso","authperso",$this->id,"./autorites.php?categ=authperso&sub=update&id_authperso=".$this->id,$option_navigation,$option_visibilite);
421                $authperso_fields=$p_perso->show_editable_fields($id);
422               
423                $authperso_field_tpl=" 
424                <div class='row'>
425                        <label class='etiquette'>!!titre!!</label>
426                </div>
427                <div class='row'>
428                        !!aff!!
429                </div>";
430                foreach($authperso_fields['FIELDS'] as $field){
431                        //printr($field);
432                        $field_tpl=$authperso_field_tpl;                       
433                        $field_tpl = str_replace("!!titre!!", $field['TITRE'], $field_tpl);
434                        $field_tpl = str_replace("!!aff!!", $field['AFF'], $field_tpl);
435                        $tpl.=$field_tpl;
436                }       
437                $button_remplace = "<input type='button' class='bouton' value='$msg[158]' onclick='unload_off();document.location=\"./autorites.php?categ=authperso&sub=replace&id_authperso=".$this->id."&id=$id\"'>";                 
438                $button_voir = "<input type='button' class='bouton' value='$msg[voir_notices_assoc]' onclick='unload_off();document.location=\"./catalog.php?categ=search&mode=".($this->id + 1000)."&etat=aut_search&aut_type=authperso&aut_id=$id\"'>";
439               
440                if ($pmb_type_audit && $id)
441                        $bouton_audit= "&nbsp;<input class='bouton' type='button' onClick=\"openPopUp('./audit.php?type_obj=".($this->id + 1000)."&object_id=".$id."', 'audit_popup', 700, 500, -2, -2, 'scrollbars=yes, toolbar=no, dependent=yes, resizable=yes')\" title=\"".$msg['audit_button']."\" value=\"".$msg['audit_button']."\" />&nbsp;";
442               
443                $aut_link= new aut_link($this->id+1000,$id);
444                $authperso_form_select = str_replace('<!-- aut_link -->', $aut_link->get_form('saisie_authperso') , $authperso_form_select);
445
446                // Indexation concept
447                if($thesaurus_concepts_active == 1){
448                        $index_concept = new index_concept($id, TYPE_AUTHPERSO);
449                        $authperso_form_select = str_replace('<!-- index_concept_form -->', $index_concept->get_form('saisie_authperso'), $authperso_form_select);
450                }
451               
452                $authperso_form_select = str_replace("!!libelle!!", $msg['authperso_form_titre_new'], $authperso_form_select);
453                $authperso_form_select = str_replace("!!list_field!!", $tpl, $authperso_form_select);
454               
455                $authperso_form_select = str_replace("!!retour!!", "$base_url&action=", $authperso_form_select);
456                $authperso_form_select = str_replace("!!action!!", "$base_url&action=update", $authperso_form_select);
457                $authperso_form_select = str_replace("!!id_authperso!!", $this->id, $authperso_form_select);
458                $authperso_form_select = str_replace("!!id!!", $id, $authperso_form_select);
459                return $authperso_form_select;
460        }
461               
462        function update_from_form($id=0) {
463                global $dbh;
464                global $thesaurus_concepts_active;
465               
466                $id+=0;
467                if(!$id){
468                        $requete="insert into authperso_authorities set authperso_authority_authperso_num=".$this->id;
469                        pmb_mysql_query($requete);                     
470                        $id = pmb_mysql_insert_id($dbh);                       
471                        audit::insert_creation ($this->id+1000,$id);                   
472                }else{                 
473                        audit::insert_modif ($this->id+1000,$id);                               
474                }
475                if(!$id) return;
476                $p_perso=new custom_parametres_perso("authperso","authperso",$this->id);
477                $p_perso->rec_fields_perso($id);
478               
479                $aut_link= new aut_link($this->id+1000,$id);
480                $aut_link->save_form();
481               
482                // Indexation concepts
483                if($thesaurus_concepts_active == 1){
484                        $index_concept = new index_concept($id, TYPE_AUTHPERSO);
485                        $index_concept->save();
486                }
487               
488                $this->update_global_index($id);
489                       
490        }
491       
492        function update_global_index($id){
493                global $dbh;           
494               
495                $p_perso=new custom_parametres_perso("authperso","authperso",$this->id);
496                $mots_perso=$p_perso->get_fields_recherche($id);
497                if($mots_perso) {
498                        $infos_global.= $mots_perso.' ';
499                        $infos_global_index.= strip_empty_words($mots_perso).' ';
500                }
501                $req = "update authperso_authorities set authperso_infos_global='".addslashes($infos_global)."', authperso_index_infos_global='".addslashes(' '.$infos_global_index)."' where id_authperso_authority=$id";
502                pmb_mysql_query($req,$dbh);
503        }
504       
505        function reindex_all(){
506                global $dbh;   
507               
508                $req = "select id_authperso_authority from authperso_authorities";
509                $res = pmb_mysql_query($req,$dbh);
510                while($fiche = pmb_mysql_fetch_object($res)){
511                        $this->update_global_index($fiche->id_authperso_authority);
512                }
513        }
514       
515        function delete($id) {
516                global $dbh;   
517               
518                $p_perso=new custom_parametres_perso("authperso","authperso",$this->id);       
519                $p_perso->delete_values($id);
520                // nettoyage indexation concepts
521                $index_concept = new index_concept($id, TYPE_AUTHPERSO);
522                $index_concept->delete();
523                $req="DELETE FROM authperso_authorities where id_authperso_authority=". $id;           
524                $resultat=pmb_mysql_query($req);       
525               
526                audit::delete_audit($this->id+1000,$id);
527        }       
528       
529        function replace_form($id) {
530                global $authperso_replace;
531                global $msg;
532                global $include_path;
533               
534                if(!$id ) {
535                        require_once("$include_path/user_error.inc.php");
536                        error_message($msg[161], $msg[162], 1, './autorites.php?categ=authperso&sub=&id=');
537                        return;
538                }       
539                $authperso_replace=str_replace('!!old_authperso_libelle!!', $this->get_isbd($id), $authperso_replace);
540                $authperso_replace=str_replace('!!id!!', $id, $authperso_replace);
541                $authperso_replace=str_replace('!!id_authperso!!', $this->id, $authperso_replace);
542               
543                return $authperso_replace;
544        }
545       
546        function replace($id,$by,$link_save=0) {       
547                global $msg;
548                global $dbh;
549                global $pmb_synchro_rdf;
550               
551                if (($id == $by) || (!$id) || (!$by))  return $msg[223];
552                $aut_link= new aut_link($this->id+1000,$id);
553                // "Conserver les liens entre autorités" est demandé
554                if($link_save) {
555                        // liens entre autorités
556                        $aut_link->add_link_to($this->id +1000,$by);
557                }
558                $aut_link->delete();
559               
560                // remplacement dans les notices
561                $requete = "UPDATE notices_authperso SET notice_authperso_authority_num='$by' WHERE notice_authperso_authority_num='$id' ";
562                @pmb_mysql_query($requete, $dbh);
563               
564                // effacement de
565                $this->delete($id);             
566        }       
567        function import($data) {
568                global $dbh;
569                // to do
570               
571        }
572       
573       
574        function get_ajax_list($user_input){
575                global $dbh;
576                               
577                $values=array();
578                $search_word = str_replace('*','%',$user_input);
579                $req = "select * from authperso_authorities where ( authperso_infos_global like ' ".addslashes($search_word)."%' or authperso_index_infos_global like ' ".addslashes($user_input)."%' ) and  authperso_authority_authperso_num= ".$this->id;
580                $req .= " order by authperso_index_infos_global limit 20";
581                $res = pmb_mysql_query($req,$dbh);
582                while(($r=pmb_mysql_fetch_object($res))) {
583                        $values[$r->id_authperso_authority]=$this->get_isbd($r->id_authperso_authority);
584                }
585                return($values);
586        }
587       
588} //authperso class end
589
590
591class authpersos {     
592        var $info=array();
593       
594        function authpersos() {
595                $this->fetch_data();
596        }
597       
598        function fetch_data() {
599                global $PMBuserid;
600                $this->info=array();
601                $i=0;
602                $req="select * from authperso ";
603                $resultat=pmb_mysql_query($req);       
604                if (pmb_mysql_num_rows($resultat)) {
605                        while($r=pmb_mysql_fetch_object($resultat)){   
606                                // $this->info[$i]= new authperso($r->id_authperso);   
607                                $authperso= new authperso($r->id_authperso);
608                                $this->info[$r->id_authperso]=$authperso->get_data();                           
609                                $i++;
610                        }
611                }
612        }
613       
614        function get_data(){
615                return($this->info);
616        }
617               
618        function get_all_index_fields(){
619                $index_fields=array();
620                $req="select id_authperso from authperso ";
621                $resultat=pmb_mysql_query($req);       
622                if (pmb_mysql_num_rows($resultat)) {
623                        while($r=pmb_mysql_fetch_object($resultat)){   
624                                $index_fields[]=$r->id_authperso;
625                        }               
626                }       
627                return $index_fields;
628        }
629       
630        function get_onglet_list() {
631                $onglets=array();
632                foreach($this->info as $elt){
633                        if($elt['onglet_num'])
634                                $onglets[$elt['onglet_num']][]=$elt;                   
635                }
636                return $onglets;
637        }
638       
639        function get_menu() {
640                global $authperso_list_tpl,$authperso_list_line_tpl,$msg;
641               
642                $line_tpl="<li><a href='./autorites.php?categ=authperso&sub=&id_authperso=!!id_authperso!!&id='>!!name!!</a></li>";
643               
644                foreach($this->info as $elt){
645                        $tpl_elt=$line_tpl;
646                        $tpl_elt=str_replace('!!name!!',$elt['name'], $tpl_elt);
647                        $tpl_elt=str_replace('!!id_authperso!!',$elt['id'], $tpl_elt);
648                        $tpl_list.=$tpl_elt;
649                }
650                return $tpl_list;
651        }       
652       
653} // authpersos class end
654       
Note: See TracBrowser for help on using the repository browser.