source: pmb4.2/trunk/fuentes/pmb/catalog/notices/search/others/other_proceed.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: 6.7 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: other_proceed.inc.php,v 1.16 2015-04-03 11:16:28 jpermanne Exp $
6// Armelle : a priori plus utilisé
7
8if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
9
10// la couleur pour la mise en évidence des mots trouvés
11$high_color = "#800080";
12define('DEBUG', 0);
13
14// définition de la classe de passage par page
15class other_search {
16        var $requete                    = '';   // la requête SQL complète
17        var $nbr_rows                   = 0;    // le nombre de résultats trouvés
18        var $results_per_pages          = 0;    // nombre de résultats par page à afficher
19        var $display                    = '';   // affichage en clair de la requête utilisateur
20        var $terms                      ;       // tableau des mots de la requête (pour highlight)
21        }
22
23if($obj) {
24        // $obj est réputé objet (serialisé et urlencodé)
25        // on a juste à le decoder pour récupérer notre instance de la classe other_search
26        $ourSearch = unserialize(urldecode($obj));
27} else {
28        // sinon, il faut instancier ourSearch (other_search) avec ce dont on dispose
29        // include de fabrication de la fonction ad-hoc
30        include('./catalog/notices/search/others/make_object.inc.php');
31        $other_query = clean_string(($other_query));
32        // on définit un tableau contenant les termes de la saisie utilisateur
33        // récupération du nombre de résultats par page
34        if($res_per_page) $results_per_page = $res_per_page;
35                else $results_per_page = $nb_per_page_a_search;
36               
37        $ourSearch = new other_search();
38        $ourSearch->terms = preg_split('/[\s]+/', $other_query, -1, PREG_SPLIT_NO_EMPTY);
39        $query = test_other_query($n_resume_flag, $n_gen_flag, $n_titres_flag, $n_matieres_flag, $other_query, $search_type);
40       
41        // si la recherche match/against n'a rien donné, on force en regexp
42        if($query['type'] == 1 && $query['nbr_rows'] == 0)
43                $query = test_other_query($n_resume_flag, $n_gen_flag, $n_titres_flag, $n_matieres_flag, $other_query, $search_type, TRUE);
44        $ourSearch->requete = "SELECT * FROM notices WHERE ${query['restr']} ORDER BY ${query['order']}";
45        $ourSearch->nbr_rows = $query['nbr_rows'];
46        $ourSearch->results_per_page = $results_per_page;
47        $ourSearch->display = $query['display'];
48        }
49
50if($ourSearch->nbr_rows == 0) {
51        print $other_search_form;
52        error_message($msg[4043], $ourSearch->display." : ".$msg[1915], 0, 'javascript:history.go(-1)');
53} else {
54        // fabrication de l'objet transmis de pages en pages
55        $obj = urlencode(serialize($ourSearch));
56        print pmb_bidi("<div class='othersearchinfo'>$msg[401] ".$ourSearch->display." | ".$ourSearch->nbr_rows.$msg[1916]."</div>");
57
58        // définition de la page actuelle
59        if(!$page) $page=1;
60        $debut =($page-1)*$ourSearch->results_per_page;
61        $requete = $ourSearch->requete." LIMIT $debut,".$ourSearch->results_per_page;
62
63        // inclusion du javascript de gestion des listes dépliables
64        // début de liste
65        print $begin_result_liste;
66
67        // boucle de fetch des notices
68        $res = @pmb_mysql_query($requete, $dbh);
69        while(($n=pmb_mysql_fetch_object($res))) { 
70                if($n->niveau_biblio != 's' && $n->niveau_biblio != 'a') {
71                        // notice de monographie
72                        $link = './catalog.php?categ=isbd&id=!!id!!';
73                        $link_expl = './catalog.php?categ=edit_expl&id=!!notice_id!!&cb=!!expl_cb!!&expl_id=!!expl_id!!'; 
74                        $link_explnum = './catalog.php?categ=edit_explnum&id=!!notice_id!!&explnum_id=!!explnum_id!!';   
75                        $display = new mono_display($n, 6, $link, 1, $link_expl, '', $link_explnum,1);
76                        $notice = $display->result;
77                        } else {
78                                // on a affaire à un périodique
79                                // préparation des liens pour lui
80                                $link_serial = './catalog.php?categ=serials&sub=view&serial_id=!!id!!';
81                                $link_analysis = './catalog.php?categ=serials&sub=bulletinage&action=view&bul_id=!!bul_id!!&art_to_show=!!id!!';
82                                $link_bulletin = './catalog.php?categ=serials&sub=bulletinage&action=view&bul_id=!!id!!';
83                                $link_explnum = "./catalog.php?categ=serials&sub=analysis&action=explnum_form&bul_id=!!bul_id!!&analysis_id=!!analysis_id!!&explnum_id=!!explnum_id!!";
84                                // function serial_display ($id, $level='1', $action_serial='', $action_analysis='', $action_bulletin='', $lien_suppr_cart="", $lien_explnum="", $bouton_explnum=1,$print=0,$show_explnum=1, $show_statut=0, $show_opac_hidden_fields=true, $draggable=0 ) {
85                                $serial = new serial_display($n, 6, $link_serial, $link_analysis, $link_bulletin, "", $link_explnum, 0, 0, 1, 1, true, 1);
86                                $notice = $serial->result;
87                                }
88                print pmb_bidi($notice);
89                }
90
91        // fin de liste
92        //      print "</form>";
93        print   $end_result_list;
94
95        // constitution des liens
96        $nbepages = ceil($ourSearch->nbr_rows/$ourSearch->results_per_page);
97        $suivante = $page+1;
98        $precedente = $page-1;
99
100        // affichage du lien précédent si nécéssaire
101
102        $unq=md5(microtime());
103
104        if($precedente > 0) {
105                $nav_bar .= "<form class='form-$current_module' style='display: none;' name='page_prec' action=\"./catalog.php?categ=search&mode=4&unq=$unq\" method='post'><input type='hidden' name='obj' value=\"$obj\" /><input type='hidden' name='page' value=\"$precedente\" /></form>";
106                $nav_bar .= "<img src='./images/left.gif' hspace='3' align='middle' border='0' onClick=\"document.page_prec.submit();\">";
107                }
108
109        for($i = 1; $i <= $nbepages; $i++) {
110                if($i==$page) $nav_bar .= "<b>page $i/$nbepages</b>";
111                }
112       
113        if($suivante<=$nbepages) {
114                $nav_bar .= "<form class='form-$current_module' style='display: none;' name=\"page_next\" method=\"post\" action=\"./catalog.php?categ=search&mode=4&unq=$unq\"><input type='hidden' name='obj' value=\"$obj\" /><input type='hidden' name='page' value=\"$suivante\" /></form>";
115                $nav_bar .= "<img src='./images/right.gif' hspace='3' align='middle' border='0' onClick=\"document.page_next.submit();\">";
116                }       
117
118        print "<div class=\"row\"><div align='center'>$nav_bar</div></div>";   
119        }
120
121
122// la couleur pour la mise en évidence des mots trouvés
123$high_color = "#800080";
124
125// pour débuggage
126if(DEBUG) {
127        print "<p><font color=#ff0000>&lt;debug mode&gt;</font>";
128        print '<br />$ourSearch->requete : '.$ourSearch->requete;
129        print '<br />$ourSearch->nbr_rows : '.$ourSearch->nbr_rows;
130//      print '<br />$ourSearch->nb_results : '.$ourSearch->nb_results;
131        print '<br />$ourSearch->results_per_page : '.$ourSearch->results_per_page;
132/*      print '<br />$ourSearch->sql_sep : '.$ourSearch->sql_sep;
133        print '<br />$ourSearch->on_resume : '.$ourSearch->on_resume;
134        print '<br />$ourSearch->on_contenu : '.$ourSearch->on_contenu;
135        print '<br />$ourSearch->accept_subset : '.$ourSearch->accept_subset; */
136        print '<br />$ourSearch->display : '.$ourSearch->display.'<br /></p>';
137        print "<p><strong>object serialized</strong> :<br />"; 
138        $result = serialize($ourSearch);
139        print "<br />$result<br />";
140        print '<br /><strong>$obj content (sent to hidden form)</strong> :<br />'.$obj;
141        print '<br /><font color=#ff0000>&lt;/debug mode&gt;</font></p>';
142}
Note: See TracBrowser for help on using the repository browser.