source: pmb4.2/trunk/fuentes/pmb/autorites/subjects/default.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: 11.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// $Id: default.inc.php,v 1.45 2015-04-03 11:16:24 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9$base_url = "./autorites.php?categ=categories&sub=&id=0&parent=";
10
11// inclusions diverses
12include("$include_path/templates/category.tpl.php");
13require_once("$class_path/category.class.php");
14require_once("$class_path/thesaurus.class.php");
15require_once("$include_path/misc.inc.php");
16
17if (!$parent) $parent = 0;
18if (!$id) $id = 0;
19
20
21//recuperation du thesaurus session
22if(!$id_thes) {
23        $id_thes = thesaurus::getSessionThesaurusId();
24} else {
25        thesaurus::setSessionThesaurusId($id_thes);
26}
27
28$liste_thesaurus = '';
29$browser_top = '';
30
31
32//affichage du selectionneur de thesaurus et du lien vers les thésaurus
33$liste_thesaurus = thesaurus::getThesaurusList();
34$sel_thesaurus = '';
35$lien_thesaurus = '';
36
37if ($thesaurus_mode_pmb != 0) {  //la liste des thesaurus n'est pas affichée en mode monothesaurus
38        $sel_thesaurus = "<select class='saisie-30em' id='id_thes' name='id_thes' ";
39        $sel_thesaurus.= "onchange = \"document.location = '".$base_url."&id_thes='+document.getElementById('id_thes').value; \">" ;
40        foreach($liste_thesaurus as $id_thesaurus=>$libelle_thesaurus) {
41                $sel_thesaurus.= "<option value='".$id_thesaurus."' "; ;
42                if ($id_thesaurus == $id_thes) $sel_thesaurus.= " selected";
43                $sel_thesaurus.= ">".htmlentities($libelle_thesaurus,ENT_QUOTES, $charset)."</option>";
44        }
45        $sel_thesaurus.= "<option value=-1 ";
46        if ($id_thes == -1) $sel_thesaurus.= "selected ";
47        $sel_thesaurus.= ">".htmlentities($msg['thes_all'],ENT_QUOTES, $charset)."</option>";
48        $sel_thesaurus.= "</select>&nbsp;";
49
50        $lien_thesaurus = "<a href='./autorites.php?categ=categories&sub=thes'>".$msg[thes_lien]."</a>";
51
52}       
53$user_query=str_replace("<!-- sel_thesaurus -->",$sel_thesaurus,$user_query);
54$user_query=str_replace("<!-- lien_thesaurus -->",$lien_thesaurus,$user_query);
55
56if ($id_thes>=1) 
57        $lien_imprimer_thesaurus = "&nbsp;<a href='#' onClick=\"openPopUp('./print_thesaurus.php?current_print=2&action=print_prepare&aff_num_thesaurus=".$id_thes."','print', 500, 600, -2, -2, 'scrollbars=yes,menubar=0,resizable=yes'); return false;\">".$msg[print_thesaurus]."</a> ";
58else 
59        $lien_imprimer_thesaurus = "" ;
60$user_query=str_replace("<!-- imprimer_thesaurus -->",$lien_imprimer_thesaurus,$user_query);
61
62
63//affichage du choix de langue pour la recherche
64$sel_langue = "<div class='row'>";
65$sel_langue.= "<input type='checkbox' name='lg_search' id='lg_search' value='1' />&nbsp;".htmlentities($msg['thes_sel_langue'],ENT_QUOTES, $charset);
66$sel_langue.= "</div><br />";
67$user_query=str_replace("<!-- sel_langue -->",$sel_langue,$user_query);
68$user_query=str_replace("!!user_input!!",htmlentities(stripslashes($user_input),ENT_QUOTES, $charset),$user_query);
69
70// nombre de références par pages
71if ($nb_per_page_author != "") 
72        $nb_per_page = $nb_per_page_author ;
73        else $nb_per_page = 10;
74
75
76if ($id_thes == -1) { //on affiche la liste des thesaurus
77       
78        $odd_even = 0;
79       
80        foreach($liste_thesaurus as $id_thesaurus=>$libelle_thesaurus) {
81                if ($odd_even==0) {
82                        $browser_content .= "   <tr class='odd'>";
83                        $odd_even=1;
84                } else if ($odd_even==1) {
85                        $browser_content .= "   <tr class='even'>";
86                        $odd_even=0;
87                }
88
89                $browser_content.= "<td><a href='".$base_url."&id_thes=".$id_thesaurus."'>".htmlentities($libelle_thesaurus,ENT_QUOTES, $charset)."</a>";
90                $browser_content.= "</td></tr>";       
91        }               
92       
93} else {
94
95
96        $thes = new thesaurus($id_thes);
97       
98        //si le parent n'est pas passe, on positionne
99        //le parent comme étant le noeud racine du thesaurus
100        if (!$parent) {
101                $parent = $thes->num_noeud_racine;
102        }
103       
104        //Si le parent n'as pas de fils, on remonte au noeud supérieur.
105        if (!noeuds::hasChild($parent)) {
106                $noeud=new noeuds($parent);
107                $parent = $noeud->num_parent;
108        }
109       
110       
111        if($thes == NULL){
112                $browser_content = $msg[4051];
113                affiche();
114                exit;
115        }
116
117// on récupére le nombre de lignes qui vont bien
118        $requete = "select count(1) " ;
119        $requete.= "from noeuds ";
120        $requete.= "where ";
121        $requete.= "noeuds.num_thesaurus = '".$id_thes."'  ";
122        if (!$last_param) $requete.= "and noeuds.num_parent = '".$parent."' ";
123        if ($last_param)
124                $requete .= $limit_param;
125        $res = pmb_mysql_query($requete, $dbh);
126        $nbr_lignes = pmb_mysql_result($res, 0, 0);
127
128        if(!$page) $page=1;
129        $debut =($page-1)*$nb_per_page; 
130
131        $nbmax_cat=500;
132        $pagine=false;
133       
134        $requete = "select catdef.num_noeud, ";
135        $requete.= "autorite, ";
136        $requete.= "if (catlg.num_noeud is null, catdef.libelle_categorie, catlg.libelle_categorie ) as lib ";
137        $requete.= "from noeuds left join categories as catdef on noeuds.id_noeud = catdef.num_noeud and catdef.langue = '".$thes->langue_defaut."' ";
138        $requete.= "left join categories as catlg on catdef.num_noeud = catlg.num_noeud and catlg.langue = '".$lang."' ";
139        $requete.= "where ";
140        $requete.= "noeuds.num_thesaurus = '".$id_thes."'  ";
141        if ($last_param) {
142                $requete .= $tri_param." ";
143                $requete.= $limit_param." ";
144        } else {
145                $requete.= "and noeuds.num_parent = '".$parent."' ";
146                $requete.= "order by lib ";
147                if($nbr_lignes>$nbmax_cat){
148                        $nb_per_page = $nbmax_cat;
149                        $pagine = true;
150                        $debut =($page-1)*$nb_per_page;
151                        $requete.= "limit ".$debut.",".$nb_per_page." ";
152                }
153        }
154        $result = pmb_mysql_query($requete, $dbh);
155               
156        if(pmb_mysql_num_rows($result)) {
157               
158                $browser_top = "<a href='./autorites.php?categ=categories&sub=&parent=0&id=0'>";
159                $browser_top.= "<img src='./images/top.gif' border='0' hspace='3' align='middle'></a>";
160               
161                if (!$last_param) {
162                        // récupération de la 1ère entrée et création du header
163                        $cat = pmb_mysql_fetch_row($result);
164                        $tcateg =  new category($cat[0]);
165                        if(sizeof($tcateg->path_table)) {
166                                for($i=0; $i < sizeof($tcateg->path_table) - 1; $i++){
167                                        $browser_header ? $browser_header .= '&gt;' : $browser_header = '';
168                                        $browser_header .= "<a href='";
169                                        $browser_header .= $base_url;
170                                        $browser_header .= $tcateg->path_table[$i]['id'];
171                                        $browser_header .= "' title='".$tcateg->path_table[$i]['commentaire']."'>";
172                                        $browser_header .= $tcateg->path_table[$i]['libelle'];
173                                        $browser_header .= "</a>";
174                                }
175                                $browser_header ? $browser_header .= '&gt;<strong>' : $browser_header = '<strong>';
176                                $browser_header .= $tcateg->path_table[sizeof($tcateg->path_table) - 1]['libelle'];
177                                $browser_header .= '</strong>';
178                        }
179                }
180               
181                $browser_content .= "<tr>
182                        <th>".$msg[103]."</th>
183                        <!--!!col_num_autorite!!-->
184                        <th>".$msg["count_notices_assoc"]."</th>
185                        </tr>";
186               
187                $num_auth_present=false;
188                $req="SELECT id_authority_source FROM authorities_sources WHERE authority_type='category' AND TRIM(authority_number) !='' LIMIT 1";
189                $res_aut=pmb_mysql_query($req,$dbh);
190                if($res_aut && pmb_mysql_num_rows($res_aut)){
191                        $browser_content=str_replace("<!--!!col_num_autorite!!-->","<th>".$msg["authorities_number"]."</th>",$browser_content);
192                        $num_auth_present=true;
193                }
194       
195                $odd_even=0;
196                pmb_mysql_data_seek($result, 0);
197                while($cat = pmb_mysql_fetch_row($result)) {
198                        $tcateg =  new category($cat[0]);
199                        if ($odd_even==0) {
200                                $browser_content .= "   <tr class='odd'>";
201                                $odd_even=1;
202                        } else if ($odd_even==1) {
203                                $browser_content .= "   <tr class='even'>";
204                                $odd_even=0;
205                        }
206                       
207                        $notice_count = $tcateg->notice_count(false);
208                       
209                        $browser_content .= "<td>";
210                        if($tcateg->has_child) {
211                                $browser_content .= "<a href='$base_url".$tcateg->id."'>";
212                                $browser_content .= "<img src='./images/folderclosed.gif' hspace='3' border='0'></a>";
213                        } else {
214                                $browser_content .= "<img src='./images/doc.gif' hspace='3' border='0'>";
215                        }
216                        if ($cat[1] || $tcateg->commentaire) {
217                                $zoom_comment = "<div id='zoom_comment".$tcateg->id."' style='border: solid 2px #555555; background-color: #FFFFFF; position: absolute; display:none; z-index: 2000;'>";
218                                if ($cat[1]) $zoom_comment.=htmlentities('('.$cat[1].') ', ENT_QUOTES, $charset);
219                                if ($tcateg->commentaire) $zoom_comment.= htmlentities($tcateg->commentaire,ENT_QUOTES, $charset);
220                                $zoom_comment.="</div>";
221                                $java_comment = " onmouseover=\"z=document.getElementById('zoom_comment".$tcateg->id."'); z.style.display=''; \" onmouseout=\"z=document.getElementById('zoom_comment".$tcateg->id."'); z.style.display='none'; \"" ;
222                        } else {
223                                $zoom_comment = "" ;
224                                $java_comment = "" ;
225                        }
226                        $browser_content .= "<a href='./autorites.php?categ=categories&sub=categ_form&parent=".$parent."&id=".$tcateg->id."&nbr_lignes=".$nbr_lignes."&page=".$page."' $java_comment >";
227                        $browser_content .= $tcateg->libelle;
228                        $browser_content .= '</a>';
229                        $browser_content .= $zoom_comment.'</td>';
230                       
231                        //Numéros d'autorite
232                        if($num_auth_present){
233                                $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='category' AND num_authority='".$tcateg->id."' AND TRIM(authority_number) !='' GROUP BY authority_number,origin_authorities_name,origin_authorities_country ORDER BY authority_favorite DESC, origin_authorities_name";
234                                $res_aut=pmb_mysql_query($requete,$dbh);
235                                if($res_aut && pmb_mysql_num_rows($res_aut)){
236                                        $browser_content .= "<td>";
237                                        $first=true;
238                                        while ($aut = pmb_mysql_fetch_object($res_aut)) {
239                                                if(!$first)$browser_content .=", ";
240                                                $browser_content .=htmlentities($aut->authority_number,ENT_QUOTES,$charset);
241                                                if($tmp=trim($aut->origin_authorities_name)){
242                                                        $browser_content .=htmlentities(" (".$aut->origin_authorities_name.")",ENT_QUOTES,$charset);
243                                                }
244                                                $first=false;
245                                        }
246                                        $browser_content .= "</td>";
247                                }else{
248                                        $browser_content .= "<td>&nbsp;</td>";
249                                }
250                        }
251                       
252                        if($notice_count && $notice_count!=0)
253                                $browser_content .= "<td style='cursor: pointer' onmousedown=\"document.location='./catalog.php?categ=search&mode=1&etat=aut_search&aut_type=categ&aut_id=$tcateg->id'\">".$notice_count."</td>";
254                        else $browser_content .= "<td>&nbsp;</td>";
255                        $browser_content .='</tr>';
256                } //fin while
257        } else {
258                $browser_content = $msg[4051];
259        }
260}       
261       
262        //Barre de navigation
263        $url_base="./autorites.php?categ=categories&sub=&id_thes=".$id_thes."&parent=".$parent;
264        if (!$last_param && $pagine)
265                $nav_bar = aff_pagination ($url_base, $nbr_lignes, $nb_per_page, $page, 10, false, true) ;
266        else $nav_bar = "";
267
268        affiche($nav_bar);
269        exit;
270       
271
272// création du tableau à partir du template et affichage
273function affiche($nav_bar='') {
274       
275        global $categ_browser;
276        global $browser_top;
277        global $liste_thesaurus;
278        global $browser_header;
279        global $browser_content;
280        global $parent;
281        global $user_query;
282       
283        $categ_browser = str_replace('!!browser_top!!', $browser_top, $categ_browser);         
284        $categ_browser = str_replace('!!liste_thesaurus!!', $liste_thesaurus, $categ_browser);         
285        $categ_browser = str_replace('!!browser_header!!', $browser_header, $categ_browser);
286        $categ_browser = str_replace('!!browser_content!!', $browser_content, $categ_browser);
287        $categ_browser = str_replace('!!id_parent!!', $parent, $categ_browser);
288        categ_browser::search_form($parent);
289        print pmb_bidi($categ_browser);
290        if ($nav_bar) print $nav_bar;
291       
292}
293
294
295?>
Note: See TracBrowser for help on using the repository browser.