".$msg[1130]." : ".$msg[1131].""; break; case "TABLEAUCSV": break; case "EXPORT_NOTI": $fichier_temp_nom=str_replace(" ","",microtime()); $fichier_temp_nom=str_replace("0.","",$fichier_temp_nom); $fname = tempnam("./temp", $fichier_temp_nom.".doc"); break; default: echo "

".$msg[1130]." : ".$msg[1131]."

"; break; } if(!isset($id_proc)) $id_proc = 0; if (!$id_proc) { procs::$module = 'edit'; print procs::get_display_list(); } else { @set_time_limit ($pmb_set_time_limit); //Récupération des variables postées, on en aura besoin pour les liens $page="./edit.php"; $requete = "SELECT idproc, name, requete, comment, proc_notice_tpl, proc_notice_tpl_field FROM procs where idproc='".$id_proc."' "; $res = pmb_mysql_query($requete); $row=pmb_mysql_fetch_row($res); //Requete et calcul du nombre de pages à afficher selon la taille de la base 'pret' //********************************************************************************/ // récupérer ici la procédure à lancer $sql = $row[2]; //$proc_notice_tpl=$row[4]; $proc_notice_tpl_field=$row[5]; if (preg_match_all("|!!(.*)!!|U",$sql,$query_parameters) && $form_type=="") { $hp=new parameters($id_proc,"procs"); $hp->gen_form("edit.php?categ=procs&sub=&action=execute&id_proc=".$id_proc."&force_exec=".$force_exec); } else { $param_hidden=""; if($force_exec){ $param_hidden.="";//On a forcé la requete } if (preg_match_all("|!!(.*)!!|U",$sql,$query_parameters)) { $hp=new parameters($id_proc,"procs"); $hp->get_final_query(); $sql=$hp->final_query; $param_hidden.=$hp->get_hidden_values();//Je mets les paramêtres en champ caché en cas de forçage $param_hidden.="";//Je mets le marqueur des paramêtres en champ caché en cas de forçage } if($dest != "TABLEAU" && $dest != "TABLEAUHTML" && $dest != "TABLEAUCSV"){ print "
"; print ""; if (!explain_requete($sql) && (SESSrights & EDIT_FORCING_AUTH) && !$force_exec) { print $param_hidden; print ""; } else{ print ""; } print "
"; print "
"; } if (!explain_requete($sql) && !((SESSrights & EDIT_FORCING_AUTH) && $force_exec)){ die("

".$sql."

".htmlentities($msg["proc_param_explain_failed"], ENT_QUOTES, $charset)."

".$erreur_explain_rqt); } $req_nombre_lignes=""; if(!isset($nombre_lignes_total) || !$nombre_lignes_total){ $req_nombre_lignes = pmb_mysql_query($sql); if(!$req_nombre_lignes){ die($sql."

".pmb_mysql_error()); } $nombre_lignes_total = pmb_mysql_num_rows($req_nombre_lignes); } $param_hidden.="";//Je garde le nombre de ligne total pour le pas refaire la requête à la page suivante //REINITIALISATION DE LA REQUETE SQL switch($dest) { case "TABLEAU": case "TABLEAUHTML": case "TABLEAUCSV": case "EXPORT_NOTI": if(!$req_nombre_lignes){ $res = @pmb_mysql_query($sql, $dbh) or die($sql."

".pmb_mysql_error()); }else{ $res = $req_nombre_lignes; } break; default: echo "

".htmlentities($row[1], ENT_QUOTES, $charset)."

".htmlentities($row[3], ENT_QUOTES, $charset)."

"; //tri défini ? if($sort>0){ // preg_match('`^(.+)( order by .+)$`i',$sql,$arraySql); preg_match("/(.+)(order by.+)$/isU", $sql,$arraySql); if(count($arraySql)) { $sql=$arraySql[1]." order by ".($sort>0?$sort:(-$sort)." DESC"); } else { $sql .= " order by ".($sort>0?$sort:(-$sort)." DESC"); } } //Si aucune limite_page n'a été passée, valeur par défaut : 10 if (!isset($limite_page) || !$limite_page) $limite_page = 10; $nbpages= $nombre_lignes_total / $limite_page; // on arondi le nombre de page pour ne pas avoir de virgules, ici au chiffre supérieur $nbpages_arrondi = ceil($nbpages); // on enlève 1 au nombre de pages, car la 1ere page affichée ne fait pas partie des pages suivantes $nbpages_arrondi = $nbpages_arrondi - 1; if (!isset($numero_page) || !$numero_page) $numero_page=0; $limite_mysql = $limite_page * $numero_page; //on définit les limites $last_limit_position = strripos($sql, ' LIMIT '); if($last_limit_position !== false) { $last_parenthesis_position = strripos($sql, ')'); //le dernier limit ne doit pas être dans une sous-requête if($last_parenthesis_position === false || $last_parenthesis_position < $last_limit_position) { $sql = substr($sql, 0, $last_limit_position); } } $sql = $sql." LIMIT ".$limite_mysql.", ".$limite_page; // on execute la requete avec les bonnes limites $res = @pmb_mysql_query($sql) or die($sql."

