function explnum_update($f_explnum_id, $f_notice, $f_bulletin, $f_nom, $f_url, $retour, $conservervignette = 0, $f_statut_chk = 0) { global $dbh, $msg, $scanned_image, $scanned_image_ext; global $current_module, $pmb_explnum_statut; global $ck_index, $scanned_texte, $up_place, $path, $id_rep; create_tableau_mimetype(); if ($f_explnum_id) { $requete = "UPDATE explnum SET "; $limiter = " WHERE explnum_id='{$f_explnum_id}' "; } else { $requete = "INSERT INTO explnum SET "; $limiter = ""; } print "<div class=\"row\"><h1>{$msg['explnum_doc_associe']}</h1>"; $erreur = 0; $userfile_name = $_FILES['f_fichier']['name']; $userfile_temp = $_FILES['f_fichier']['tmp_name']; $userfile_moved = basename($userfile_temp); $vignette_name = $_FILES['f_vignette']['name']; $vignette_temp = $_FILES['f_vignette']['tmp_name']; $vignette_moved = basename($vignette_temp); $userfile_name = preg_replace("/ |'|\\|\"|\\//m", "_", $userfile_name); $vignette_name = preg_replace("/ |'|\\|\"|\\//m", "_", $vignette_name); $userfile_ext = ''; if ($userfile_name) { $userfile_ext = extension_fichier($userfile_name); } if ($f_explnum_id) { // modification // si $userfile_name est vide on ne fera pas la maj du data if ($scanned_image || $userfile_name) { //Avant tout, y-a-t-il une image extérieure ? if ($scanned_image) { //Si oui ! $tmpid = str_replace(" ", "_", microtime()); $fp = @fopen("./temp/scanned_{$tmpid}." . $scanned_image_ext, "w+"); if ($fp) { fwrite($fp, base64_decode($scanned_image)); $nf = 1; $part_name = "scanned_image_" . $nf; global ${$part_name}; while (${$part_name}) { fwrite($fp, base64_decode(${$part_name})); $nf++; $part_name = "scanned_image_" . $nf; global ${$part_name}; } fclose($fp); $fic = 1; $maj_data = 1; $userfile_name = "scanned_{$tmpid}." . $scanned_image_ext; $userfile_ext = $scanned_image_ext; $userfile_moved = $userfile_name; $f_url = ""; } else { $erreur++; } } else { if ($userfile_name) { if (move_uploaded_file($userfile_temp, './temp/' . $userfile_moved)) { $fic = 1; $f_url = ""; $maj_data = 1; move_uploaded_file($vignette_temp, './temp/' . $vignette_moved); } else { $erreur++; } } } $contenu_vignette = construire_vignette($vignette_moved, $userfile_moved); $maj_vignette = 1; $mimetype = trouve_mimetype($userfile_moved, $userfile_ext); if (!$mimetype) { $mimetype = "application/data"; } $maj_mimetype = 1; } else { if ($vignette_name) { move_uploaded_file($vignette_temp, './temp/' . $vignette_moved); $contenu_vignette = construire_vignette($vignette_moved, $userfile_moved); $maj_vignette = 1; } if ($f_url) { move_uploaded_file($vignette_temp, './temp/' . $vignette_moved); $contenu_vignette = construire_vignette($vignette_moved, $userfile_moved); $maj_vignette = 1; $mimetype = "URL"; $maj_mimetype = 1; $contenu = ""; $maj_data = 1; } } } else { // creation //Y-a-t-il une image exterieure ? if ($scanned_image) { //Si oui ! $tmpid = str_replace(" ", "_", microtime()); $fp = @fopen("./temp/scanned_{$tmpid}." . $scanned_image_ext, "w+"); if ($fp) { fwrite($fp, base64_decode($scanned_image)); $nf = 1; $part_name = "scanned_image_" . $nf; global ${$part_name}; while (${$part_name}) { fwrite($fp, base64_decode(${$part_name})); $nf++; $part_name = "scanned_image_" . $nf; global ${$part_name}; } fclose($fp); $fic = 1; $maj_data = 1; $userfile_name = "scanned_{$tmpid}." . $scanned_image_ext; $userfile_ext = $scanned_image_ext; $userfile_moved = $userfile_name; $f_url = ""; } else { $erreur++; } } else { if (move_uploaded_file($userfile_temp, './temp/' . $userfile_moved)) { $fic = 1; $f_url = ""; $maj_data = 1; } elseif (!$f_url) { $erreur++; } } move_uploaded_file($vignette_temp, './temp/' . $vignette_moved); $contenu_vignette = construire_vignette($vignette_moved, $userfile_moved); $maj_vignette = 1; if (!$f_url && !$fic) { $erreur++; } if ($f_url) { $mimetype = "URL"; } else { $mimetype = trouve_mimetype($userfile_moved, $userfile_ext); if (!$mimetype) { $mimetype = "application/data"; } } $maj_mimetype = 1; } $upfolder = new upload_folder($id_rep); if ($fic) { $is_upload = false; if (!$f_explnum_id && ($path && $up_place)) { if ($upfolder->isHashing()) { $rep = $upfolder->hachage($userfile_name); @mkdir($rep); $path = $upfolder->formate_path_to_nom($rep); $file_name = $rep . $userfile_name; } else { $file_name = $upfolder->formate_nom_to_path($path) . $userfile_name; } $path = $upfolder->formate_path_to_save($path); $file_name = $upfolder->encoder_chaine($file_name); rename('./temp/' . $userfile_moved, $file_name); $is_upload = true; } else { $file_name = './temp/' . $userfile_moved; } $fp = fopen($file_name, "r"); $contenu = fread($fp, filesize($file_name)); if (!$fp || $contenu == "") { $erreur++; } fclose($fp); } //Dans le cas d'une modification, on regarde si il y a eu un déplacement du stockage if ($f_explnum_id) { $explnum = new explnum($f_explnum_id); if ($explnum->isEnBase() && ($up_place && $path)) { $explnum->remove_from_base($path, $id_rep); $contenu = ""; $is_upload = false; } elseif ($explnum->isEnUpload() && !$up_place) { $contenu = $explnum->remove_from_upload(); $id_rep = 0; $path = ""; } elseif ($explnum->isEnUpload() && ($up_place && $path)) { $path = $explnum->change_rep_upload($upfolder, $upfolder->formate_nom_to_path($path)); $path = $upfolder->formate_path_to_save($upfolder->formate_path_to_nom($path)); } } if (!$f_nom) { if ($userfile_name) { $f_nom = $userfile_name; } elseif ($f_url) { $f_nom = $f_url; } else { $f_nom = "-x-x-x-x-"; } } if ($userfile_name && !$is_upload) { unlink($file_name); } if ($vignette_name) { unlink('./temp/' . $vignette_moved); } if (!$erreur) { $requete .= " explnum_notice='{$f_notice}'"; $requete .= ", explnum_bulletin='{$f_bulletin}'"; $requete .= ", explnum_nom='{$f_nom}'"; $requete .= ", explnum_url='{$f_url}'"; if ($maj_mimetype) { $requete .= ", explnum_mimetype='" . $mimetype . "' "; } if ($maj_data) { if (!$is_upload) { $requete .= ", explnum_data='" . addslashes($contenu) . "'"; } $requete .= ", explnum_nomfichier='" . addslashes($userfile_name) . "'"; $requete .= ", explnum_extfichier='" . addslashes($userfile_ext) . "'"; } if ($maj_vignette && !$conservervignette) { $requete .= ", explnum_vignette='" . addslashes($contenu_vignette) . "'"; } if ($pmb_explnum_statut == '1') { $requete .= ", explnum_statut='" . $f_statut_chk . "'"; } $requete .= ", explnum_repertoire='" . $id_rep . "'"; $requete .= ", explnum_path='" . $path . "'"; $requete .= $limiter; pmb_mysql_query($requete, $dbh); //Indexation du document global $pmb_indexation_docnum; if ($pmb_indexation_docnum) { if (!$f_explnum_id && $ck_index) { $id_explnum = pmb_mysql_insert_id(); $indexation = new indexation_docnum($id_explnum, $scanned_texte); $indexation->indexer(); } elseif ($f_explnum_id && $ck_index) { $indexation = new indexation_docnum($f_explnum_id, $scanned_texte); $indexation->indexer(); } elseif ($f_explnum_id && !$ck_index) { $indexation = new indexation_docnum($f_explnum_id); $indexation->desindexer(); } } // on reaffiche l'ISBD print "<div class='row'><div class='msg-perio'>" . $msg['maj_encours'] . "</div></div>"; $id_form = md5(microtime()); if (pmb_mysql_error()) { echo "MySQL error : " . pmb_mysql_error(); print "\n\t\t\t\t<form class='form-{$current_module}' name=\"dummy\" method=\"post\" action=\"{$retour}\" >\n\t\t\t\t\t<input type='submit' class='bouton' name=\"id_form\" value=\"Ok\">\n\t\t\t\t\t</form>"; print "</div>"; exit; } print "\n\t\t<form class='form-{$current_module}' name=\"dummy\" method=\"post\" action=\"{$retour}\" style=\"display:none\">\n\t\t\t<input type=\"hidden\" name=\"id_form\" value=\"{$id_form}\">\n\t\t\t</form>"; print "<script type=\"text/javascript\">document.dummy.submit();</script>"; } else { eval("\$bid=\"" . $msg['explnum_erreurupload'] . "\";"); print "<div class='row'><div class='msg-perio'>" . $bid . "</div></div>"; print "\n\t\t\t<form class='form-{$current_module}' name=\"dummy\" method=\"post\" action=\"{$retour}\" >\n\t\t\t\t<input type='submit' class='bouton' name=\"id_form\" value=\"Ok\">\n\t\t\t</form>"; } print "</div>"; }
function show_form_task($planificateur_id = "") { global $charset, $base_path, $msg; global $planificateur_form, $act, $type_task_id, $subaction; foreach ($this->types_taches as $type) { if ($type->id_type == $type_task_id) { $comment = $type->comment; $name = $type->name; $dir_upload_boolean = $type->dir_upload_boolean; } } // Inclusion de la classe spécifique if (is_file($base_path . '/admin/planificateur/' . $name . '/' . $name . '.class.php')) { require_once $base_path . '/admin/planificateur/' . $name . '/' . $name . '.class.php'; eval("\$a_task=new " . $name . "();"); //Récupération des données du formulaire if ($subaction == "change") { global $task_name, $task_desc, $form_users, $task_active, $id_rep, $path; global $task_perio_heure, $task_perio_min, $chkbx_task_quotidien, $chkbx_task_hebdo, $chkbx_task_mensuel; global $timeout, $radio_histo_day_number, $histo_day, $histo_number, $restart_on_failure, $alert_mail_on_failure, $mail_on_failure; $libelle_tache = stripslashes($task_name); $desc_tache = stripslashes($task_desc); $perio_heure = $task_perio_heure; $statut = $task_active; $rep_upload = $id_rep ? $id_rep : ""; $chemin_upload = $path ? $path : ""; $perio_heure = $task_perio_heure; $perio_minute = $task_perio_min; $perio_jour_mois = $chkbx_task_quotidien; $perio_jour = $chkbx_task_hebdo; $perio_mois = $chkbx_task_mensuel; $param["timeout"] = $timeout; $param["histo_day"] = $histo_day; $param["histo_number"] = $histo_number; $param["restart_on_failure"] = $restart_on_failure; $param["alert_mail_on_failure"] = $alert_mail_on_failure . ($mail_on_failure ? "," . $mail_on_failure : ""); } else { //Récupération des données de la base $a_task->fetch_global_properties(); $tab_properties = $a_task->get_property_task_bdd($planificateur_id); if (isset($tab_properties)) { if (is_array($tab_properties)) { foreach ($tab_properties as $atab_properties => $atab_propertiesv) { // global $$atab_properties; ${$atab_properties} = $atab_propertiesv; } } } } //form spécifique $form_specific_task = $a_task->show_form($param); } else { $form_specific_task = ""; } $planificateur_form = str_replace("!!script_js!!", "\n\t\t\t<script type='text/javascript' src='./javascript/select.js'></script>\n\t\t\t<script type='text/javascript' src='./javascript/upload.js'></script>", $planificateur_form); $planificateur_form = str_replace("!!submit_action!!", "return checkForm();", $planificateur_form); $planificateur_form = str_replace("!!libelle_type_task!!", $comment, $planificateur_form); $planificateur_form = str_replace("!!task_name!!", htmlentities($libelle_tache, ENT_QUOTES, $charset), $planificateur_form); $planificateur_form = str_replace("!!task_desc!!", htmlentities($desc_tache, ENT_QUOTES, $charset), $planificateur_form); $rqt_user = mysql_query("select esuser_id, esuser_username from es_esusers"); $form_users = "<select name='form_users'>"; while ($row = mysql_fetch_object($rqt_user)) { if ($row->esuser_id == $num_user) { $form_users .= "<option value='" . $row->esuser_id . "' selected>" . $row->esuser_username . "</option>"; } else { $form_users .= "<option value='" . $row->esuser_id . "'>" . $row->esuser_username . "</option>"; } } $form_users .= "</select>"; if (mysql_num_rows($rqt_user) == 0) { $form_users .= "* " . $msg["planificateur_task_users_unknown"]; } $planificateur_form = str_replace("!!task_users!!", $form_users, $planificateur_form); $planificateur_form = str_replace("!!task_statut!!", "<input type='checkbox' name='task_active' id='task_active' value='" . $statut . "' " . ($statut != "0" ? " checked " : "''") . " onchange='changeStatut();'/>", $planificateur_form); //ce type de tâche nécessite-t-il d'un répertoire d'upload pour les documents numériques? if ($dir_upload_boolean != "0") { $up = new upload_folder($rep_upload); if ($subaction == 'change') { $nom_chemin = $up->formate_path_to_nom($chemin_upload); } else { $nom_chemin = $up->formate_nom_to_path($up->repertoire_nom . $path_upload); } $planificateur_form = str_replace("!!div_upload!!", "<div class='row'>\n\t\t\t\t<div class='colonne3'><label for='timeout'/>" . $msg["print_numeric_ex_title"] . "</label></div>\n\t\t\t\t\t\t<div class='colonne_suite'>\n\t\t\t\t\t\t\t" . $msg["planificateur_upload"] . " : \n\t\t\t\t\t\t\t<input type='text' name='path' id='path' value='!!path!!' class='saisie-50emr' READONLY />\n\t\t\t\t\t\t\t<input type='button' id='upload_path' class='bouton' onclick='upload_openFrame(event)' value='...' name='upload_path' />\n\t\t\t\t\t\t\t<input id='id_rep' type='hidden' value='!!id_rep!!' name='id_rep' /> \n\t\t\t\t\t\t</div>\n\t\t\t\t</div>", $planificateur_form); } else { $planificateur_form = str_replace("!!div_upload!!", "", $planificateur_form); } $planificateur_form = str_replace('!!path!!', htmlentities($nom_chemin, ENT_QUOTES, $charset), $planificateur_form); $planificateur_form = str_replace('!!id_rep!!', htmlentities($rep_upload, ENT_QUOTES, $charset), $planificateur_form); $planificateur_form = str_replace("!!task_perio_heure!!", "<input type='text' id='task_perio_heure' name='task_perio_heure' value='" . $perio_heure . "' class='saisie-5em'/>", $planificateur_form); $planificateur_form = str_replace("!!task_perio_min!!", "<input type='text' id='task_perio_min' name='task_perio_min' value='" . $perio_minute . "' class='saisie-5em'/>", $planificateur_form); $planificateur_form = str_replace("!!help!!", "<a onclick='openPopUp(\"./admin/planificateur/help.php?action_help=configure_time\",\"help\",500,600,-2,-2,\"scrollbars=yes,menubar=0\"); w.focus(); return false;' href='#'>\n\t\t\t<img border='0' align='center' title='Aide...' alt='Aide...' src='" . $base_path . "/images/aide.gif' /></a>", $planificateur_form); $perio_quotidien .= "<input type='checkbox' id='chkbx_task_quotidien_0' name='chkbx_task_quotidien[]' value='*' " . ($perio_jour_mois[0] == '*' ? "checked" : "''") . " onchange='changePerio(\"*\",\"chkbx_task_quotidien\",31);'> " . $msg["planificateur_task_all_days_of_month"] . "</input>"; for ($i = 1; $i <= 31; $i++) { $cochee = false; for ($j = 0; $j < sizeof($perio_jour_mois); $j++) { if ($perio_jour_mois[$j] == $i) { $cochee = true; } } $perio_quotidien .= "<input type='checkbox' id='chkbx_task_quotidien_" . $i . "' name='chkbx_task_quotidien[]' value='" . $i . "' " . ($cochee == true ? "checked" : "''") . " onchange='changePerio({$i},\"chkbx_task_quotidien\",31);'/> " . $i . " "; if ($i == 15) { $perio_quotidien .= "<br />"; } } $planificateur_form = str_replace("!!task_perio_quotidien!!", $perio_quotidien, $planificateur_form); $perio_hebdo .= "<input type='checkbox' id='chkbx_task_hebdo_0' name='chkbx_task_hebdo[]' value='*' " . ($perio_jour[0] == '*' ? "checked" : "''") . " onchange='changePerio(\"*\",\"chkbx_task_hebdo\",7);'> " . $msg["planificateur_task_all_days"] . "</input>"; for ($i = 1; $i <= 7; $i++) { $cochee = false; for ($j = 0; $j < sizeof($perio_jour); $j++) { if ($perio_jour[$j] == $i) { $cochee = true; } } $perio_hebdo .= "<input type='checkbox' id='chkbx_task_hebdo_" . $i . "' name='chkbx_task_hebdo[]' value='" . $i . "' " . ($cochee == true ? "checked" : "''") . " onchange='changePerio({$i},\"chkbx_task_hebdo\",7);'/> " . $msg["week_days_{$i}"]; if ($i == 3) { $perio_hebdo .= "<br />"; } } $planificateur_form = str_replace("!!task_perio_hebdo!!", $perio_hebdo, $planificateur_form); $perio_mensuel .= "<input type='checkbox' id='chkbx_task_mensuel_0' name='chkbx_task_mensuel[]' value='*' " . ($perio_mois[0] == '*' ? " checked " : "''") . " onchange='changePerio(\"*\",\"chkbx_task_mensuel\",12);'> " . $msg["planificateur_task_all_months"] . "</input>"; for ($i = 1; $i <= 12; $i++) { $cochee = false; for ($j = 0; $j < sizeof($perio_mois); $j++) { if ($perio_mois[$j] == $i) { $cochee = true; } } $perio_mensuel .= "<input type='checkbox' id='chkbx_task_mensuel_" . $i . "' name='chkbx_task_mensuel[]' value='" . $i . "' " . ($cochee == true ? "checked" : "''") . " onchange='changePerio({$i},\"chkbx_task_mensuel\",12);'> " . ucfirst($msg[$i + 1005]) . "</input>"; if ($i == 6) { $perio_mensuel .= "<br />"; } } $planificateur_form = str_replace("!!task_perio_mensuel!!", $perio_mensuel, $planificateur_form); $planificateur_form = str_replace("!!timeout!!", $param["timeout"], $planificateur_form); $planificateur_form = str_replace("!!histo_day_checked!!", $param["histo_day"] != "" ? " checked " : "", $planificateur_form); $planificateur_form = str_replace("!!histo_number_checked!!", $param["histo_number"] != "" ? " checked " : "", $planificateur_form); $planificateur_form = str_replace("!!histo_day!!", $param["histo_day"], $planificateur_form); $planificateur_form = str_replace("!!histo_day_visible!!", $param["histo_day"] == "" ? "disabled" : "", $planificateur_form); $planificateur_form = str_replace("!!histo_number!!", $param["histo_number"], $planificateur_form); $planificateur_form = str_replace("!!histo_number_visible!!", $param["histo_number"] == "" ? "disabled" : "", $planificateur_form); $planificateur_form = str_replace("!!restart_on_failure_checked!!", $param["restart_on_failure"] ? " checked " : "", $planificateur_form); $params_alert_mail = explode(",", $param["alert_mail_on_failure"]); $planificateur_form = str_replace("!!alert_mail_on_failure_checked!!", $params_alert_mail[0] ? " checked " : "", $planificateur_form); $planificateur_form = str_replace("!!mail_on_failure!!", $params_alert_mail[1], $planificateur_form); //Inclusion du formulaire spécifique au type de tâche $planificateur_form = str_replace("!!specific_form!!", $form_specific_task, $planificateur_form); if ($act == "task_duplicate") { $planificateur_id = 0; } if (!$planificateur_id) { $bt_save = $base_path . "/admin.php?categ=planificateur&sub=manager&act=task&type_task_id=" . $type_task_id; $bt_duplicate = ""; $bt_suppr = ""; } else { $bt_save = $base_path . "/admin.php?categ=planificateur&sub=manager&act=task&type_task_id=" . $type_task_id . "&planificateur_id=" . $planificateur_id; $bt_duplicate = "<input type='button' class='bouton' value='" . $msg["tache_duplicate_bouton"] . "' onclick='document.location=\"./admin.php?categ=planificateur&sub=manager&act=task_duplicate&type_task_id=" . $type_task_id . "&planificateur_id=" . $planificateur_id . "\"' />"; $bt_suppr = "<input type='button' class='bouton' value='" . $msg["63"] . "' onClick='location.href=\"{$base_path}/admin.php?categ=planificateur&sub=manager&act=task_del&type_task_id={$type_task_id}&planificateur_id=" . $planificateur_id . "\"'/>"; } $planificateur_form = str_replace("!!bt_save!!", $bt_save, $planificateur_form); $planificateur_form = str_replace("!!bt_duplicate!!", $bt_duplicate, $planificateur_form); $planificateur_form = str_replace("!!bt_supprimer!!", $bt_suppr, $planificateur_form); return $planificateur_form; }
function analyse_multifile() { global $id_rep; create_tableau_mimetype(); $repup = new upload_folder($id_rep); if (is_array($this->unzipped_files) && count($this->unzipped_files)) { for ($i = 0; $i < sizeof($this->unzipped_files); $i++) { $this->infos_docnum['userfile_name'] = $this->unzipped_files[$i]['nom']; if ($repup->isHashing()) { $hashname = $repup->hachage($this->infos_docnum['userfile_name']); $chemin = $repup->formate_path_to_save($repup->formate_path_to_nom($hashname)); } else { $chemin = $repup->formate_path_to_save($this->unzipped_files[$i]["chemin"]); } if ($this->unzipped_files[$i]['base']) { $this->infos_docnum['contenu'] = file_get_contents($this->unzipped_files[$i]['chemin']); $this->infos_docnum['path'] = ''; } else { $this->infos_docnum['contenu'] = ''; $this->infos_docnum['path'] = $chemin; } $ext = ''; if ($this->infos_docnum['userfile_name']) { $ext = extension_fichier($this->infos_docnum['userfile_name']); $this->infos_docnum['userfile_ext'] = $ext; } if ($this->unzipped_files[$i]['base']) { $this->infos_docnum['contenu_vignette'] = construire_vignette("", $this->infos_docnum['userfile_name']); } else { if ($repup->isHashing()) { $this->infos_docnum['contenu_vignette'] = construire_vignette("", $repup->encoder_chaine($hashname . $this->infos_docnum['userfile_name'])); } else { $this->infos_docnum['contenu_vignette'] = construire_vignette("", $repup->encoder_chaine($repup->formate_nom_to_path($this->unzipped_files[$i]['chemin']) . $this->infos_docnum['userfile_name'])); } } $mimetype = trouve_mimetype($this->unzipped_files[$i]['chemin'], $this->infos_docnum['userfile_ext']); if (!$mimetype) { $mimetype = "application/data"; } $this->infos_docnum['mime'] = $mimetype; if ($this->unzipped_files[$i]['base']) { unlink($this->unzipped_files[$i]['chemin']); } if ($mimetype == 'URL') { $this->infos_docnum['url'] = $this->unzipped_files[$i]['nom']; $this->infos_docnum['nom'] = ''; } else { $this->infos_docnum['nom'] = $this->unzipped_files[$i]['nom']; $this->infos_docnum['url'] = ''; } $this->update(); $this->explnum_id = 0; } } }