source: pmb4.1/trunk/fuentes/pmb/autorites/series/series_list.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: 5.9 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: series_list.inc.php,v 1.26.2.1 2014-04-23 14:47:49 gueluneau 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_serie != "") 
11        $nb_per_page = $nb_per_page_serie ;
12        else $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// $serie_list_tmpl : template pour la liste titres de séries
23$serie_list_tmpl = "
24<br />
25<br />
26<div class='row'>
27        <h3><! --!!nb_autorite_found!!-- >$msg[334] !!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
38function list_serie($cb, $empr_list, $nav_bar) {
39        global $serie_list_tmpl;
40        $serie_list_tmpl = str_replace("!!cle!!", $cb, $serie_list_tmpl);
41        $serie_list_tmpl = str_replace("!!list!!", $empr_list, $serie_list_tmpl);
42        $serie_list_tmpl = str_replace("!!nav_bar!!", $nav_bar, $serie_list_tmpl);
43        serie::search_form();
44        print pmb_bidi($serie_list_tmpl);
45}
46
47
48// on récupére le nombre de lignes qui vont bien
49if(!$nbr_lignes) {
50        if(!$user_input) {
51                $requete = "SELECT count(1) FROM series ";
52                if ($last_param) 
53                        $requete = "SELECT count(1) FROM series ".$tri_param." ".$limit_param;
54        } else {
55                $aq=new analyse_query(stripslashes($user_input));
56                if ($aq->error) {
57                        serie::search_form();
58                        error_message($msg["searcher_syntax_error"],sprintf($msg["searcher_syntax_error_desc"],$aq->current_car,$aq->input_html,$aq->error_message));
59                        exit;
60                }
61                $requete=$aq->get_query_count("series","serie_name","serie_index","serie_id");
62        }
63        $res = mysql_query($requete, $dbh);
64        $nbr_lignes = mysql_result($res, 0, 0);
65} else $aq=new analyse_query(stripslashes($user_input));
66
67
68if(!$page) $page=1;
69$debut =($page-1)*$nb_per_page;
70
71
72if($nbr_lignes) {
73        $serie_list_tmpl=str_replace( "<! --!!nb_autorite_found!!-- >",$nbr_lignes.' ',$serie_list_tmpl);
74       
75        $serie_list = "<tr>
76                <th>".$msg[103]."</th>
77                <!--!!col_num_autorite!!-->
78                <th>".$msg["count_notices_assoc"]."</th>
79                </tr>";
80       
81        $num_auth_present=false;
82        $req="SELECT id_authority_source FROM authorities_sources WHERE authority_type='serie' AND TRIM(authority_number) !='' LIMIT 1";
83        $res_aut=mysql_query($req,$dbh);
84        if($res_aut && mysql_num_rows($res_aut)){
85                $serie_list=str_replace("<!--!!col_num_autorite!!-->","<th>".$msg["authorities_number"]."</th>",$serie_list);
86                $num_auth_present=true;
87        }
88       
89        // on lance la vraie requête
90        if(!$user_input) {
91                $requete = "SELECT * FROM series ORDER BY serie_name LIMIT $debut,$nb_per_page ";
92                if ($last_param) $requete = "SELECT * FROM series ".$tri_param." ".$limit_param;
93                } else {
94                        $members=$aq->get_query_members("series","serie_name","serie_index","serie_id");
95                        $requete="select *,".$members["select"]." as pert from series where ".$members["where"]." group by serie_id order by pert desc, serie_index limit $debut,$nb_per_page";
96                        }
97        $res = @mysql_query($requete, $dbh);
98        $parity=1;
99        $url_base = "./autorites.php?categ=series&sub=reach&user_input=".rawurlencode(stripslashes($user_input)) ;
100        while(($serie=mysql_fetch_object($res))) {
101                if ($parity % 2) {
102                        $pair_impair = "even";
103                        } else {
104                                $pair_impair = "odd";
105                                }
106                $parity += 1;
107               
108                $notice_count_sql = "SELECT count(*) FROM notices WHERE tparent_id = ".$serie->serie_id;
109                $notice_count = mysql_result(mysql_query($notice_count_sql), 0, 0);
110               
111            $tr_javascript=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='$pair_impair'\"  ";
112        $serie_list.= "<tr class='$pair_impair' $tr_javascript style='cursor: pointer'>
113                          <td valign='top' onmousedown=\"document.location='./autorites.php?categ=series&sub=serie_form&id=$serie->serie_id&user_input=".rawurlencode(stripslashes($user_input))."&nbr_lignes=$nbr_lignes&page=$page';\">
114                                          $serie->serie_name
115                                          </td>";
116               
117                //Numéros d'autorite
118                if($num_auth_present){
119                        $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='serie' AND num_authority='".$serie->serie_id."' AND TRIM(authority_number) !='' GROUP BY authority_number,origin_authorities_name,origin_authorities_country ORDER BY authority_favorite DESC, origin_authorities_name";
120                        $res_aut=mysql_query($requete,$dbh);
121                        if($res_aut && mysql_num_rows($res_aut)){
122                                $serie_list .= "<td>";
123                                $first=true;
124                                while ($aut = mysql_fetch_object($res_aut)) {
125                                        if(!$first)$serie_list .=", ";
126                                        $serie_list .=htmlentities($aut->authority_number,ENT_QUOTES,$charset);
127                                        if($tmp=trim($aut->origin_authorities_name)){
128                                                $serie_list .=htmlentities(" (".$aut->origin_authorities_name.")",ENT_QUOTES,$charset);
129                                        }
130                                        $first=false;
131                                }
132                                $serie_list .= "</td>";
133                        }else{
134                                $serie_list .= "<td>&nbsp;</td>";
135                        }
136                }
137               
138                if($notice_count && $notice_count!=0)
139                        $serie_list.= "<td onmousedown=\"document.location='./catalog.php?categ=search&mode=10&etat=aut_search&aut_type=tit_serie&aut_id=$serie->serie_id'\">".$notice_count."</td>";
140                else $serie_list.= "<td>&nbsp;</td>";
141                $serie_list.= "</tr>";
142        }
143        mysql_free_result($res);
144       
145        if (!$last_param) $nav_bar = aff_pagination ($url_base, $nbr_lignes, $nb_per_page, $page, 10, false, true) ;
146        else $nav_bar = "";     
147       
148        // affichage du résultat
149        list_serie($user_input, $serie_list, $nav_bar);
150
151} else {
152        // la requête n'a produit aucun résultat
153        serie::search_form();
154        error_message($msg[152], str_replace('!!titre_cle!!', stripslashes($user_input), $msg[335]), 0, './autorites.php?categ=series&sub=&id=');
155}
Note: See TracBrowser for help on using the repository browser.