";
}
return array('state' => true, 'message' => '');
}
public static function proceed() {
global $msg;
global $action;
global $id_query;
global $id;
global $f_proc_name;
global $f_proc_code;
global $import_proc_tmpl;
print "
";
switch($action) {
case 'configure':
$hp=new parameters($id_query,static::$table);
$hp->show_config_screen(static::$module.".php?categ=proc&sub=proc&action=update_config",static::$module.".php?categ=proc&sub=proc");
break;
case 'update_config':
$hp=new parameters($id_query,static::$table);
$hp->update_config(static::$module.".php?categ=proc&sub=proc");
break;
case 'final':
static::final_execute();
break;
case 'execute':
// form pour params et validation
static::run_form($id);
break;
case 'modif':
if($id) {
if($f_proc_name && $f_proc_code) {
// faire la modification
static::update($id);
show_procs();
} else {
// afficher le form avec les bonnes valeurs
print static::get_proc_form($id);
}
} else {
show_procs();
}
break;
case 'add':
if($f_proc_name && $f_proc_code) {
static::create();
show_procs();
} else {
print static::get_proc_form();
}
break;
case 'import':
$import_proc_tmpl = str_replace("!!action!!", "./".static::$module.".php?categ=proc&sub=proc&action=importsuite", $import_proc_tmpl);
print $import_proc_tmpl ;
break;
case 'importsuite':
static::importsuite("./".static::$module.".php?categ=proc&sub=proc&action=modif&id=!!id!!", "./".static::$module.".php?categ=proc&sub=proc&action=importsuite") ;
break;
case 'del':
if($id) {
static::delete($id);
static::optimize();
}
show_procs();
break;
default:
show_procs();
break;
}
}
public static function proceed_remote() {
global $msg;
global $action;
global $do_import;
global $id;
global $pmb_procedure_server_address;
switch($action) {
case 'view_remote':
if ($id) {
$remote_procedure = new remote_procedure($id, static::$module, static::$table);
$remote_procedure->display();
}
break;
case 'import_remote':
if ($id) {
if($do_import) {
$remote_procedure = new remote_procedure($id, static::$module, static::$table);
$remote_procedure->import();
if(get_called_class() == 'procs') {
show_procs();
} else {
static::get_display_remote_lists();
}
} else {
$remote_procedure = new remote_procedure($id, static::$module, static::$table);
print $remote_procedure->get_import_form();
}
}
break;
case 'execute_remote':
if ($id) {
$remote_procedure = new remote_procedure($id, static::$module, static::$table);
$remote_procedure->execute();
}
break;
case 'final_remote':
if ($id) {
$remote_procedure = new remote_procedure($id, static::$module, static::$table);
$remote_procedure->final_execution();
//$execute_external <=> globale dans remote_procedure->final_execution
//$execute_external_procedure <=> globale dans remote_procedure->final_execution
//$param_proc_hidden <=> paramêtres en champ caché en cas de forçage
static::final_execute();
}
break;
default:
if (!$pmb_procedure_server_address) {
echo $msg["remote_procedures_error_noaddress"];
break;
}
if(get_called_class() == 'procs') {
show_procs();
} else {
static::get_display_remote_lists();
}
break;
}
}
public static function importsuite($retour, $retour_erreur) {
global $msg, $current_module, $charset;
global $PMBuserid;
print "
".$msg['procs_title_form_import']."
";
$erreur=0;
$userfile_name = $_FILES['f_fichier']['name'];
$userfile_temp = $_FILES['f_fichier']['tmp_name'];
$userfile_moved = basename($userfile_temp);
$userfile_name = preg_replace("/ |'|\\|\"|\//m", "_", $userfile_name);
// création
if (move_uploaded_file($userfile_temp,'./temp/'.$userfile_moved)) {
$fic=1;
}
if (!$fic) {
$erreur=$erreur+10;
}
if ($fic) {
$fp = fopen('./temp/'.$userfile_moved , "r" );
$contenu = fread ($fp, filesize('./temp/'.$userfile_moved));
if (!$fp || $contenu=="") $erreur=$erreur+100; ;
fclose ($fp) ;
}
//import avec encodage taggé
if(strpos($contenu,'#charset=iso-8859-1')!==false && $charset=='utf-8'){
//mise à jour de l'encodage du contenu
$contenu = utf8_encode($contenu);
//mise à jour de l'entête des paramètres
$contenu = str_replace('', '', $contenu) ;
}elseif(strpos($contenu,'#charset=utf-8')!==false && $charset=='iso-8859-1'){
//mise à jour de l'encodage du contenu
$contenu = utf8_decode($contenu);
//mise à jour de l'entête des paramètres
$contenu = str_replace('', '', $contenu) ;
}
if ($userfile_name) {
unlink('./temp/'.$userfile_moved);
}
$pos = strpos($contenu,'INSERT INTO '.static::$table.' set ');
if (($pos === false) || ($pos>0)) {
$erreur=$erreur+1000; ;
}
if (!$erreur) {
// ajouter les droits pour celui qui importe
if ($PMBuserid!=1) $contenu = str_replace("autorisations='1'", "autorisations='1 ".$PMBuserid."'", $contenu) ;
pmb_mysql_query($contenu) ;
if (pmb_mysql_error()) {
echo pmb_mysql_error()."