type = $type;// opac, acquisition... $this->module = $module;// opac_view $this->module_num = $module_num;// pour évolution... $this->fetch_data(); } public function fetch_data() { global $dbh,$lang,$include_path; if (file_exists($include_path."/section_param/$lang.xml")) { _parser_($include_path."/section_param/$lang.xml",array("SECTION"=>"_section_"),"PMBSECTIONS"); $this->allow_section=1; } $this->subst_param=array(); $myQuery = pmb_mysql_query("SELECT * FROM param_subst where subst_type_param= '".$this->type."' and subst_module_param= '".$this->module."' and subst_module_num= '".$this->module_num."' ", $dbh); if(pmb_mysql_num_rows($myQuery)){ while(($r=pmb_mysql_fetch_assoc($myQuery))) { $this->subst_param[]=$r; } } $this->no_subst_param=array(); $myQuery = pmb_mysql_query("SELECT * FROM parametres where type_param= '".$this->type."' and gestion=0 order by section_param,sstype_param", $dbh); while(($r=pmb_mysql_fetch_assoc($myQuery))) { $found=0; foreach($this->subst_param as $key => $subst_param){ if($subst_param['subst_sstype_param']==$r['sstype_param']){ $this->subst_param[$key]['valeur_param_origine']=$r['valeur_param']; $this->subst_param[$key]['section_param']=$r['section_param']; $found=1; break; } } if(!$found){ $this->no_subst_param[]=$r; } } } public function get_form_list($link_modif_param) { global $charset,$msg; global $tpl_param_subst_table,$tpl_param_subst_table_line; global $tpl_param_table,$tpl_param_table_line; global $form_sstype_param; // si memorisation du formulaire, pour mettre en rouge le param global $section_table; $form=""; if(count($this->subst_param)){ $lines=""; $pair="odd"; $section_param=''; foreach($this->subst_param as $subst_param){ if (($section_param!=$subst_param["section_param"])&&($this->allow_section)) { $section_param=$subst_param["section_param"]; $lines.="\n".$section_table[$section_param]["LIB"].""; } if($pair!="odd")$pair="odd"; else $pair="even"; if($form_sstype_param== $subst_param["subst_sstype_param"])$style = "background: rgb(255, 34, 34) none repeat scroll 0% 0%; cursor: pointer; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"; else $style = "cursor: pointer;"; $line=str_replace('!!link_edit!!', $link_modif_param."¶m_subst=!!name!!&action_subst=edit", $tpl_param_subst_table_line); $line=str_replace('!!link_suppr!!', $link_modif_param."¶m_subst=!!name!!&action_subst=suppr", $line); $line=str_replace('!!odd_even!!', $pair, $line); $line=str_replace('!!name!!', htmlentities($subst_param["subst_sstype_param"],ENT_QUOTES,$charset), $line); $line=str_replace('!!origin_value!!', htmlentities($subst_param["valeur_param_origine"],ENT_QUOTES,$charset), $line); $line=str_replace('!!value!!', htmlentities($subst_param["subst_valeur_param"],ENT_QUOTES,$charset), $line); $line=str_replace('!!comment!!', htmlentities($subst_param["subst_comment_param"],ENT_QUOTES,$charset), $line); $line=str_replace('!!style!!', $style, $line); $lines.=$line; } } $form_subst_param=str_replace('!!subst_table_lines!!', $lines, $tpl_param_subst_table); if($form_sstype_param)$plus=1; else $plus=0; $form_subst_param= gen_plus(1,$msg["param_subst_title"],$form_subst_param,$plus); if(count($this->no_subst_param)){ $lines=""; $pair="odd"; $section_param=''; foreach($this->no_subst_param as $param){ if (($section_param!=$param["section_param"])&&($this->allow_section)) { $section_param=$param["section_param"]; $lines.="\n".$section_table[$section_param]["LIB"].""; } if($pair!="odd")$pair="odd"; else $pair="even"; $line=str_replace('!!link_edit!!', $link_modif_param."¶m_subst=!!name!!&action_subst=edit", $tpl_param_table_line); $line=str_replace('!!odd_even!!', $pair, $line); $line=str_replace('!!name!!', htmlentities($param["sstype_param"],ENT_QUOTES,$charset), $line); $line=str_replace('!!value!!', htmlentities($param["valeur_param"],ENT_QUOTES,$charset), $line); $line=str_replace('!!comment!!', htmlentities($param["comment_param"],ENT_QUOTES,$charset), $line); $lines.=$line; } } $form_param=str_replace('!!table_lines!!', $lines, $tpl_param_table); $form_param= gen_plus(2,$msg["param_origin_title"],$form_param,0); return($form.$form_subst_param.$form_param); } public function exec_param_form($link_modif_param) { global $msg; global $tpl_param_subst_form; global $param_subst; global $action_subst; global $dbh; if($action_subst=="save"){ return $this->save_param_form($link_modif_param); }elseif($action_subst=="suppr"){ $req="DELETE from param_subst where subst_type_param='".$this->type."' and subst_module_param='".$this->module."' and subst_module_num='".$this->module_num."' and subst_sstype_param='".$param_subst."' limit 1"; $erreur=pmb_mysql_query($req, $dbh); $this->fetch_data(); return ""; } $found_subst=0; $prefixe=""; foreach($this->subst_param as $param_data){ if($param_data['subst_sstype_param']==$param_subst){ $found_subst=1; $prefixe="subst_"; break; } } $found_no_subst=0; if(!$found_subst){ foreach($this->no_subst_param as $param_data){ if($param_data['sstype_param']==$param_subst){ $found_no_subst=1; break; } } } $title = $msg[1606]; // modification $form = str_replace('!!form_title!!', $title, $tpl_param_subst_form); $form = str_replace('!!link_save!!', $link_modif_param."¶m_subst=!!sstype_param!!&action_subst=save", $form); $form = str_replace('!!type_param!!', $this->type, $form); $form = str_replace('!!sstype_param!!', $param_data[$prefixe.'sstype_param'], $form); $form = str_replace('!!valeur_param!!', $param_data[$prefixe.'valeur_param'], $form); $form = str_replace('!!comment_param!!', $param_data[$prefixe.'comment_param'], $form); $form = str_replace('!!link_annuler!!', "onClick=\"history.go(-1);\"", $form); return $form; } public function save_param_form() { global $msg, $dbh; global $form_sstype_param, $form_valeur_param, $comment_param; $found_subst=0; foreach($this->subst_param as $param_data){ if($param_data['subst_sstype_param']==$form_sstype_param){ $found_subst=1; break; } } if(!$found_subst){ $req="INSERT INTO param_subst SET subst_type_param='".$this->type."', subst_module_param='".$this->module."', subst_module_num='".$this->module_num."', subst_sstype_param='".$form_sstype_param."', subst_valeur_param='".$form_valeur_param."', subst_comment_param='".$comment_param."' "; $erreur=pmb_mysql_query($req, $dbh); if(!$erreur) { error_message($msg["opac_view_form_edit"], $msg["opac_view_form_add_error"],1); exit; } } else { $req="UPDATE param_subst SET subst_valeur_param='".$form_valeur_param."', subst_comment_param='".$comment_param."' where subst_type_param='".$this->type."' and subst_module_param='".$this->module."' and subst_module_num='".$this->module_num."' and subst_sstype_param='".$form_sstype_param."' limit 1"; $erreur=pmb_mysql_query($req, $dbh); if(!$erreur) { error_message($msg["opac_view_form_edit"], $msg["opac_view_form_add_error"],1); exit; } } $this->fetch_data(); return ""; } public function save_param($sstype_param,$valeur_param,$comment_param="") { global $msg, $dbh; $found_subst=0; foreach($this->subst_param as $param_data){ if($param_data['subst_sstype_param']==$form_sstype_param){ $found_subst=1; break; } } if(!$found_subst){ $req="INSERT INTO param_subst SET subst_type_param='".$this->type."', subst_module_param='".$this->module."', subst_module_num='".$this->module_num."', subst_sstype_param='".$sstype_param."', subst_valeur_param='".$valeur_param."', subst_comment_param='".$comment_param."' "; $erreur=pmb_mysql_query($req, $dbh); if(!$erreur) { error_message($msg["opac_view_form_edit"], $msg["opac_view_form_add_error"],1); exit; } } else { $req="UPDATE param_subst SET subst_valeur_param='".$valeur_param."', subst_comment_param='".$comment_param."' where subst_type_param='".$this->type."' and subst_module_param='".$this->module."' and subst_module_num='".$this->module_num."' and subst_sstype_param='".$sstype_param."' limit 1"; $erreur=pmb_mysql_query($req, $dbh); if(!$erreur) { error_message($msg["opac_view_form_edit"], $msg["opac_view_form_add_error"],1); exit; } } return ""; } public function delete_param_value($sstype_param,$valeur_param) { global $msg, $dbh; $req="DELETE from param_subst where subst_type_param='".$this->type."' and subst_module_param='".$this->module."' and subst_sstype_param='$sstype_param' and subst_valeur_param='".$valeur_param."' "; $erreur=pmb_mysql_query($req, $dbh); } } ?>