source: pmb4.1/trunk/fuentes/pmb/circ/visu_ex.inc.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: 10.8 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: visu_ex.inc.php,v 1.27 2010-07-06 10:07:40 ngantier Exp $
6
7// -------------- LLIUREX 02/02/2015--------------
8// ya no és necesario comprobar ceros
9function f_rellena_ceros($as_dato) {
10        if(strlen($as_dato)>0 && strlen($as_dato)<9){
11                for($i=strlen($as_dato); $i<9; $i++)
12                        $as_dato="0".$as_dato;}
13       
14        return $as_dato; 
15}
16//-------------- FIN LLIUREX 02/02/2015---------
17
18if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
19
20$prefix_url_image="./";
21if (!$back_to_visu){
22        get_cb_expl($msg[375], $msg[661], $msg[circ_tit_form_cb_expl], './circ.php?categ=visu_ex', 1);
23        if($form_cb_expl){
24// -------------- LLIUREX 02/02/2015 -------------------
25//cambiamos el comodin por defecto
26                if($form_cb_expl=='*') $form_cb_expl='%';
27//sustituimos por like para obtener valores aproximados
28                $query = "select expl_id, expl_notice, pret_flag, pret_idempr from docs_statut, exemplaires left join pret on pret_idexpl=expl_id where expl_cb like '%$form_cb_expl' and expl_statut=idstatut ";
29// --------------FIN LLIUREX 02/02/2015 ----------------
30                $result = mysql_query($query, $dbh);
31//-------------- LLIUREX 02/02/2015---------------------
32// ya no és necesario comprobar ceros
33                if(!mysql_num_rows($result)) {
34                        //$form_cb_expl=f_rellena_ceros($form_cb_expl);
35                        $query = "select expl_id, expl_notice, pret_flag, pret_idempr from docs_statut, exemplaires left join pret on pret_idexpl=expl_id where expl_cb like '$form_cb_expl' and expl_statut=idstatut ";
36                        $result = mysql_query($query, $dbh);
37                }
38// -------------- FIN LLIUREX 02/02/2015--------------
39                if(!mysql_num_rows($result)) {
40                        // exemplaire inconnu
41                        $alert_sound_list[]="critique";
42                        print "<strong>$form_cb_expl&nbsp;: ${msg[367]}</strong>";
43                } else {
44                        $expl_lu = mysql_fetch_object($result) ;
45                        if ($stuff = get_expl_info($expl_lu->expl_id, 1)) {
46                                $stuff = check_pret($stuff);
47                                // print $begin_result_liste;
48                                print print_info($stuff,1,1);
49                                // pour affichage de l'image de couverture
50                                if ($pmb_book_pics_show=='1' && (($pmb_book_pics_url && $stuff->code) || $stuff->thumbnail_url))
51                                        print "<script type='text/javascript'>
52                                                <!--
53                                                var img = document.getElementById('PMBimagecover".$expl_lu->expl_notice."');
54                                                isbn=img.getAttribute('isbn');
55                                                url_image=img.getAttribute('url_image');
56                                                if (isbn) {
57                                                        if (img.src.substring(img.src.length-8,img.src.length)=='vide.png') {
58                                                                img.src=url_image.replace(/!!noticecode!!/,isbn);
59                                                                }
60                                                        }               
61                                                //-->
62                                                </script>
63                                                ";
64                        } else {
65                                // exemplaire inconnu
66                                $alert_sound_list[]="critique";
67                                print "<strong>$form_cb_expl&nbsp;: ${msg[367]}</strong>";
68                        }
69                }
70        }
71       
72}else{
73        //droits d'acces lecture notice
74        $acces_j='';
75        if ($gestion_acces_active==1 && $gestion_acces_user_notice==1) {
76                require_once("$class_path/acces.class.php");
77                $ac= new acces();
78                $dom_1= $ac->setDomain(1);
79                $acces_j = $dom_1->getJoin($PMBuserid,4,'notice_id');
80        } 
81       
82        // on commence par voir ce que la saisie utilisateur est ($ex_query)
83        $ex_query = clean_string($ex_query);
84       
85        $EAN = '';
86        $isbn = '';
87        $code = '';
88       
89        if(isEAN($ex_query)) {
90                // la saisie est un EAN -> on tente de le formater en ISBN
91                $EAN=$ex_query;
92                $isbn = EANtoISBN($ex_query);
93                // si échec, on prend l'EAN comme il vient
94                if(!$isbn) 
95                        $code = str_replace("*","%",$ex_query);
96                else {
97                        $code=$isbn;
98                        $code10=formatISBN($code,10);
99                }
100        } else {
101                if(isISBN($ex_query)) {
102                        // si la saisie est un ISBN
103                        $isbn = formatISBN($ex_query);
104                        // si échec, ISBN erroné on le prend sous cette forme
105                        if(!$isbn) 
106                                $code = str_replace("*","%",$ex_query);
107                        else {
108                                $code10=$isbn ;
109                                $code=formatISBN($code10,13);
110                        }
111                } else {
112                        // ce n'est rien de tout ça, on prend la saisie telle quelle
113                        $code = str_replace("*","%",$ex_query);
114                        // filtrer par typdoc_query si selectionné
115                        if($typdoc_query) $where_typedoc=" and typdoc='$typdoc_query' ";
116                }
117        }
118       
119        if($nb_results){
120                $limit_page= " limit ".$page*$nb_per_page_search.", $nb_per_page_search "; 
121        }else{
122                $limit_page= " "; 
123                $page=0;
124        }       
125
126        // on compte
127        if ($EAN && $isbn) {
128               
129                // cas des EAN purs : constitution de la requête
130                $requete = "SELECT distinct notices.* FROM notices ";
131                $requete.= $acces_j;
132                $requete.= "left join exemplaires on notices.notice_id=exemplaires.expl_notice ";
133                $requete.= "WHERE niveau_biblio='m' AND (exemplaires.expl_cb like '$code' OR exemplaires.expl_cb='$ex_query' OR notices.code in ('$code','$EAN'".($code10?",'$code10'":"").")) ";
134                $requete.= $limit_page;
135                $myQuery = mysql_query($requete, $dbh);
136               
137        } elseif ($isbn) {
138               
139                // recherche d'un isbn
140                $requete = "SELECT distinct notices.* FROM notices ";
141                $requete.= $acces_j;
142                $requete.= "left join exemplaires on notices.notice_id=exemplaires.expl_notice ";
143                $requete.= " WHERE niveau_biblio='m' AND (exemplaires.expl_cb like '$code' OR exemplaires.expl_cb='$ex_query' OR notices.code in ('$code'".($code10?",'$code10'":"").")) ";
144                $requete.= $limit_page;
145                $myQuery = mysql_query($requete, $dbh);
146               
147        } elseif ($code) {
148               
149                // recherche d'un exemplaire
150                // note : le code est recherché aussi dans le champ code des notices
151                // (cas des code-barres disques qui échappent à l'EAN)
152                //
153                $requete = "SELECT distinct notices.* FROM notices ";
154                $requete.= $acces_j;
155                $requete.= "left join exemplaires on notices.notice_id=exemplaires.expl_notice ";
156                $requete.= "WHERE niveau_biblio='m' AND (exemplaires.expl_cb like '$code' OR notices.code like '$code') $where_typedoc ";
157                $requete.= $limit_page;         
158                $myQuery = mysql_query($requete, $dbh);
159                if(mysql_num_rows($myQuery)==0) {
160                        // rien trouvé en monographie
161                        $requete = "SELECT distinct notices.*, bulletin_id FROM notices ";
162                        $requete.= $acces_j;
163                        $requete.= "left join bulletins on bulletin_notice=notice_id left join exemplaires on (bulletin_id=expl_bulletin and expl_notice=0) ";
164                        $requete.= "WHERE niveau_biblio='s' AND (exemplaires.expl_cb like '$code' OR bulletin_numero like '$code' OR bulletin_cb like '$code' OR notices.code like '$code')  $where_typedoc ";
165                        $requete.= "GROUP BY bulletin_id ";
166                        $requete.= $limit_page;
167                        $myQuery = mysql_query($requete, $dbh);
168                        $rqt_bulletin=1;
169                }
170               
171        } else {
172                // Pas de résultat
173                error_message($msg[235], $msg[307]." $ex_query", 1, "./circ.php?categ=visu_rech");
174                die();
175        }
176       
177        if(!$nb_results){
178                $nb_results= mysql_num_rows($myQuery);
179        }
180                                       
181        if ($rqt_bulletin!=1) {
182                if(mysql_num_rows($myQuery)) {
183                        // la recherche fournit plusieurs résultats !!!
184                        // boucle de parcours des notices trouvées
185                        // inclusion du javascript de gestion des listes dépliables
186                        // début de liste
187                        print sprintf("<div class='othersearchinfo'><b>".$msg[940]."</b>&nbsp;$ex_query =&gt; ".$msg["searcher_results"]."</div>",$nb_results);                 
188                        print $begin_result_liste;
189                        $nb=0;
190                        $recherche_ajax_mode=0;
191                        while($notice = mysql_fetch_object($myQuery)) {
192                                if($notice->niveau_biblio != 's' && $notice->niveau_biblio != 'a') {
193                                        // notice de monographie (les autres n'ont pas de code ni d'exemplaire !!! ;-)
194                                        //Access au cataloguage
195                                        if($nb>5) $recherche_ajax_mode=1;
196                                        /*echo "<pre>";
197                                        print_r($notice);
198                                        echo "</pre>";*/
199                                        //Les liens sont défini dans le fichier visu_rech.inc.php
200                                        $display = new mono_display($notice, 6, $link, 1, $link_expl, '', $link_explnum,1, $print_mode,1,1,'',0,false,true,$recherche_ajax_mode);
201                                        //mono_display($id, $level=1, $action='', $expl=1, $expl_link='', $lien_suppr_cart="", $explnum_link='', $show_resa=0, $print=0, $show_explnum=1, $show_statut=0, $anti_loop='', $draggable=0, $no_link=false, $show_opac_hidden_fields=true,$ajax_mode=0)
202                                        print pmb_bidi($display->result);
203                                }
204                                if (++$nb >= $nb_per_page_search) break;
205                        }
206                        print $end_result_liste;
207                } else {
208                        // exemplaire inconnu
209                        error_message($msg[235], $msg[307]." $ex_query", 1, "./circ.php?categ=visu_rech");
210                        die();
211                }
212        } else {
213                if (mysql_num_rows($myQuery)) {
214                        print sprintf("<div class='othersearchinfo'><b>".$msg[940]."</b>&nbsp;$ex_query =&gt; ".$msg["searcher_results"]."</div>",$nb_results);
215                        print $begin_result_liste;
216                        $nb=0;
217                        while(($n=mysql_fetch_object($myQuery))) {
218
219                                //Access au cataloguage
220                                $cart_link_non = false;
221
222                                require_once ("$include_path/bull_info.inc.php") ;
223                                require_once ("$class_path/serials.class.php") ;
224                                $n->isbd = show_bulletinage_info($n->bulletin_id);
225                                print pmb_bidi($n->isbd) ;
226                                if (++$nb >= $nb_per_page_search) break;
227                        }       
228                        print $end_result_liste;
229                } else {
230                        // Pas de résultat
231                        error_message($msg[235], $msg[307]." $ex_query", 1, "./circ.php?categ=visu_rech");
232                        die();
233                }
234        }
235       
236        //Gestion de la pagination
237        if ($nb_results) {
238                $nav_bar.="
239                <form name='search_form' action='./circ.php?categ=visu_rech' method='post' style='display:none'>
240                        <input type='hidden' name='page' value='$page'/>
241                        <input type='hidden' name='nb_results' value='$nb_results'/>
242                        <input type='hidden' name='ex_query' value='$ex_query'/>
243                        <input type='hidden' name='typdoc_query' value=''/>
244                        <input type='hidden' name='statut_query' value=''/>
245                </form>";
246               
247                $n_max_page=ceil($nb_results/$nb_per_page_search);
248               
249            if (!$page) $page_en_cours=0 ;
250                else $page_en_cours=$page ;
251       
252            // affichage du lien precedent si necessaire
253            if ($page>0) {
254                $nav_bar .= "<a href='#' onClick='document.search_form.page.value-=1; ";
255                $nav_bar .= "document.search_form.submit(); return false;'>";
256                $nav_bar .= "<img src='./images/left.gif' border='0'  title='".$msg[48]."' alt='[".$msg[48]."]' hspace='3' align='middle'/>";
257                    $nav_bar .= "</a>";
258                }
259               
260                $deb = $page_en_cours - 10 ;
261                if ($deb<0) $deb=0;
262                for($i = $deb; ($i < $n_max_page) && ($i<$page_en_cours+10); $i++) {
263                        if($i==$page_en_cours) $nav_bar .= "<strong>".($i+1)."</strong>";
264                        else {
265                                $nav_bar .= "<a href='#' onClick=\"if ((isNaN(document.search_form.page.value))||(document.search_form.page.value=='')) document.search_form.page.value=1; else document.search_form.page.value=".($i)."; ";
266                        $nav_bar .= "document.search_form.submit(); return false;\">";
267                        $nav_bar .= ($i+1);
268                        $nav_bar .= "</a>";
269                        }
270                        if($i<$n_max_page) $nav_bar .= " "; 
271                }
272               
273                if(($page+1)<$n_max_page) {
274                $nav_bar .= "<a href='#' onClick=\"if ((isNaN(document.search_form.page.value))||(document.search_form.page.value=='')) document.search_form.page.value=1; else document.search_form.page.value=parseInt(document.search_form.page.value)+parseInt(1); ";
275                $nav_bar .= "document.search_form.submit(); return false;\">";
276                $nav_bar .= "<img src='./images/right.gif' border='0' title='".$msg[49]."' alt='[".$msg[49]."]' hspace='3' align='middle'>";
277                $nav_bar .= "</a>";
278            } else      $nav_bar .= "";
279                $nav_bar = "<div align='center'>$nav_bar</div>";
280                echo $nav_bar ;
281        } 
282}
283
Note: See TracBrowser for help on using the repository browser.