".pmb_mysql_error()); echo "

"; break; } $nbr_lignes = @pmb_mysql_num_rows($res); $nbr_champs = @pmb_mysql_num_fields($res); if ($nbr_lignes) { switch($dest) { case "TABLEAU": $worksheet->write_string(0,0,$row[1]); $worksheet->write_string(0,1,$row[3]); for($i=0; $i < $nbr_champs; $i++) { // entête de colonnes $fieldname = pmb_mysql_field_name($res, $i); $worksheet->write_string(1,$i,$fieldname); } for($i=0; $i < $nbr_lignes; $i++) { $row = pmb_mysql_fetch_row($res); $j=0; foreach($row as $dummykey=>$col) { if(trim($col)=='') $col=" "; if (is_numeric($col)) { $worksheet->write(($i+2),$j,$col); } else { $worksheet->write_string(($i+2),$j,$col); } $j++; } } $worksheet->download('Procedure_'.$id_proc.'.xls'); break; case "TABLEAUHTML": echo "

$row[1]

$row[3]

$sql
"; echo ""; for($i=0; $i < $nbr_champs; $i++) { $fieldname = pmb_mysql_field_name($res, $i); print(""); } for($i=0; $i < $nbr_lignes; $i++) { $row = pmb_mysql_fetch_row($res); echo ""; foreach($row as $dummykey=>$col) { if (is_numeric($col)){ $col = "'".$col ; } if(trim($col)=='') $col=" "; print ''; } echo ""; } echo "
".$fieldname."
'.$col.'
"; break; case "TABLEAUCSV": for($i=0; $i < $nbr_champs; $i++) { $fieldname = pmb_mysql_field_name($res, $i); print $fieldname."\t"; } for($i=0; $i < $nbr_lignes; $i++) { $row = pmb_mysql_fetch_row($res); echo "\n"; foreach($row as $dummykey=>$col) { /* if (is_numeric($col)) { $col = "\"'".(string)$col."\"" ; } */ print "$col\t"; } } break; case "EXPORT_NOTI": $noti_tpl=new notice_tpl_gen($form_notice_tpl); for($i=0; $i < $nbr_lignes; $i++) { $row = pmb_mysql_fetch_object($res); $contents.=$noti_tpl->build_notice($row->$proc_notice_tpl_field)."
"; } header("Content-Disposition: attachment; filename='bibliographie.doc';"); header('Content-type: application/msword'); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0,pre-check=0"); header("Pragma: public"); echo "".$contents.""; break; default: echo ""; echo ""; ini_set("display_errors",1); error_reporting(E_ALL); // for($i=0; $i < $nbr_champs; $i++) { $fieldname = pmb_mysql_field_name($res, $i); print ""; } $odd_even=0; for($i=0; $i < $nbr_lignes; $i++) { $row = pmb_mysql_fetch_row($res); if ($odd_even==0) { echo " "; $odd_even=1; } elseif ($odd_even==1) { echo " "; $odd_even=0; } foreach($row as $dummykey=>$col) { if(trim($col)=='') $col=" "; print ''; } echo ""; } echo "
".$fieldname; if($sort==($i+1)){ print " ▴"; }elseif((-$sort)==($i+1)){ print " ▾"; } print "
'.$col.'

"; echo "

"; echo " "; print $param_hidden; // LIENS PAGE SUIVANTE et PAGE PRECEDENTE // si le nombre de page n'est pas 0 et si la variable numero_page n'est pas définie // dans cette condition, la variable numero_page est incrémenté et est inférieure à $nombre // constitution des liens $nav_bar = ''; $suivante = $numero_page+1; $precedente = $numero_page-1; // affichage du lien précédent si nécéssaire if ($precedente >= 0) $nav_bar .= "[$msg[48]]" ; for ($i = 0; $i <=$nbpages_arrondi; $i++) { if($i==$numero_page) $nav_bar .= "".($i+1)."/".($nbpages_arrondi+1).""; } if ($suivante<=$nbpages_arrondi) $nav_bar .= "[$msg[49]]"; echo $nav_bar ; echo " $msg[edit_cbgen_mep_afficher] $msg[1905]           "; if($proc_notice_tpl_field) { echo "      "; echo notice_tpl_gen::gen_tpl_select("form_notice_tpl",$proc_notice_tpl,'',0,1); } echo "

"; break; } } else { echo $msg["etatperso_aucuneligne"]; } pmb_mysql_free_result($res); } // fin if else proc paramétrée }