source: pmb4.1/trunk/fuentes/pmb/admin/opac/navigation_opac.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: 6.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: navigation_opac.inc.php,v 1.4 2012-11-29 08:21:31 dgoron Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9// gestion du lien entre la localisation et la section et le type de navigation
10
11$admin_expl_nagopac_ligne_loc="
12        <tr style='height:2.5em;'>
13                <td colspan='2'><strong>!!libelle_localisation!!</strong></td>
14        </tr>
15        <tr>
16                <td colspan='2'><input id='a2z[!!location_id!!]' name='a2z[!!location_id!!]' type='checkbox' value='1' !!checked!!/><label for='a2z[!!location_id!!]' class='etiquette'>".htmlentities($msg['admin_opac_location_showa2z'],ENT_QUOTES, $charset)."</label></td>
17        </tr>
18        <tr>
19                <th>".$msg[295]."</th>
20                <th>".$msg["exemplaire_admin_navigopac_pclass_utilise"]."</th>
21        </tr>";
22
23$admin_expl_nagopac_new_ligne="
24                <!-- ligne_loc -->
25                <tr class='!!pair_impair!!' onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='!!pair_impair!!'\" >
26                        <td>!!libelle_section!!</td>
27                        <td>!!plan_classement!!
28                                        <input type='hidden' value='!!location_id!!' name='id_localisation_!!num_ligne!!'/>
29                                        <input type='hidden' value='!!section_id!!' name='id_section_!!num_ligne!!'/>
30                        </td>
31                </tr>
32                <!-- nouvelle ligne -->";
33
34$admin_expl_nagopac="
35<form class='form-".$current_module."' name='navigopac' method='post' action=\"./admin.php?categ=opac&sub=navigopac&action=save\">
36        <h3>".$msg["exemplaire_admin_navigopac_entete_form"]."</h3>
37        <div class='form-contenu'>
38        <!-- info_enregistrée -->
39        <table>
40                <!-- nouvelle ligne -->
41        </table>
42        </div>
43        <div class='row'>
44                <input class='bouton' type='submit' value='".$msg[77]."'/>
45        </div>
46        <div class='row'></div>
47</form>";
48
49function show_navigopac($dbh){
50        global $msg,$thesaurus_classement_mode_pmb,$thesaurus_classement_defaut;
51        global $charset;
52        global $admin_expl_nagopac,$admin_expl_nagopac_new_ligne,$admin_expl_nagopac_ligne_loc;// les templates utilisés
53
54        $requete = "SELECT location_libelle,section_libelle,num_pclass,idsection,idlocation,show_a2z FROM docsloc_section JOIN docs_location ON num_location=idlocation JOIN docs_section ON num_section=idsection ORDER BY location_libelle,section_libelle";
55        $res = mysql_query($requete, $dbh);
56        $nbr = mysql_num_rows($res);
57
58        $requete_pclass = "SELECT id_pclass,name_pclass FROM pclassement";
59        $res_pclass = mysql_query($requete_pclass, $dbh);
60        $tabl_pclass=array();
61        if(mysql_num_rows($res_pclass)){
62                while ($ligne=mysql_fetch_object($res_pclass)) {
63                        $tabl_pclass[$ligne->id_pclass]=$ligne->name_pclass;
64                }
65        }
66        $parity=1;
67        $old_localisation="";
68        for($i=0;$i<$nbr;$i++) {
69                $row=mysql_fetch_object($res);
70
71                //on met dans le formulaire les champs caché
72                $new_ligne=$admin_expl_nagopac_new_ligne;
73                $new_ligne=str_replace("!!num_ligne!!",$i,$new_ligne);
74                $new_ligne=str_replace("!!location_id!!",$row->idlocation,$new_ligne);
75                $new_ligne=str_replace("!!section_id!!",$row->idsection,$new_ligne);
76
77                //Localisation
78                if($row->location_libelle != $old_localisation){//Si on a changé de localisation
79                        $new_ligne=str_replace("<!-- ligne_loc -->",$admin_expl_nagopac_ligne_loc,$new_ligne);
80                        $new_ligne=str_replace("!!libelle_localisation!!",htmlentities($row->location_libelle,ENT_QUOTES,$charset),$new_ligne);
81                        $new_ligne=str_replace("!!location_id!!",$row->idlocation,$new_ligne);
82                        $new_ligne=str_replace("!!checked!!",(($row->show_a2z)?'checked="checked"':''),$new_ligne);
83                        $old_localisation=$row->location_libelle;//On enregistre le dernier libellé
84                $parity=1;
85            }
86
87            //alternance des lignes
88            if ($parity % 2) {
89                        $pair_impair = "even";
90                }else{
91                        $pair_impair = "odd";
92                }
93                $new_ligne=str_replace("!!pair_impair!!",$pair_impair,$new_ligne);
94                $parity+=1;
95
96                //Section
97                $new_ligne=str_replace("!!libelle_section!!",htmlentities($row->section_libelle,ENT_QUOTES,$charset),$new_ligne);
98
99                //Plan de classement
100                //On affiche un selecteur
101                $selector= "<select name='pclass_".$i."' id='pclass_".$i."' style='cursor: pointer'>";
102                $selector .= "<option value='-1'";
103                if ($row->num_pclass == -1) {
104                        $selector .= 'SELECTED';
105                }
106                $selector .= ">".$msg["exemplaire_admin_navigopac_par_aut"]."</option>";
107
108                $selector .= "<option value='0'";
109                if ($row->num_pclass == 0) {
110                        $selector .= 'SELECTED';
111                }
112                $selector .= ">".$msg["exemplaire_admin_navigopac_pas_navig"]."</option>";
113                if($thesaurus_classement_mode_pmb && count($tabl_pclass) > 1){
114                        foreach ( $tabl_pclass as $key => $value ) {
115                        $selector .= "<option value='".$key."'";
116                        if ($key == $row->num_pclass ) {
117                                        $selector .= 'SELECTED';
118                                }
119                                $selector .= ">";
120                                $selector .= htmlentities($value,ENT_QUOTES,$charset)."</option>";
121                        }
122                }else{
123                        $selector .= "<option value='".$thesaurus_classement_defaut."'";
124                        if ($thesaurus_classement_defaut == $row->num_pclass ) {
125                                $selector .= 'SELECTED';
126                        }
127                        $selector .= ">";
128                        $selector .= htmlentities($tabl_pclass[$thesaurus_classement_defaut],ENT_QUOTES,$charset)."</option>";
129                }
130                $selector .=  "</select>";
131                $new_ligne=str_replace("!!plan_classement!!",$selector,$new_ligne);
132                //On ajoute la nouvelle ligne au formulaire
133                $admin_expl_nagopac=str_replace("<!-- nouvelle ligne -->",$new_ligne,$admin_expl_nagopac);
134        }
135        print pmb_bidi($admin_expl_nagopac);
136}
137
138switch($action) {
139        case 'save':
140                $i=0;
141                $id_pclass="pclass_".$i;
142                while(isset($$id_pclass)){
143                        //On enregistre la valeur
144                        $idsection="id_section_".$i;
145                        $idlocalisation="id_localisation_".$i;
146                        $requete="UPDATE docsloc_section SET num_pclass='".$$id_pclass."' WHERE num_location='".$$idlocalisation."' AND num_section='".$$idsection."' ";
147                        mysql_query($requete,$dbh);
148                        $i++;
149                        $id_pclass="pclass_".$i;
150                }
151
152                //a2z
153                $q = "update docs_location set show_a2z='0'";
154                mysql_query($q,$dbh);
155                if (is_array($a2z) && count($a2z)) {
156                        $q = "update docs_location set show_a2z='1' where idlocation in (".implode(',',array_keys($a2z)).")";
157                        mysql_query($q,$dbh);
158                }
159                $admin_expl_nagopac=str_replace("<!-- info_enregistrée -->","<div class='erreur'>".$msg["exemplaire_admin_navigopac_modif_sauv"]."</div>",$admin_expl_nagopac);
160                show_navigopac($dbh);
161                break;
162        default:
163                show_navigopac($dbh);
164                break;
165}
Note: See TracBrowser for help on using the repository browser.