id_query=$id+0; $this->action=$action; $this->id_vue_liee = $idvue+0; } public function proceed(){ global $dbh; global $msg, $id; global $pmb_procs_force_execution,$force_exec; switch($this->action){ case 'configure': $hp=new parameters($this->id_query,"statopac_request"); $hp->show_config_screen("admin.php?categ=opac&sub=stat§ion=view_list&act=update_config&id_req=$this->id_query","admin.php?categ=opac&sub=stat§ion=view_list"); break; case 'update_config': $hp=new parameters($this->id_query,"statopac_request"); $hp->update_config("admin.php?categ=opac&sub=stat§ion=view_list"); break; case 'update_request': //Ajout/Modification d'une requete if(!$this->id_vue_liee){ $this->id_vue_liee = static::get_vue_associee($this->id_query); } print $this->do_form_request($this->id_query,$this->id_vue_liee); break; case 'save_request': if(!$this->id_vue_liee){ $this->id_vue_liee = static::get_vue_associee($this->id_query); } $this->save_request($this->id_query,$this->id_vue_liee); break; case 'suppr_request': //Suppression d'une vue $this->delete_request($this->id_query); break; case 'final': $hp=new parameters($this->id_query,"statopac_request"); if (preg_match_all("|!!(.*)!!|U",$hp->proc->requete,$query_parameters)) { $hp->get_final_query(); $code=$hp->final_query; $id=$this->id_query; } include("./admin/opac/stat/execute.inc.php"); break; case 'exec_req': // form pour params et validation $this->run_form($this->id_query, $dbh); break; default: break; } } //Supprime une requete public function delete_request($id_req){ if($id_req){ $req="DELETE FROM statopac_request where idproc='".$id_req."'"; $resultat=pmb_mysql_query($req); } } //Affiche le formulaire de saisie d'une requete public function do_form_request($request_id='',$vue_id=''){ global $stat_view_request_form, $msg, $charset; if(!$request_id){ $stat_view_request_form = str_replace('!!request_title!!',$msg['stat_create_query'],$stat_view_request_form); $stat_view_request_form = str_replace('!!name_request!!','',$stat_view_request_form); $stat_view_request_form = str_replace('!!code!!','',$stat_view_request_form); $stat_view_request_form = str_replace('!!comment!!','',$stat_view_request_form); $stat_view_request_form = str_replace('!!id_req!!','',$stat_view_request_form); $stat_view_request_form = str_replace('!!id_view!!',$vue_id,$stat_view_request_form); $rqt_colnom="select nom_col from statopac_vues_col where num_vue='".$vue_id."'"; $res=pmb_mysql_query($rqt_colnom); if(pmb_mysql_num_rows($res) == 0){ $stat_view_request_form = str_replace('!!liste_cols!!',$msg['stat_no_col_associate'],$stat_view_request_form); } else { $liste = ""; $stat_view_request_form = str_replace('!!liste_cols!!',$liste,$stat_view_request_form); } return $stat_view_request_form; } elseif($vue_id) { $stat_view_request_form = str_replace('!!request_title!!',$msg['stat_alter_query'],$stat_view_request_form); $rqt = "select name , requete , comment from statopac_request where idproc='".$request_id."'"; $resultat=pmb_mysql_query($rqt); while(($req = pmb_mysql_fetch_object($resultat))){ $stat_view_request_form = str_replace('!!name_request!!',htmlentities($req->name,ENT_QUOTES,$charset),$stat_view_request_form); $stat_view_request_form = str_replace('!!code!!',htmlentities($req->requete,ENT_QUOTES,$charset),$stat_view_request_form); $stat_view_request_form = str_replace('!!comment!!',htmlentities($req->comment,ENT_QUOTES,$charset),$stat_view_request_form); } $stat_view_request_form = str_replace('!!id_req!!',$request_id,$stat_view_request_form); $stat_view_request_form = str_replace('!!id_view!!',$vue_id,$stat_view_request_form); $rqt_colnom="select nom_col from statopac_vues_col where num_vue='".$vue_id."'"; $res=pmb_mysql_query($rqt_colnom); if(pmb_mysql_num_rows($res) == 0){ $stat_view_request_form = str_replace('!!liste_cols!!',$msg['stat_no_col_associate'],$stat_view_request_form); } else { $liste = ""; $stat_view_request_form = str_replace('!!liste_cols!!',$liste,$stat_view_request_form); } } return $stat_view_request_form; } //Insere ou enregistre une requete public function save_request($request_id='', $vue_id=''){ global $f_request_name, $f_request_code, $f_request_comment, $msg; $chaine = strpos($f_request_code,'VUE()'); if($chaine !==false){ if((!$request_id) && $vue_id){ $req = "INSERT INTO statopac_request(name,requete,comment,num_vue) VALUES ('".$f_request_name."', '".$f_request_code."','".$f_request_comment."','".$vue_id."')"; pmb_mysql_query($req); } else { $req = "UPDATE statopac_request SET name='".$f_request_name."', requete='".$f_request_code."', num_vue='".$vue_id."', comment='".$f_request_comment."' WHERE idproc='".$request_id."'"; pmb_mysql_query($req); } } else{ error_form_message($msg["stat_wrong_query_format"]); } } //Formulaire d'execution public function run_form($id, $dbh) { global $msg; global $charset; global $force_exec; $hp=new parameters($id,"statopac_request"); if (preg_match_all("|!!(.*)!!|U",$hp->proc->requete,$query_parameters)) $hp->gen_form("admin.php?categ=opac&sub=stat§ion=view_list&act=final&id=$id".($force_exec ? "&force_exec=$force_exec" : "")); else echo ""; } public static function get_vue_associee($id_req){ $id_req += 0; $rqt="select num_vue from statopac_request where idproc='".addslashes($id_req)."'"; $res = pmb_mysql_query($rqt); return pmb_mysql_result($res,0,0); } } ?>