source: pmb4.2/trunk/fuentes/pmb/circ/resa/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.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
6if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
7
8// $Id: other_proceed.inc.php,v 1.10 2015-04-03 11:16:29 jpermanne Exp $
9// Armelle : a priori plus utilisé
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                $ourSearch = new other_search();
37                $ourSearch->terms = preg_split('/[\s]+/', $other_query, -1, PREG_SPLIT_NO_EMPTY);
38                $query = test_other_query($n_resume_flag, $n_gen_flag, $n_titres_flag, $n_matieres_flag, $other_query, $search_type);
39                // si la recherche match/against n'a rien donné, on force en regexp
40                if($query['type'] == 1 && $query['nbr_rows'] == 0)
41                        $query = test_other_query($n_resume_flag, $n_gen_flag, $n_titres_flag, $n_matieres_flag, $other_query, $search_type, TRUE);
42                $ourSearch->requete = "SELECT * FROM notices WHERE ${query['restr']} ORDER BY ${query['order']}";
43                $ourSearch->nbr_rows = $query['nbr_rows'];
44                $ourSearch->results_per_page = $results_per_page;
45                $ourSearch->display = $query['display'];
46                }
47
48
49
50if($ourSearch->nbr_rows == 0) {
51        print $RESA_other_search;
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 = "./circ.php?categ=resa&id_empr=$id_empr&groupID=$groupID&id_notice=!!id!!";;
73                        $display = new mono_display($n, 6, $link, 1, '');
74                        $notice = $display->result;
75                } else {
76                        // on a affaire à un périodique
77                        // préparation des liens pour lui
78                        $link_serial = "./circ.php?categ=resa&id_empr=$id_empr&groupID=$groupID&mode=view_serial&serial_id=!!id!!";
79                        $link_analysis = '';
80                        $link_bulletin = "./circ.php?categ=resa&id_empr=$id_empr&groupID=$groupID&id_bulletin=!!id!!";
81                        $serial = new serial_display($n, 6, $link_serial, $link_analysis, $link_bulletin);
82                        $notice = $serial->result;
83                }
84                print pmb_bidi($notice);
85        }
86
87        // fin de liste
88
89print   $end_result_list;
90
91        // constitution des liens
92        $nbepages = ceil($ourSearch->nbr_rows/$ourSearch->results_per_page);
93        $suivante = $page+1;
94        $precedente = $page-1;
95
96        // affichage du lien précédent si nécéssaire
97
98        $unq=md5(microtime());
99
100        if($precedente > 0) {
101                $nav_bar .= "<form class='form-$current_module' name='page_prec' action=\"./circ.php?categ=resa&mode=4&id_empr=$id_empr&group_ID=$groupID&unq=$unq\" method='post'>
102                <input type='hidden' name='obj' value=\"$obj\" />
103                <input type='hidden' name='page' value=\"$precedente\" />
104                </form>";
105                $nav_bar .= "<img src='./images/left.gif' hspace='3' align='middle' border='0' onClick=\"document.page_prec.submit();\">";
106                }
107
108        for($i = 1; $i <= $nbepages; $i++) {
109                if($i==$page) $nav_bar .= "<b>page $i/$nbepages</b>";
110                }
111       
112        if($suivante<=$nbepages) {
113                $nav_bar .= "<img src='./images/right.gif' hspace='3' align='middle' border='0' onClick=\"document.page_next.submit();\">";
114                $nav_bar .= "<form class='form-$current_module' name=\"page_next\" method=\"post\" action=\"./circ.php?categ=resa&mode=4&id_empr=$id_empr&groupID=$groupID&unq=$unq\">
115                <input type='hidden' name='obj' value=\"$obj\" />
116                <input type='hidden' name='page' value=\"$suivante\" />
117                </form>";
118                }       
119
120        print "<div class=\"row\"><div align='center'>$nav_bar</div></div>";   
121}
122
123
124// la couleur pour la mise en évidence des mots trouvés
125$high_color = "#800080";
126
127?>
128
129<?php
130
131// pour débuggage
132if(DEBUG) {
133        print "<p><font color=#ff0000>&lt;debug mode&gt;</font>";
134        print '<br />$ourSearch->requete : '.$ourSearch->requete;
135        print '<br />$ourSearch->nbr_rows : '.$ourSearch->nbr_rows;
136//      print '<br />$ourSearch->nb_results : '.$ourSearch->nb_results;
137        print '<br />$ourSearch->results_per_page : '.$ourSearch->results_per_page;
138/*      print '<br />$ourSearch->sql_sep : '.$ourSearch->sql_sep;
139        print '<br />$ourSearch->on_resume : '.$ourSearch->on_resume;
140        print '<br />$ourSearch->on_contenu : '.$ourSearch->on_contenu;
141        print '<br />$ourSearch->accept_subset : '.$ourSearch->accept_subset; */
142        print '<br />$ourSearch->display : '.$ourSearch->display.'<br /></p>';
143        print "<p><strong>object serialized</strong> :<br />"; 
144        $result = serialize($ourSearch);
145        print "<br />$result<br />";
146        print '<br /><strong>$obj content (sent to hidden form)</strong> :<br />'.$obj;
147        print '<br /><font color=#ff0000>&lt;/debug mode&gt;</font></p>';
148}
149
150?>
Note: See TracBrowser for help on using the repository browser.