Ejemplo n.º 1
0
 function do_sel_list()
 {
     global $tpl_opac_view_list_sel_tableau, $tpl_opac_view_list_sel_tableau_ligne;
     global $pmb_opac_view_class;
     global $base_path, $include_path, $lang, $msg;
     global $charset;
     // on reprend...
     global $pmb_opac_view_activate;
     $j = 0;
     $list = $disabled = "";
     //on a une classe spécifique pour la gestion des vues...
     //on ne peut pas proposer le forcage, mais on peut peut etre afficher les valeurs
     if ($pmb_opac_view_class) {
         $tpl = "\n\t\t<div class='row'>" . htmlentities($msg['opac_view_class_exists'], ENT_QUOTES, $charset) . "</div>";
     } else {
         if ($pmb_opac_view_activate == 2) {
             //définition en administration, on va chercher les valeurs...
             $qt = new quota("OPAC_VIEW", $include_path . "/quotas/own/" . $lang . "/opac_views.xml");
             //Tableau de passage des paramètres
             if ($this->id_empr) {
                 $struct["READER"] = $this->id_empr ? $this->id_empr : 0;
                 $values = $qt->get_quota_value_with_id($struct);
             } else {
                 $values = $qt->apply_conflict(array(""));
             }
             if ($values['VALUE']) {
                 $allowed = unserialize($values['VALUE']);
             }
             //on a peut etre déjà forcer
             if (count($this->view_list_empr) == 0) {
                 $disabled = "disabled='disabled'";
             }
         }
         //OPAC Classique
         $line = str_replace('!!class!!', "even", $tpl_opac_view_list_sel_tableau_ligne);
         $line = str_replace('!!name!!', $msg['opac_view_classic_opac'], $line);
         $line = str_replace('!!comment!!', $msg['opac_view_classic_opac_comment'], $line);
         $line = str_replace('!!opac_view_id!!', 0, $line);
         $tr_surbrillance = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='even'\" ";
         $line = str_replace('!!tr_surbrillance!!', $tr_surbrillance, $line);
         if ($disabled == "") {
             if (in_array(0, $this->view_list_empr) || !count($this->view_list_empr)) {
                 $checked = "checked='checked'";
             } else {
                 $checked = "";
             }
             $line = str_replace("!!checked!!", $checked, $line);
             if ($this->view_list_empr_default == 0) {
                 $checked_default = "checked='checked'";
             } else {
                 $checked_default = "";
             }
             $line = str_replace("!!radio_checked!!", $checked_default, $line);
             $line = str_replace("!!disabled!!", $disabled, $line);
         } else {
             if (in_array(0, $allowed['allowed'])) {
                 $checked = "checked='checked'";
             } else {
                 $checked = "";
             }
             $line = str_replace("!!checked!!", $checked, $line);
             if ($allowed['default'] == 0) {
                 $checked_default = "checked='checked'";
             } else {
                 $checked_default = "";
             }
             $line = str_replace("!!radio_checked!!", $checked_default, $line);
         }
         $line = str_replace("!!disabled!!", $disabled, $line);
         $liste .= $line;
         //Pour les vues
         for ($i = 0; $i < count($this->opac_views_list); $i++) {
             if ($this->opac_views_list[$i]->visible == 0) {
                 continue;
             }
             if ($this->opac_views_list[$i]->visible > 0) {
                 $j++;
             }
             $line = str_replace('!!class!!', $j % 2 ? "odd" : "even", $tpl_opac_view_list_sel_tableau_ligne);
             $line = str_replace('!!name!!', $this->opac_views_list[$i]->name, $line);
             $line = str_replace('!!comment!!', $this->opac_views_list[$i]->comment, $line);
             $line = str_replace('!!opac_view_id!!', $this->opac_views_list[$i]->id, $line);
             $tr_surbrillance = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='" . ($j % 2 ? "odd" : "even") . "'\" ";
             $line = str_replace('!!tr_surbrillance!!', $tr_surbrillance, $line);
             //gestion simple ou forçage pour l'utilisateur...
             if ($disabled == "") {
                 if (in_array($this->opac_views_list[$i]->id, $this->view_list_empr)) {
                     $checked = "checked='checked'";
                 } else {
                     $checked = "";
                 }
                 $line = str_replace("!!checked!!", $checked, $line);
                 if ($this->view_list_empr_default == $this->opac_views_list[$i]->id) {
                     $checked_default = "checked='checked'";
                 } else {
                     $checked_default = "";
                 }
                 $line = str_replace("!!radio_checked!!", $checked_default, $line);
             } else {
                 if (in_array($this->opac_views_list[$i]->id, $allowed['allowed'])) {
                     $checked = "checked='checked'";
                 } else {
                     $checked = "";
                 }
                 $line = str_replace("!!checked!!", $checked, $line);
                 if ($allowed['default'] == $this->opac_views_list[$i]->id) {
                     $checked_default = "checked='checked'";
                 } else {
                     $checked_default = "";
                 }
                 $line = str_replace("!!radio_checked!!", $checked_default, $line);
             }
             $line = str_replace("!!disabled!!", $disabled, $line);
             $liste .= $line;
         }
         $tpl = str_replace('!!lignes_tableau!!', $liste, $tpl_opac_view_list_sel_tableau);
         if ($pmb_opac_view_activate == 2 && !$pmb_opac_view_class) {
             $forcage = "\n\t\t\t<label for='force'>" . $msg['opac_view_allow_force'] . "</label>&nbsp;\n\t\t\t&nbsp;" . $msg['40'] . "<input type='radio' name='force_opac_view_choice' onclick='allow_forcage();' value='1' " . ($disabled != "" ? "" : "checked") . "/>\n\t\t\t&nbsp;" . $msg['39'] . "<input type='radio' name='force_opac_view_choice' onclick='disable_forcage();' value='0' " . ($disabled == "" ? "" : "checked") . "/>\n\t\t\t<script type='text/javascript'>\n\t\t\t\tfunction allow_forcage(){\n\t\t\t\t\tvar checkboxes = document.forms.empr_form['form_empr_opac_view[]'];\n\t\t\t\t\tvar radios = document.forms.empr_form['form_empr_opac_view_default'];\n\t\t\t\t\tfor (var i=0 ; i<checkboxes.length ; i++){\n\t\t\t\t\t\tcheckboxes[i].disabled= false;\n\t\t\t\t\t}\n\t\t\t\t\tfor (var i=0 ; i<radios.length ; i++){\n\t\t\t\t\t\tradios[i].disabled= false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction disable_forcage(){\n\t\t\t\t\tvar selected_views = new Array();";
             foreach ($allowed['allowed'] as $view) {
                 $forcage .= "\n\t\t\t\t\tselected_views.push(" . $view . ")";
             }
             $forcage .= "\n\t\t\t\t\tvar checkboxes = document.forms.empr_form['form_empr_opac_view[]'];\n\t\t\t\t\tvar radios = document.forms.empr_form['form_empr_opac_view_default'];\n\t\t\t\t\tfor (var i=0 ; i<checkboxes.length ; i++){\n\t\t\t\t\t\tvar selected = false;\n\t\t\t\t\t\tfor(key in selected_views){\n\t\t\t\t\t\t\tif(checkboxes[i].value == selected_views[key]){\n\t\t\t\t\t\t\t\tselected = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcheckboxes[i].disabled= true;\n\t\t\t\t\t\tif(selected){\n\t\t\t\t\t\t\tcheckboxes[i].checked = true;\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tcheckboxes[i].checked = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor (var i=0 ; i<radios.length ; i++){\n\t\t\t\t\t\tradios[i].disabled= true;\n\t\t\t\t\t\tif(radios[i].value == " . $allowed['default'] . "){\n\t\t\t\t\t\t\tradios[i].checked = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t</script>";
         } else {
             $forcage = "";
         }
         $tpl = str_replace("!!forcage!!", $forcage, $tpl);
     }
     return $tpl;
 }