\n";
if (isset($back_section_see) && $back_section_see) $url_section_see = $back_section_see;
else $url_section_see = "index.php?lvl=section_see";
print "
";
if ($objloc->commentaire || $objloc->location_pic) {
print "";
}
$Fnm = "includes/mw_liste_type.inc.php";
if (file_exists($Fnm)) { include($Fnm);}
print "
\n";
//Il n'y a pas de section sélectionnée
$id = intval($id);
show_localisation::set_num_section($id);
if (!$id) {
print show_localisation::get_display_sections_list();
if ($objloc->show_a2z) {
require_once($base_path."/classes/perio_a2z.class.php");
$a2z=new perio_a2z(0,$opac_perio_a2z_abc_search,$opac_perio_a2z_max_per_onglet);
print $perio_a2z=$a2z->get_form();
}
} else {
//enregistrement de l'endroit actuel dans la session
rec_last_authorities();
$location = intval($location);
if (!empty($back_surloc)) {
$ajout_back = "&back_surloc=".rawurlencode($back_surloc)."&back_loc=".rawurlencode($url_loc).$param_section_see;
} else {
$ajout_back = "";
}
$requete="select section_libelle, section_pic from docs_section where idsection=$id";
$section_libelle=pmb_mysql_result(pmb_mysql_query($requete),0,0);
$section_pic=pmb_mysql_result(pmb_mysql_query($requete),0,1);
if ($section_pic) $image_src = $section_pic ;
else $image_src = get_url_icon("rayonnage-small.png") ;
print "
";
if (!file_exists($Fnm)) {
print " ";
}
$requete="SELECT num_pclass FROM docsloc_section WHERE num_location='".$location."' AND num_section='".$id."' ";
$res=pmb_mysql_query($requete);
$type_aff_navigopac=0;
if(pmb_mysql_num_rows($res)){
$type_aff_navigopac=pmb_mysql_result($res,0,0);
}
//droits d'acces emprunteur/notice
show_localisation::init_query_restricts();
if($type_aff_navigopac == 0){//Pas de navigation
print pmb_bidi($section_libelle);
print "
\n";
print "
";
//On récupère les notices de monographie avec au moins un exemplaire dans la localisation et la section
$requete="create temporary table temp_n_id ENGINE=MyISAM (
".show_localisation::get_query_records_items('notice_id', '', 'notice_id')."
)";
pmb_mysql_query($requete);
//On récupère les notices de périodique avec au moins un exemplaire d'un bulletin dans la localisation et la section
$requete="INSERT INTO temp_n_id (
".show_localisation::get_query_serials_items('notice_id', '', 'notice_id')."
)";
pmb_mysql_query($requete);
@pmb_mysql_query("alter table temp_n_id add index(notice_id)");
$requete = "SELECT notices.notice_id FROM temp_n_id JOIN notices ON notices.notice_id=temp_n_id.notice_id GROUP BY notices.notice_id";
$nbr_lignes=pmb_mysql_num_rows(pmb_mysql_query($requete));
show_localisation::affiche_notice_navigopac($requete);
}elseif($type_aff_navigopac == -1){//Navigation par auteurs
//On récupère les notices de monographie avec au moins un exemplaire dans la localisation et la section
$requete="create temporary table temp_n_id ENGINE=MyISAM (
".show_localisation::get_query_records_items('notice_id', '', 'notice_id')."
)";
pmb_mysql_query($requete);
//On récupère les notices de périodique avec au moins un exemplaire d'un bulletin dans la localisation et la section
$requete="INSERT INTO temp_n_id (
".show_localisation::get_query_serials_items('notice_id', '', 'notice_id')."
)";
pmb_mysql_query($requete);
@pmb_mysql_query("alter table temp_n_id add index(notice_id)");
if(!$plettreaut){
$nb_auteur_max=18;
//On a pas encore choisi de première lettre d'auteur
print pmb_bidi($section_libelle);
print " > ".$msg["navigopac_aut"];
print "\n";
//On va chercher tous les auteurs des notices
$requete = "SELECT IF(SUBSTRING(TRIM(index_author),1,1) != '' ,SUBSTRING(TRIM(index_author),1,1),'vide') as plettre, COUNT(1) as nb FROM temp_n_id LEFT JOIN responsability ON responsability_notice=notice_id LEFT JOIN authors ON author_id=responsability_author GROUP BY IF(index_author IS NOT NULL and TRIM(index_author) !='',SUBSTRING(TRIM(index_author),1,1),index_author) ORDER BY 1";
$res=pmb_mysql_query($requete);
$tab_aut=array();
while ($ligne = pmb_mysql_fetch_object($res)) {
//echo " Lettre : ".$ligne->plettre." Nombre : ".$ligne->nb."
";
if($ligne->plettre == "vide"){
if($tab_aut[$ligne->plettre]){
$nb=$tab_aut[$ligne->plettre][0]+$ligne->nb;
$tab_aut[$ligne->plettre]=array($nb,$msg["navigopac_ss_aut"]);
}else{
$tab_aut[$ligne->plettre]=array($ligne->nb,$msg["navigopac_ss_aut"]);
}
}elseif(preg_match("#[0-9]#",$ligne->plettre)){
if($tab_aut["num"]){
$nb=$tab_aut["num"][0]+$ligne->nb;
$tab_aut["num"]=array($nb,"0-9");
}else{
$tab_aut["num"]=array($ligne->nb,"0-9");
}
}else{
$tab_aut[mb_strtoupper($ligne->plettre)]=array($ligne->nb,mb_strtoupper($ligne->plettre));
}
}
while(count($tab_aut) > $nb_auteur_max){//Pour minimiser le nombre d'étagère à afficher
//Je vais chercher deux valeurs qui peuvent être regroupées
$coupl_plus_petit=10000000;
$ancienne_valeur=0;
$ancienne_lettre="";
$lettre_a_regoupe=array();
foreach ($tab_aut as $key => $value ) {
if($key != "num" && $key != "vide"){
if($ancienne_valeur && ($ancienne_valeur + $value[0] < $coupl_plus_petit)){
$coupl_plus_petit=$ancienne_valeur + $value[0];
$lettre_a_regoupe=array($ancienne_lettre,$key);
}
$ancienne_valeur=$value[0];
$ancienne_lettre=$key;
}
}
//J'en regroupe deux
$new_key=substr($lettre_a_regoupe[0],0,1)."-".substr($lettre_a_regoupe[1],-1);
$tab_aut[$new_key]=array(($tab_aut[$lettre_a_regoupe[0]][0]*1+$tab_aut[$lettre_a_regoupe[1]][0]*1),$new_key);
unset($tab_aut[$lettre_a_regoupe[0]]);
unset($tab_aut[$lettre_a_regoupe[1]]);
ksort($tab_aut);
}
print "
";
$n=0;
foreach ( $tab_aut as $key => $value ) {
if ($n==0) print "";
print "".htmlentities($value[1],ENT_QUOTES,$charset)." | ";
$n++;
if ($n==$opac_nb_sections_per_line) { print "
"; $n=0; }
}
if ($n!=0) {
while ($n<$opac_nb_sections_per_line) {
print " | ";
$n++;
}
print "";
}
print "
";
print "
";
$requete = "SELECT notices.notice_id FROM temp_n_id JOIN notices ON notices.notice_id=temp_n_id.notice_id GROUP BY notices.notice_id";
$nbr_lignes=pmb_mysql_num_rows(pmb_mysql_query($requete));
show_localisation::affiche_notice_navigopac($requete);
}else{
//On sait par quoi doit commencer le nom de l'auteur
print "
";
if($plettreaut == "num"){
$requete = "SELECT notices.notice_id FROM temp_n_id JOIN responsability ON responsability_notice=temp_n_id.notice_id JOIN authors ON author_id=responsability_author and trim(index_author) REGEXP '^[0-9]' JOIN notices ON notices.notice_id=temp_n_id.notice_id GROUP BY notices.notice_id";
print " > ".$msg["navigopac_aut_com_par_chiffre"];
}elseif($plettreaut == "vide"){
$requete = "SELECT notices.notice_id FROM temp_n_id LEFT JOIN responsability ON responsability_notice=temp_n_id.notice_id LEFT JOIN notices ON notices.notice_id=temp_n_id.notice_id WHERE responsability_author IS NULL GROUP BY notices.notice_id";
print " > ".$msg["navigopac_ss_aut"];
}else{
$requete = "SELECT notices.notice_id FROM temp_n_id JOIN responsability ON responsability_notice=temp_n_id.notice_id JOIN authors ON author_id=responsability_author and trim(index_author) REGEXP '^[".$plettreaut."]' JOIN notices ON notices.notice_id=temp_n_id.notice_id GROUP BY notices.notice_id";
print " > ".$msg["navigopac_aut_com_par"]." ".$plettreaut;
}
$nbr_lignes=pmb_mysql_num_rows(pmb_mysql_query($requete));
print "\n";
print "