source: pmb4.2/trunk/fuentes/pmb/autorites/subcollections/sub_collections_list.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: 7.2 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: sub_collections_list.inc.php,v 1.29 2015-04-03 11:16:28 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9// nombre de références par pages
10if ($nb_per_page_collection != "") 
11        $nb_per_page = $nb_per_page_subcollection ;
12else $nb_per_page = 10;
13
14// traitement de la saisie utilisateur
15include("$include_path/marc_tables/$pmb_indexation_lang/empty_words");
16require_once($class_path."/analyse_query.class.php");
17
18if($user_input)
19        //a priori pas utile. Armelle
20        $clef = reg_diacrit($user_input);
21
22// $sub_collection_list_tmpl : template pour la liste sous collections
23$sub_collection_list_tmpl = "
24<br />
25<br />
26<div class='row'>
27        <h3><! --!!nb_autorite_found!!-- >$msg[183] !!cle!! </h3>
28        </div>
29        <script type='text/javascript' src='./javascript/sorttable.js'></script>
30        <table class='sortable'>
31                !!list!!
32        </table>
33<div class='row'>
34        !!nav_bar!!
35        </div>
36";
37
38/* pour ajouter un lien de création :
39<a href='./autorites.php?categ=souscollections&sub=collection_form&id='>$msg[176]</a>
40*/
41
42function list_collection($coll, $collection_list, $nav_bar) {
43        global $sub_collection_list_tmpl;
44        global $charset;
45        $sub_collection_list_tmpl = str_replace("!!cle!!", $coll, $sub_collection_list_tmpl);
46        $sub_collection_list_tmpl = str_replace("!!list!!", $collection_list, $sub_collection_list_tmpl);
47        $sub_collection_list_tmpl = str_replace("!!nav_bar!!", $nav_bar, $sub_collection_list_tmpl);
48        subcollection::search_form();
49        print pmb_bidi($sub_collection_list_tmpl);
50}
51
52// on récupére le nombre de lignes qui vont bien
53
54if(!$nbr_lignes) {
55        if(!$user_input) {
56                $requete = "SELECT count(1) FROM sub_collections";
57                if ($last_param) 
58                        $requete = "SELECT count(1) FROM sub_collections ".$tri_param." ".$limit_param;
59        } else {
60                $aq=new analyse_query(stripslashes($user_input));
61                if ($aq->error) {
62                        subcollection::search_form();
63                        error_message($msg["searcher_syntax_error"],sprintf($msg["searcher_syntax_error_desc"],$aq->current_car,$aq->input_html,$aq->error_message));
64                        exit;
65                }
66                $requete=$aq->get_query_count("sub_collections","sub_coll_name","index_sub_coll","sub_coll_id");
67        }
68        $res = pmb_mysql_query($requete, $dbh);
69        $nbr_lignes = pmb_mysql_result($res, 0, 0);
70} else $aq=new analyse_query(stripslashes($user_input));
71
72if(!$page) $page=1;
73$debut =($page-1)*$nb_per_page;
74
75if($nbr_lignes) {
76        $sub_collection_list_tmpl=str_replace( "<! --!!nb_autorite_found!!-- >",$nbr_lignes.' ',$sub_collection_list_tmpl);     
77       
78        $collection_list = "<tr>
79                <th>".$msg[103]."</th>
80                <th>".$msg[165]."</th>
81                <!--!!col_num_autorite!!-->
82                <th>".$msg["count_notices_assoc"]."</th>
83                </tr>";
84       
85        $num_auth_present=false;
86        $req="SELECT id_authority_source FROM authorities_sources WHERE authority_type='subcollection' AND TRIM(authority_number) !='' LIMIT 1";
87        $res_aut=pmb_mysql_query($req,$dbh);
88        if($res_aut && pmb_mysql_num_rows($res_aut)){
89                $collection_list=str_replace("<!--!!col_num_autorite!!-->","<th>".$msg["authorities_number"]."</th>",$collection_list);
90                $num_auth_present=true;
91        }
92       
93        // on lance la vraie requête
94        if(!$user_input) {
95                $requete = "SELECT A.*, B.*, C.* FROM sub_collections A, collections B, publishers C";
96                $requete .= " WHERE B.collection_id=A.sub_coll_parent";
97                $requete .= " AND C.ed_id=B.collection_parent";
98                $requete .= " ORDER BY A.sub_coll_name LIMIT $debut,$nb_per_page ";
99                if ($last_param) { 
100                        $requete = "SELECT A.*, B.*, C.* FROM sub_collections A, collections B, publishers C";
101                        $requete .= " WHERE B.collection_id=A.sub_coll_parent";
102                        $requete .= " AND C.ed_id=B.collection_parent";
103                        $requete .= " ".$tri_param." ".$limit_param;
104                }
105        } else {
106                $members=$aq->get_query_members("sub_collections","sub_coll_name","index_sub_coll","sub_coll_id");
107                $requete = "SELECT sub_collections.*, collections.*, publishers.*,".$members["select"]." as pert FROM sub_collections, collections, publishers where ".$members["where"]." and collection_id=sub_coll_parent and collection_parent=ed_id group by sub_coll_id order by pert desc, index_sub_coll, index_coll,index_publisher limit $debut,$nb_per_page";
108        }
109        $res = @pmb_mysql_query($requete, $dbh);
110        $parity=1;
111        $url_base = "./autorites.php?categ=souscollections&sub=reach&user_input=".rawurlencode(stripslashes($user_input)) ;
112        while(($coll=pmb_mysql_fetch_object($res))) {
113                if ($parity % 2) {
114                        $pair_impair = "even";
115                } else {
116                        $pair_impair = "odd";
117                }
118                $parity += 1;
119               
120                $notice_count_sql = "SELECT count(*) FROM notices WHERE subcoll_id = ".$coll->sub_coll_id;
121                $notice_count = pmb_mysql_result(pmb_mysql_query($notice_count_sql), 0, 0);
122               
123            $tr_javascript=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='$pair_impair'\"  ";
124         $collection_list.= "<tr class='$pair_impair' $tr_javascript style='cursor: pointer'>
125                                        <td valign='top' onmousedown=\"document.location='./autorites.php?categ=souscollections&sub=collection_form&id=$coll->sub_coll_id&user_input=".rawurlencode(stripslashes($user_input))."&nbr_lignes=$nbr_lignes&page=$page';\">
126                                                        $coll->sub_coll_name";
127                $collection_list .= "&nbsp;($coll->collection_name.&nbsp;$coll->ed_name)";
128                $collection_list .= "</td><td>".htmlentities($coll->sub_coll_issn,ENT_QUOTES, $charset)."</td>";
129               
130                //Numéros d'autorite
131                if($num_auth_present){
132                        $requete="SELECT authority_number,origin_authorities_name, origin_authorities_country FROM authorities_sources JOIN origin_authorities ON num_origin_authority=id_origin_authorities WHERE authority_type='subcollection' AND num_authority='".$coll->sub_coll_id."' AND TRIM(authority_number) !='' GROUP BY authority_number,origin_authorities_name,origin_authorities_country ORDER BY authority_favorite DESC, origin_authorities_name";
133                        $res_aut=pmb_mysql_query($requete,$dbh);
134                        if($res_aut && pmb_mysql_num_rows($res_aut)){
135                                $collection_list .= "<td>";
136                                $first=true;
137                                while ($aut = pmb_mysql_fetch_object($res_aut)) {
138                                        if(!$first)$collection_list .=", ";
139                                        $collection_list .=htmlentities($aut->authority_number,ENT_QUOTES,$charset);
140                                        if($tmp=trim($aut->origin_authorities_name)){
141                                                $collection_list .=htmlentities(" (".$aut->origin_authorities_name.")",ENT_QUOTES,$charset);
142                                        }
143                                        $first=false;
144                                }
145                                $collection_list .= "</td>";
146                        }else{
147                                $collection_list .= "<td>&nbsp;</td>";
148                        }
149                }
150               
151                if($notice_count && $notice_count>0) 
152                        $collection_list .= "<td onmousedown=\"document.location='./catalog.php?categ=search&mode=2&etat=aut_search&aut_type=subcoll&aut_id=$coll->sub_coll_id'\">".$notice_count."</td>";
153                else $collection_list.= "<td>&nbsp;</td>";     
154                $collection_list .= "</tr>";
155        } // fin while
156        pmb_mysql_free_result($res);
157       
158        if (!$last_param) $nav_bar = aff_pagination ($url_base, $nbr_lignes, $nb_per_page, $page, 10, false, true) ;
159        else $nav_bar = "";
160
161        // affichage du résultat
162        list_collection($user_input, $collection_list, $nav_bar);
163
164} else {
165        // la requête n'a produit aucun résultat
166        subcollection::search_form();
167        error_message($msg[184], str_replace('!!cle!!', stripslashes($user_input), $msg[181]), 0, './autorites.php?categ=souscollections&sub=&id=');
168}
169
Note: See TracBrowser for help on using the repository browser.