"; // affichage du tableau des procédures $requete = "SELECT idproc, name, requete, comment, autorisations, libproc_classement, num_classement FROM procs left join procs_classements on idproc_classement=num_classement ORDER BY libproc_classement,name "; $res = mysql_query($requete, $dbh); $nbr = mysql_num_rows($res); $class_prec=$msg[proc_clas_aucun]; $buf_tit=""; $buf_class=0; $parity=1; for($i=0;$i<$nbr;$i++) { $row=mysql_fetch_row($res); $rqt_autorisation=explode(" ",$row[4]); if (($PMBuserid==1 || array_search ($PMBuserid, $rqt_autorisation)!==FALSE) && pmb_strtolower(pmb_substr(trim($row[2]),0,6))=='select') { $classement=$row[5]; if ($class_prec!=$classement) { if (!$row[5]) $row[5]=$msg[proc_clas_aucun]; if ($buf_tit) { $buf_contenu="".$buf_contenu."
".$buf_tit."
"; print gen_plus("procclass".$buf_class,$buf_tit,$buf_contenu); $buf_contenu=""; } $buf_tit=$row[5]; $buf_class=$row[6]; $class_prec=$classement; } if ($parity % 2) { $pair_impair = "even"; } else { $pair_impair = "odd"; } $parity++; $tr_javascript=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='$pair_impair'\" onmousedown=\"document.location='./edit.php?categ=procs&sub=&action=execute&id_proc=$row[0]';\" "; $buf_contenu.="\n $row[1]
$row[3] "; } } $buf_contenu="".$buf_contenu."
".$buf_tit."
"; print gen_plus("procclass".$buf_class,$buf_tit,$buf_contenu); } switch($dest) { case "TABLEAU": $fichier_temp_nom=str_replace(" ","",microtime()); $fichier_temp_nom=str_replace("0.","",$fichier_temp_nom); $fname = tempnam("./temp", $fichier_temp_nom.".xls"); $workbook = new writeexcel_workbook($fname); $worksheet = &$workbook->addworksheet(); break; case "TABLEAUHTML": echo "

".$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 (!$id_proc) { show_procs($dbh); } else { @set_time_limit ($pmb_set_time_limit); //Récupération des variables postées, on en aura besoin pour les liens $page=$_SERVER[SCRIPT_NAME]; $requete = "SELECT idproc, name, requete, comment, proc_notice_tpl, proc_notice_tpl_field FROM procs where idproc='".$id_proc."' "; $res = mysql_query($requete, $dbh) or die ("
SQL error :
".mysql_error()."
SQL Query :
".$requete); $row=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(!$nombre_lignes_total){ $req_nombre_lignes = mysql_query($sql); if(!$req_nombre_lignes){ die($sql."

".mysql_error()); } $nombre_lignes_total = 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 //Si aucune limite_page n'a été passée, valeur par défaut : 10 if (!$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 (!$numero_page) $numero_page=0; $limite_mysql = $limite_page * $numero_page; //REINITIALISATION DE LA REQUETE SQL switch($dest) { case "TABLEAU": case "TABLEAUHTML": case "TABLEAUCSV": case "EXPORT_NOTI": if(!$req_nombre_lignes){ $res = @mysql_query($sql, $dbh) or die($sql."

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

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

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

"; $sql = $sql." LIMIT ".$limite_mysql.", ".$limite_page; // on execute la requete avec les bonnes limites $res = @mysql_query($sql, $dbh) or die($sql."

".mysql_error()); echo "

"; break; } $nbr_lignes = @mysql_num_rows($res); $nbr_champs = @mysql_num_fields($res); if ($nbr_lignes) { switch($dest) { case "TABLEAU": $worksheet->write(0,0,$row[1]); $worksheet->write(0,1,$row[3]); for($i=0; $i < $nbr_champs; $i++) { // entête de colonnes $fieldname = mysql_field_name($res, $i); $worksheet->write(1,$i,${fieldname}); } for($i=0; $i < $nbr_lignes; $i++) { $row = mysql_fetch_row($res); $j=0; foreach($row as $dummykey=>$col) { if(trim($col)=='') $col=" "; $worksheet->write(($i+2),$j,$col); $j++; } } $workbook->close(); header("Content-Type: application/x-msexcel; name=\""."Procedure_$id_proc".".xls"."\""); header("Content-Disposition: inline; filename=\""."Procedure_$id_proc".".xls"."\""); $fh=fopen($fname, "rb"); fpassthru($fh); unlink($fname); break; case "TABLEAUHTML": echo "

$row[1]

$row[3]

$sql
"; echo ""; for($i=0; $i < $nbr_champs; $i++) { $fieldname = mysql_field_name($res, $i); print(""); } for($i=0; $i < $nbr_lignes; $i++) { $row = 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 = mysql_field_name($res, $i); print("${fieldname}\t"); } for($i=0; $i < $nbr_lignes; $i++) { $row = 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 = 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 ""; for($i=0; $i < $nbr_champs; $i++) { $fieldname = mysql_field_name($res, $i); print(""); } $odd_even=0; for($i=0; $i < $nbr_lignes; $i++) { $row = 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}
'.$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 $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"]; } mysql_free_result ($res); } // fin if else proc paramétrée }