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