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> \n\t\t\t " . $msg['40'] . "<input type='radio' name='force_opac_view_choice' onclick='allow_forcage();' value='1' " . ($disabled != "" ? "" : "checked") . "/>\n\t\t\t " . $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; }
function list_views() { global $dbh; global $pmb_opac_view_activate; global $include_path; global $lang; $this->opac_views_list = array(); $this->view_list_empr_default = 0; //on reprend... if ($this->id_empr) { $req = "SELECT * FROM opac_views, opac_views_empr where opac_view_visible!=0 and emprview_view_num=opac_view_id and emprview_empr_num=" . $this->id_empr; $myQuery = mysql_query($req, $dbh); if (mysql_num_rows($myQuery)) { while ($r = mysql_fetch_object($myQuery)) { if ($r->emprview_default) { $this->view_list_empr_default = $r->opac_view_id; } $this->opac_views_list[] = $r->opac_view_id; } } //on regarde l'OPAC classique $query = "select emprview_view_num,emprview_default from opac_views_empr where emprview_view_num = 0 and emprview_empr_num = " . $this->id_empr; $result = mysql_query($query); if (mysql_num_rows($result)) { $r = mysql_fetch_object($result); $this->opac_views_list[] = 0; if ($r->emprview_default) { $this->view_list_empr_default = 0; } } } if (count($this->opac_views_list) == 0) { if ($pmb_opac_view_activate == 2) { $qt = new quota("OPAC_VIEW", $include_path . "/quotas/own/" . $lang . "/opac_views.xml"); $struct = array('READER' => $this->id_empr ? $this->id_empr : 0); if ($this->id_empr) { $struct["READER"] = $this->id_empr ? $this->id_empr : 0; $val = $qt->get_quota_value($struct); } else { $tmp = $qt->apply_conflict(array("")); $val = $tmp['VALUE']; } $values = unserialize($val); $this->opac_views_list = $values['allowed']; $this->view_list_empr_default = $values['default']; } else { if (!$this->id_empr) { $this->opac_views_list[] = 0; $req = "SELECT * FROM opac_views where opac_view_visible=1"; $myQuery = mysql_query($req, $dbh); if (mysql_num_rows($myQuery)) { while ($r = mysql_fetch_object($myQuery)) { if ($r->emprview_default) { $this->view_list_empr_default = $r->opac_view_id; } /*else if(!$this->id_empr && !$this->view_list_empr_default){ //si pas d'emprunteur, on met la première vue trouvée par défaut $this->view_list_empr_default = $r->opac_view_id; }*/ $this->opac_views_list[] = $r->opac_view_id; } } } } } }