/** * Construit les noeuds de l'arborescence */ function getNodes($chemin = '', $id, &$tree) { if ($chemin && is_dir($chemin)) { if (($files = @scandir($chemin)) !== false) { for ($i = 0; $i < sizeof($files); $i++) { if ($files[$i] != '.' && $files[$i] != '..') { $id_noeud = $id . "_" . $i; $id_parent = $id; $dir_name = $files[$i]; $path = $chemin . $dir_name . "/"; if (is_dir($path)) { $id_copy = explode("_", $id_parent); $up = new upload_folder($id_copy[1]); //$tree .= "tab_libelle[\"$id_noeud\"] = \"".$up->decoder_chaine(addslashes($up->formate_path_to_nom($path))). "\";"; $tree .= "tab_libelle[\"{$id_noeud}\"] = \"" . addslashes($up->formate_path_to_nom($chemin) . $up->decoder_chaine($dir_name) . "/") . "\";"; $tree .= "_dt_fiel_.add('{$id_noeud}','{$id_parent}','" . addslashes($up->decoder_chaine($dir_name)) . "','','javascript:copy_to_div(\\'" . $id_noeud . "\\',\\'" . $up->repertoire_id . "\\');');\n"; $this->getNodes($path, $id_noeud, $tree); } } } } } return $tree; }
function get_doc_num($explnum, $upload_folder) { global $pmb_set_time_limit, $dbh; $report = array(); if (SESSrights & ADMINISTRATION_AUTH) { @set_time_limit($pmb_set_time_limit); if (is_array($explnum) && $upload_folder) { $idLien = ''; if ($explnum['explnum_bulletin']) { $query = "SELECT 1 FROM bulletins WHERE bulletin_id=" . $explnum['explnum_bulletin']; $result = pmb_mysql_query($query, $dbh); if (pmb_mysql_num_rows($result)) { $idLien = 'explnum_bulletin=' . $explnum['explnum_bulletin']; } } elseif ($explnum['explnum_notice']) { $query = "SELECT 1 FROM notices WHERE notice_id=" . $explnum['explnum_notice']; $result = pmb_mysql_query($query, $dbh); if (pmb_mysql_num_rows($result)) { $idLien = 'explnum_notice=' . $explnum['explnum_notice']; } } if ($idLien) { if (file_exists($upload_folder . $explnum['explnum_nomfichier'])) { if (!$explnum['explnum_nom']) { $explnum['explnum_nom'] = $explnum['explnum_nomfichier']; } if (!$explnum['explnum_repertoire']) { $explnum['explnum_repertoire'] = '1'; } if (!$explnum['explnum_statut']) { $explnum['explnum_statut'] = '0'; } if (!$explnum['explnum_path']) { $explnum['explnum_path'] = '/'; } if (!$explnum['explnum_extfichier']) { $match = array(); if (preg_match('/.+\\.(.+)$/', $explnum['explnum_nomfichier'], $match)) { $explnum['explnum_extfichier'] = $match[1]; } } if (!$explnum['explnum_mimetype']) { $explnum['explnum_mimetype'] = trouve_mimetype($upload_folder . $explnum['explnum_nomfichier'], $explnum['explnum_extfichier']); } if (!$explnum['explnum_vignette']) { $explnum['explnum_vignette'] = reduire_image($upload_folder . $explnum['explnum_nomfichier']); } $query = 'INSERT INTO explnum SET ' . $idLien . ', explnum_nom="' . addslashes($explnum['explnum_nom']) . '", explnum_mimetype="' . addslashes($explnum['explnum_mimetype']) . '", explnum_extfichier="' . addslashes($explnum['explnum_extfichier']) . '", explnum_nomfichier="' . addslashes($explnum['explnum_nomfichier']) . '", explnum_vignette="' . addslashes($explnum['explnum_vignette']) . '", explnum_path="' . addslashes($explnum['explnum_path']) . '", explnum_repertoire="' . addslashes($explnum['explnum_repertoire']) . '", explnum_statut="' . addslashes($explnum['explnum_statut']) . '"'; pmb_mysql_query($query, $dbh); $explnum['explnum_id'] = pmb_mysql_insert_id($dbh); if ($explnum['explnum_id']) { //on récup le répertoire dans lequel envoyer le fichier $upload_repertoire = new upload_folder($explnum['explnum_repertoire']); if (!is_dir($upload_repertoire->decoder_chaine($upload_repertoire->repertoire_path))) { $report['error'][] = $this->msg['get_doc_num_upload_repertoire_do_not_exist']; //On efface l'entrée $query = 'DELETE FROM explnum WHERE explnum_id=' . $explnum['explnum_id']; pmb_mysql_query($query, $dbh); } if (!rename($upload_folder . $explnum['explnum_nomfichier'], $upload_repertoire->decoder_chaine($upload_repertoire->repertoire_path) . $explnum['explnum_nomfichier'])) { $report['error'][] = $this->msg['get_doc_num_rename_error']; //On efface l'entrée $query = 'DELETE FROM explnum WHERE explnum_id=' . $explnum['explnum_id']; pmb_mysql_query($query, $dbh); } else { //Réussi ici, on réindex et on incrémente le résultat $obj_explnum = new explnum($explnum['explnum_id']); $index = new indexation_docnum($explnum['explnum_id']); $index->indexer(); $report['info'] = 1; } } else { //erreur de déplacement ou de création $report['error'][] = $this->msg['get_doc_num_cant_create_explnum']; } } else { $report['error'][] = $this->msg['get_doc_num_file_not_found']; //On efface l'entrée $query = 'DELETE FROM explnum WHERE explnum_id=' . $explnum['explnum_id']; pmb_mysql_query($query, $dbh); } } else { //doc num sans id notice ou bulletin $report['error'][] = $this->msg['get_doc_num_missing_link']; } } else { //il manque un param $report['error'][] = $this->msg['get_doc_num_missing_param']; } } return $report; }