function ExecActions($action) { /*=============*/ Lib_myLog("action: ", $action); // On recupere la configuration issue de conf.php global $lang, $taille_ecran, $MSG, $secure, $cle, $config, $taille_tableaux, $taille_tableaux_admin; // On recupere tous les objet contenant les donnees global $data_in, $data_out, $data_srv, $session, $tab_session; // Initialization des variables global $message, $fiche; switch ($action) { case "Recherche": case "Annuaire_Accueil": if (!isset($data_in['srch_nom']) && !isset($data_in['srch_prenom'])) { /*=============*/ Lib_myLog("On recupere du cache toutes les clefs de recherche"); if (!empty($data_srv['args_recherche'])) { foreach ($data_srv['args_recherche'] as $key => $value) { if (!isset($data_in[$key])) { $data_in[$key] = $value; } } } /*=============*/ Lib_myLog("Cache recupere:", $data_srv); } /*=============*/ Lib_myLog("On sauvegarde dans le cache toutes les clefs de recherche"); $data_srv['args_recherche'] = $data_in; /*=============*/ Lib_myLog("Recuperation des fiches a partir du cache"); $data_out['liste_types'] = TypesFiches_getCache(); /*=============*/ Lib_myLog("Recuperation de la liste des fiches avec les criteres de recherche"); $args_fiches['id_fiche'] = '*'; if (isset($data_in['srch_nom'])) { $args_fiches['fic_nom'] = '%' . $data_in['srch_nom'] . '%'; } if (isset($data_in['srch_prenom'])) { $args_fiches['fic_prenom'] = '%' . $data_in['srch_prenom'] . '%'; } $args_fiches['count'] = 1; $data_out['nb_resultats'] = $nb_sections = Fiches_chercher($args_fiches); // ======================= Tableau de navigation =========================== if ($nb_sections > 1) { $data_out['nb_sections'] = $nb_sections; /*=============*/ Lib_myLog("Recuperation de la section {$data_in['section']}"); $data_out['section'] = $data_in['section']; $args_fiches['limit'] = $taille_tableaux_admin; $args_fiches['start'] = !empty($data_in['section']) ? $data_in['section'] * $taille_tableaux_admin : 0; } $data_out['section'] = $data_in['section']; // ======================= =============================================== /*=============*/ Lib_myLog("Recherche des fiches"); $args_fiches['order_by'] = !empty($data_in['order_by']) ? $data_in['order_by'] : 'fic_nom'; $args_fiches['asc_desc'] = !empty($data_in['asc_desc']) ? $data_in['asc_desc'] : 'ASC'; unset($args_fiches['count']); $liste_fiches = Fiches_chercher($args_fiches); $data_out['action'] = 'Annuaire_Accueil'; $data_out['liste_fiches'] = $liste_fiches; if ($data_in['id_fiche']) { $data_out['id_fiche'] = $data_in['id_fiche']; } $data_out['page'] = 'annuaire.php'; break; case "Fiche_ADD": $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; // On intialise une pseudo-transaction qui nous permettre de stocker tous les objets rajoutés à la base // pour pouvoir les supprimer si nécessaire $transaction = new Collection(); if ($continue) { /*=============*/ Lib_myLog("Ajout d'un objet fiche"); $fiche = new Fiche(); $fiche->id_type_fiche = $data_in['id_type_fiche']; $fiche->fic_nom = $data_in['fic_nom']; $fiche->fic_prenom = $data_in['fic_prenom']; $fiche->fic_adresse1 = $data_in['fic_adresse1']; $fiche->fic_adresse2 = $data_in['fic_adresse2']; $fiche->fic_adresse3 = $data_in['fic_adresse3']; $fiche->fic_ville = $data_in['fic_ville']; $fiche->fic_email = $data_in['fic_email']; $id_fiche = $fiche->ADD(); // On passe l'id_fiche en data_in pour effectuer la recherche sur la fiche $data_in['id_fiche'] = $id_fiche; $data_in['srch_nom'] = $data_in['fic_nom']; $data_in['srch_prenom'] = $data_in['fic_prenom']; if (!$fiche->isError()) { $transaction->addElement($fiche); } else { $continue = false; } } // Utiliser les lignes suivantes si des fiches supplémentaires doivent être ajoutés // et que l'on doit gérer une transaction // if ($continue) { // /*=============*/ Lib_myLog("Ajout des informations supplementaires a l'objet fiche"); // $sous_fiche = new SousFiche($data_in['champ_sup1'], $data_in['champ_sup2'] , $data_in['champ_sup3']); // $sous_fiche->ADD(); // if (!$sous_fiche->isError()) { // $transaction->addElement($sous_fiche); // } else { // $transaction->DEL(); // $continue = false; // } //} if ($continue) { $data_out['message_ok'] = $MSG['fr']['%%fiche_ADD%%']; // On force le filtre pour que le système aille chercher à nouveau toutes les données en base $data_in['filtrer'] = 1; ExecActions('Annuaire_Accueil'); } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message'] = $MSG[$lang]['%%Erreur_Revalidation%%']; ExecActions('Annuaire_Accueil'); } else { /*=============*/ Lib_myLog("Annulation de l'ajout suite a une erreur"); if (!isset($data_out['message_ko'])) { $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Mysql%%']; } // On ré-affiche les données dans la page de saisie... $data_out = array_merge($data_out, $data_in); ExecActions('Annuaire_Accueil'); } } break; case "Fiche_UPD": /*=============*/ Lib_myLog("Mise a jour du fiche"); $fiche = Fiche_recuperer($data_in['id_fiche']); $fiche->id_type_fiche = $data_in['id_type_fiche']; $fiche->fic_nom = $data_in['fic_nom']; $fiche->fic_prenom = $data_in['fic_prenom']; $fiche->fic_adresse1 = $data_in['fic_adresse1']; $fiche->fic_adresse2 = $data_in['fic_adresse2']; $fiche->fic_adresse3 = $data_in['fic_adresse3']; $fiche->fic_ville = $data_in['fic_ville']; $fiche->fic_email = $data_in['fic_email']; $fiche->UPD(); $data_out['message_ok'] = $MSG['fr']['%%fiche_UPD%%']; // On force le filtre pour que le système aille chercher à nouveau toutes les données en base $data_in['filtrer'] = 1; ExecActions('Annuaire_Accueil'); break; case "Fiche_DEL": /*=============*/ Lib_myLog("Suppression du fiche avec l'identifiant " . $data_in['id_fiche']); $fiche = Fiche_recuperer($data_in['id_fiche']); $fiche->DEL(); $data_out['message_ok'] = $MSG['fr']['%%fiche_DEL%%']; ExecActions('Annuaire_Accueil'); break; case "Fiches_XL": /*=============*/ Lib_myLog("On recupere du cache toutes les clefs de recherche"); if (!empty($data_srv['args_recherche'])) { foreach ($data_srv['args_recherche'] as $key => $value) { if (!isset($data_in[$key])) { $data_in[$key] = $value; } } } /*=============*/ Lib_myLog("Recuperation de la liste des fiches avec les criteres de recherche"); $args_fiches['id_fiche'] = '*'; $args_fiches['fic_nom'] = '%' . $data_in['srch_nom'] . '%'; $args_fiches['fic_prenom'] = '%' . $data_in['srch_prenom'] . '%'; $liste_fiches = Fiches_chercher($args_fiches); /*=============*/ Lib_myLog("Impression de la liste en XL"); $time = time(); $file = "../exports/extraction_" . $time . ".xls"; // le fichier doit déjà exister if (!($myfile = fopen($file, "w"))) { /*=============*/ Lib_myLog("Erreur lors de la creation du fichier {$file}"); exit; } else { /*=============*/ Lib_myLog("Creation du fichier {$file}"); } $header .= "Nom\t "; $header .= "Prenom\t "; $header .= "Adresse1\t "; $header .= "Adresse2\t "; $header .= "Adresse3\t "; $header .= "CP\t "; $header .= "Ville\t "; $header .= "Email\t "; $header .= "\n"; fputs($myfile, $header); $body = ''; foreach ($liste_fiches as $fiche) { if (!isset($data_in['chk' . $fiche['id_fiche']])) { continue; } $body .= utf8_decode($fiche['fic_nom']) . "\t"; $body .= utf8_decode($fiche['fic_prenom']) . "\t"; $body .= utf8_decode($fiche['fic_adresse1']) . "\t"; $body .= utf8_decode($fiche['fic_adresse2']) . "\t"; $body .= utf8_decode($fiche['fic_adresse3']) . "\t"; $body .= $fiche['fic_cp'] . "\t"; $body .= utf8_decode($fiche['fic_ville']) . "\t"; $body .= $fiche['fic_email'] . "\t"; $body .= "\r\n"; } fputs($myfile, $body); fclose($myfile); //on ferme le fichier chmod($file, 0755); $size = filesize($file); header("Content-Type: application/octet-stream"); header("Content-Length: {$size}"); header("Content-Disposition: attachment; filename=file_" . $time . ".xls"); header("Content-Transfer-Encoding: binary"); $fh = fopen($file, "r"); fpassthru($fh); break; case "Fiches_PDF": /*=============*/ Lib_myLog("On recupere du cache toutes les clefs de recherche"); if (!empty($data_srv['args_recherche'])) { foreach ($data_srv['args_recherche'] as $key => $value) { if (!isset($data_in[$key])) { $data_in[$key] = $value; } } } /*=============*/ Lib_myLog("Recuperation de la liste des fiches avec les criteres de recherche"); $args_fiches['id_fiche'] = '*'; $args_fiches['fic_nom'] = '%' . $data_in['srch_nom'] . '%'; $args_fiches['fic_prenom'] = '%' . $data_in['srch_prenom'] . '%'; $data_out['liste_fiches'] = Fiches_chercher($args_fiches); $data_out['page'] = '../pdf/annuaire_pdf.php'; break; case "Fiches_Import": $continue = true; /*=============*/ Lib_myLog("Import du fichier"); $data_out['tab_resultat'][] = "Verification du fichier d'import"; $uploaddir = "../dilasys/tmp/"; $uploadfile = $uploaddir . $session . "_" . @basename($_FILES['userfile']['name']); /*=============*/ Lib_myLog("Deplacement du fichier en {$uploadfile}"); @move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile); if (file_exists($uploadfile)) { /*=============*/ Lib_myLog("Fichier trouve. Verification du format et du nombre de colonnes"); if (!preg_match("/csv\$/i", $_FILES['userfile']['name'])) { $data_out['message_ko'] = "Le format du fichier est incorrect (format csv attendu)"; $continue = false; } if ($continue) { $data = file($uploadfile); $premiere_ligne = explode(";", $data[0]); if (count($premiere_ligne) < 7) { $data_out['message_ko'] = "La premiè ligne ne contient pas le nombre de colonnes attendu"; $continue = false; } } if ($continue) { ini_set("max_execution_time", 2000); $numLigne = 1; $nbFiches = 0; foreach ($data as $ligne) { $tabCol = explode(";", $ligne); if ($numLigne == 1) { $numLigne++; continue; } else { // On n'importe pas des fiches n'ayant pas de nom ou de prénom if ($tabCol[0] == '' || $tabCol[1] == '') { continue; } /*=============*/ Lib_myLog("Traitement {$tabCol[0]} {$tabCol[1]}"); $fiche = Fiche_recuperer('', $tabCol[0], $tabCol[1]); if ($fiche->id_fiche == '') { /*=============*/ Lib_myLog("Ajout de la fiche"); $data_out['tab_resultat'][] = "Ajout de la fiche de {$tabCol[0]} {$tabCol[1]}"; $fiche = new Fiche(); $fiche->fic_nom = utf8_encode($tabCol[0]); $fiche->fic_prenom = utf8_encode($tabCol[1]); $fiche->fic_adresse1 = utf8_encode($tabCol[2]); $fiche->fic_adresse2 = utf8_encode($tabCol[3]); $fiche->fic_cp = $tabCol[4]; $fiche->fic_ville = utf8_encode($tabCol[5]); $fiche->fic_email = $tabCol[6]; $id_fiche = $fiche->ADD(); } else { /*=============*/ Lib_myLog("Modification de la fiche"); $data_out['tab_resultat'][] = "Modification de la fiche de {$tabCol[0]} {$tabCol[1]}"; $fiche->fic_adresse1 = utf8_encode($tabCol[2]); $fiche->fic_adresse2 = utf8_encode($tabCol[3]); $fiche->fic_cp = $tabCol[4]; $fiche->fic_ville = utf8_encode($tabCol[5]); $fiche->fic_email = $tabCol[6]; $fiche->UPD(); } $numLigne++; $nbFiches++; } } /*=============*/ Lib_myLog("{$nbFiches} fiches traitees"); $data_out['message_ok'] = "{$nbFiches} fiches ont été traitées"; } } ExecActions('Annuaire_Accueil'); break; /*============================================================================ Actions AJAX =============================================================================*/ /*============================================================================ Actions AJAX =============================================================================*/ case "BLOC_Fiche_SEE": case "BLOC_Fiche_ADD": case "BLOC_Fiche_UPD": if (isset($data_in['id_fiche'])) { /*=============*/ Lib_myLog("Recuperation de la fiche"); $args_fiche['id_fiche'] = $data_in['id_fiche']; $data_out['fiche'] = Fiches_chercher($args_fiche); } /*=============*/ Lib_myLog("Recuperation des fiches a partir du cache"); $data_out['liste_types'] = TypesFiches_getCache(); if ($action == "BLOC_Fiche_SEE") { $data_out['mode'] = 'see'; } if ($action == "BLOC_Fiche_ADD") { $data_out['mode'] = 'add'; } if ($action == "BLOC_Fiche_UPD") { $data_out['mode'] = 'upd'; } $data_out['page'] = 'annuaire_bloc_fiche.php'; break; case "AUTO_ListeNoms_ADD": // Action utilisée pour la saisie semi-automatique et appelée par la fonction AJAX /*=============*/ Lib_myLog("Recherche des fiches"); $args_fiche['fic_nom'] = $data_in['fic_nom'] . '%'; $args_fiche['fic_prenom'] = $data_in['fic_prenom'] . '%'; $data_out['liste_fiches'] = Fiches_chercher($args_fiche); /*=============*/ Lib_myLog("Retour"); $data_out['page'] = 'annuaire_auto_noms_add.php'; break; /*============================================================================ DEBUT Ajout dynamique =============================================================================*/ /*============================================================================ DEBUT Ajout dynamique =============================================================================*/ case "POPUP_TypeFicheADD": $data_out['page'] = 'annuaire_popup_type_fiche_add.php'; break; case "SELECT_TypesFiches": /*=============*/ Lib_myLog("Recherche des types de fiches"); $args_types['id_type_fiche'] = '*'; $data_out['liste_types'] = TypesFiches_chercher($args_types); $data_out['valeur_select'] = $data_in['valeur_select']; $data_out['page'] = 'annuaire_select_types_fiches.php'; break; case "TypeFiche_ADD": $erreur = false; $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; /*=============*/ Lib_myLog("On verifie qu'un type a bien ete saisi"); if ($data_in['libelle'] == '') { $continue = false; $erreur = true; $data_out['message_ko'] = $MSG[$lang]['%%ERR_type_fiche_manque%%']; } /*=============*/ Lib_myLog("On verifie si le type saisi n'existe pas deja"); if ($data_in['libelle'] != '') { $args_type['libelle'] = $data_in['libelle']; $liste_types = TypesFiches_chercher($args_type); if (count($liste_types)) { $continue = false; $erreur = true; $data_out['message_ko'] = $MSG[$lang]['%%ERR_type_fiche_existe%%']; } } if ($continue) { /*=============*/ Lib_myLog("Ajout d'un type de fiche"); $type = new TypeFiche(); $type->libelle = $data_in['libelle']; $id_type_fiche = $type->ADD(); Lib_writeData('', 'LISTE_TYPES_FICHES'); } if ($continue) { $data_out['message_ok'] = $MSG[$lang]['%%type_fiche_ADD%%']; $data_out['perte_focus'] = 1; $data_out['valeur_select'] = $id_type_fiche; $data_out['page'] = "annuaire_popup_type_fiche_add.php"; } else { if ($erreur) { $data_out['page'] = 'annuaire_popup_type_fiche_add.php'; } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Revalidation%%']; $data_out['page'] = "annuaire_popup_type_fiche_add.php"; } else { /*=============*/ Lib_myLog("Annulation de l'ajout suite a une erreur mysql"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Mysql%%']; // On ré-affiche les données dans la page de saisie... $data_out = array_merge($data_out, $data_in); $data_out['page'] = "annuaire_popup_type_fiche_add.php"; } } } break; /*============================================================================ FIN Ajout dynamique =============================================================================*/ /*============================================================================ FIN Ajout dynamique =============================================================================*/ case "POPUP_Memos_SEE": case "POPUP_MemosFiche_SEE": case "POPUP_Memos_UPD": /*=============*/ Lib_myLog("Recuperation des memos de la fiche"); // Affichage du plus récent en premier $args_memos['id_fiche'] = $data_in['id_fiche']; $args_memos['order_by'] = 'id_memo'; $args_memos['asc_desc'] = 'DESC'; $data_out['liste_memos'] = FicheMemos_chercher($args_memos); $data_out['id_fiche'] = $data_in['id_fiche']; if ($action == 'POPUP_Memos_SEE') { $data_out['page'] = 'annuaire_popup_memos_see.php'; } if ($action == 'POPUP_MemosFiche_SEE') { $data_out['page'] = 'annuaire_popup_memos_fiche_see.php'; } if ($action == 'POPUP_Memos_UPD') { $data_out['page'] = 'annuaire_popup_memos_upd.php'; } break; case "Memos_UPD": /*=============*/ Lib_myLog("Recuperation des memos de la fiche {$data_in['id_fiche']} pour mise a jour"); $args_memos['id_fiche'] = $data_in['id_fiche']; $liste_memos = FicheMemos_chercher($args_memos); foreach ($liste_memos as $memo) { $memo_upd = FicheMemo_recuperer($memo['id_memo']); $memo_upd->memo = $data_in['memo' . $memo['id_memo']]; $memo_upd->UPD(); } if ($data_in['memo'] != '') { /*=============*/ Lib_myLog("Ajout du nouveau memo"); $memo_add = new FicheMemo(); $memo_add->id_fiche = $data_in['id_fiche']; $memo_add->date_memo = mktime(0, 0, 0, $tab_date_memo[1], $tab_date_memo[0], $tab_date_memo[2]); $memo_add->memo = $data_in['memo']; $memo_add->ADD(); } break; case "Memos_DEL": /*=============*/ Lib_myLog("Suppression du memo"); $memo_del = FicheMemo_recuperer($data_in['id_memo']); $memo_del->DEL(); $data_in['id_fiche'] = $memo_del->id_fiche; ExecActions('POPUP_Memos_UPD'); break; default: ExecActions('Annuaire_Accueil'); break; } }
/** * - Cas Articles_ChoixAction : * . * Le cas (par défaut) Sites_ChoixAction détermine si l'action sera un ajout ou une modification ; en fonction, il ajoute les données du formulaire (wysiwyg) ou les modifie. */ function SiteDynamique_ChoixAction($data_in = array()) { Lib_myLog("action: " . $data_in['action']); foreach ($GLOBALS['tab_globals'] as $global) { global ${$global}; } Lib_myLog("IN: ", $data_in); Lib_myLog("FILE: ", __FILE__); $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; // On intialise une pseudo-transaction qui nous va permettre de stocker tous les objets rajoutés à la base // pour pouvoir les supprimer si nécessaire $transaction = new Collection(); // Cas de VIDAGE d'un article de la base if ($continue && isset($data_in['submit_clear'])) { /*=============*/ Lib_myLog("Vidage de l'article"); $article = Article_recuperer($data_in['id_article']); $article->contenu = ''; $article->UPD(); $data_out['message_ok'] = $MSG['fr']['%%UPD%%']; // On remet à 0 le fichier contenant le "cache" des articles pour l'affichage des blocs Lib_writeCache('', "ARTICLES"); // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeCache('', "ARBO"); $continue = false; } // Cas d'ANNULATION du brouillon si celui-ci existe if ($continue && isset($data_in['submit_cancel'])) { // On récupère tous les anciens articles correspondant au type d'article pour les supprimer $args_articles['id_article'] = $data_in['id_article']; $args_articles['etat'] = 'brouillon'; $liste_articles = Articles_chercher($args_articles); foreach ($liste_articles as $art) { $article = Article_recuperer($art['id_article']); $article->DEL(); } $continue = false; } // Cas de MODIFICATION d'article ou de PRE-VISUALISATION if ($continue) { /*=============*/ Lib_myLog("Recuperation de la categorie dans laquelle se retrouvera l'article"); if (isset($data_in['id_arbo_pere']) && $data_in['id_arbo_pere'] != 0) { $arbo = Arbo_recuperer($data_in['id_arbo_pere']); $args_arbos['famille'] = $arbo->famille . $arbo->id_arbo . '-'; $args_arbo['id_arbo'] = $data_in['id_arbo_pere']; $id_categorie_pere = $data_in['id_arbo_pere']; $id_categorie = $data_in['id_arbo_pere']; // Si l'id_arbo_fils est positionné, il "surclasse" l'id_arbo_pere! if (isset($data_in['id_arbo_fils']) && $data_in['id_arbo_fils'] != 0) { $arbo = Arbo_recuperer($data_in['id_arbo_fils']); $args_arbos['famille'] = $arbo->famille . $arbo->id_arbo . '-'; $args_arbo['id_arbo'] = $data_in['id_arbo_fils']; $id_categorie = $data_in['id_arbo_fils']; } } /*=============*/ Lib_myLog("Recuperation et mise a jour de l'article"); $article = Article_recuperer($data_in['id_article']); /*=============*/ Lib_myLog("Mise a jour l'article"); $article->id_article = $data_in['id_article']; $article->id_categorie = $id_categorie_pere; $article->titre_page = $data_in['titre_page']; $article->titre = $data_in['titre']; $article->meta_titre = $data_in['meta_titre'] != '' ? $data_in['meta_titre'] : $data_in['titre']; $article->meta_description = $data_in['meta_description']; $article->meta_mots_clefs = $data_in['meta_mots_clefs']; $article->meta_url = $data_in['meta_url'] != '' ? Lib_urlRewrite($data_in['meta_url']) : Lib_urlRewrite($data_in['titre']); $article->contenu = $data_in['text1']; if (isset($data_in['data1'])) { $article->data1 = $data_in['data1']; } if (isset($data_in['data2'])) { $article->data2 = $data_in['data2']; } if (isset($data_in['data3'])) { $article->data3 = $data_in['data3']; } if (isset($data_in['data4'])) { $article->data4 = $data_in['data4']; } if (isset($data_in['data5'])) { $article->data5 = $data_in['data5']; } if (isset($data_in['data6'])) { $article->data6 = $data_in['data6']; } if (isset($data_in['titre_data1'])) { $article->titre_data1 = $data_in['titre_data1']; } if (isset($data_in['titre_data2'])) { $article->titre_data2 = $data_in['titre_data2']; } if (isset($data_in['titre_data3'])) { $article->titre_data3 = $data_in['titre_data3']; } if (isset($data_in['titre_data4'])) { $article->titre_data4 = $data_in['titre_data4']; } if (isset($data_in['titre_data5'])) { $article->titre_data5 = $data_in['titre_data5']; } if (isset($data_in['titre_data6'])) { $article->titre_data6 = $data_in['titre_data6']; } if ($url_reel_vignette != '') { $article->url_vignette = $vignette; } if (isset($data_in['submit_valid']) && !isset($data_in['etat'])) { $article->etat = 'inactif'; } if (isset($data_in['submit_valid']) && isset($data_in['etat'])) { $article->etat = 'actif'; } if (!isset($data_in['submit_valid']) && !isset($data_in['submit_cancel']) && !isset($data_in['submit_clear'])) { $article->etat = 'brouillon'; } if ($_FILES["url_vignette"]["name"] != '') { //$valid = Lib_isValidFile($_FILES["url_vignette"]["name"], array("jpg", "jpeg", "png", "gif")); if ($_FILES["url_vignette"]['error'] == 1) { /*=============*/ Lib_myLog("Taille trop elevee"); $val = ini_get('upload_max_filesize'); $data_out['message_ko'] = $MSG['fr']['%%Erreur_Taille%%'] . " ({$val})"; $new->url_vignette = ''; } else { if ($valid == 1) { /*=============*/ Lib_myLog("Fichier non autorise"); $data_out['message_ko'] = $MSG['fr']['%%Fichier_non_autorise%%']; } else { /*=============*/ Lib_myLog("Telechargement de la vignette"); $url_vignette = Lib_nettoie($_FILES["url_vignette"]["name"]); $url_vignette = $article->id_article . '_' . $url_vignette; // Si la vignette existait déjà, on la remplace... if (file_exists('../../img_ftp/' . $url_vignette)) { unlink('../../img_ftp/' . $url_vignette); } if (is_uploaded_file($_FILES["url_vignette"]["tmp_name"])) { $tmp_vignette = $_FILES["url_vignette"]["tmp_name"]; rename($tmp_vignette, '../../img_ftp/' . $url_vignette); if (file_exists('../../img_ftp/' . $url_vignette) && $url_vignette != '') { chmod("../../img_ftp/{$url_vignette}", 0644); } // Redimensionnement, w=483, priorite w // Lib_redimImage("../../img_ftp/$file", 483, '', 'w'); } $article->url_vignette = $url_vignette; } } } $article->UPD(); if ($data_in['lang'] == 'fr') { $arbo = Arbo_recuperer_par_element($article->id_article, 'article', $data_in['code_arbo']); // $famille_initiale = $arbo->famille; // // Il faut d'abord vérifier si on ne travaille pas avec une catégorie et si l'article va changer de famille ou pas ! // if ($arbo->id_arbo_pere == 0 && !empty($args_arbos['famille']) && $famille_initiale != $args_arbos['famille']) { // /*=============*/ Lib_myLog("Changement de categorie : {$famille_initiale} => {$args_arbos['famille']}"); // $old_pos = $arbo->ordre; // $arbo->famille = $args_arbos['famille']; // $arbo->code_arbo = $data_in['code_arbo']; // $ordres = Arbos_chercher($args_arbos); // $pos = 0; // foreach ($ordres as $ordre) // if ($ordre['ordre'] > $pos) $pos = $ordre['ordre']; // $pos++; // $arbo->ordre = $pos; // $arbo->famille = $args_arbos['famille']; // /*=============*/ Lib_myLog("Nouvelle position : {$pos}"); // // /*=============*/ Lib_myLog("Retablissement de l'ordre sans coupure dans l'arborescence initiale ({$famille_initiale})"); // $args_arbos = ''; // $args_arbos['famille'] = $famille_initiale; // $args_arbos['code_arbo'] = $data_in['code_arbo']; // $ordres = Arbos_chercher($args_arbos); // foreach($ordres as $ordre) { // // On ne prend en compte que les elements ayant un ordre supérieur à celui de l'élément ! // if ($ordre['ordre'] < $old_pos) continue; // $arbo_upd = Arbo_recuperer($ordre['id_arbo']); // $arbo_upd->ordre = $arbo_upd->ordre -1; // $arbo_upd->UPD(); // } // } $arbo->intitule = $data_in['titre']; $arbo->UPD(); } if (empty($data_out['message_ko'])) { $data_out['message_ok'] = $MSG['fr']['%%UPD%%']; } // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeCache('', "ARBO"); // On remet à 0 le fichier contenant le "cache" des articles pour l'affichage des blocs Lib_writeCache('', "ARTICLES"); } if ($continue) { if (isset($data_in['submit_valid'])) { if (isset($data_in['code_arbo'])) { header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/actions.php?action=Arbo_Accueil&code_arbo={$data_in['code_arbo']}"); } else { $data_in['action'] = 'SiteDynamique_Apercu'; call_user_func('SiteDynamique_Apercu', $data_in); } } if (!isset($data_in['submit_valid']) && !isset($data_in['submit_cancel']) && !isset($data_in['submit_clear'])) { $data_in['action'] = 'SiteDynamique_Preview'; } call_user_func('SiteDynamique_Preview', $data_in); } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Revalidation%%']; $data_in['action'] = 'SiteDynamique_Apercu'; call_user_func('SiteDynamique_Apercu', $data_in); } else { $data_in['action'] = 'SiteDynamique_Apercu'; call_user_func('SiteDynamique_Apercu', $data_in); } } }
function TypeFiche_ADD($data_in = array()) { Lib_myLog("action: " . $data_in['action']); foreach ($GLOBALS['tab_globals'] as $global) { global ${$global}; } Lib_myLog("IN: ", $data_in); Lib_myLog("FILE: ", __FILE__); $erreur = false; $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; /*=============*/ Lib_myLog("On verifie qu'un type a bien ete saisi"); if ($data_in['libelle'] == '') { $continue = false; $erreur = true; } /*=============*/ Lib_myLog("On verifie si le type saisi n'existe pas deja"); if ($data_in['libelle'] != '') { $args_type['libelle'] = $data_in['libelle']; $liste_types = TypesFiches_chercher($args_type); if (count($liste_types)) { $continue = false; $erreur = true; } } if ($continue) { /*=============*/ Lib_myLog("Ajout d'un type de fiche"); $type = new TypeFiche(); $type->libelle = $data_in['libelle']; $id_type_fiche = $type->ADD(); Lib_writeData('', 'LISTE_TYPES_FICHES'); } }
function Adherents_Adherent_ADD($data_in = array()) { Lib_myLog("action: " . $data_in['action']); foreach ($GLOBALS['tab_globals'] as $global) { global ${$global}; } Lib_myLog("IN: ", $data_in); Lib_myLog("FILE: ", __FILE__); $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; // On intialise une pseudo-transaction qui nous permettre de stocker tous les objets rajoutés à la base // pour pouvoir les supprimer si nécessaire $transaction = new Collection(); if ($continue) { $logo = ''; if ($_FILES["logo"]["name"] != '') { /*=============*/ Lib_myLog("Telechargement du logo"); $logo = Lib_nettoie($_FILES["logo"]["name"]); $logo = $data_in['id_adherent'] . '_' . $logo; /*=============*/ Lib_myLog("Nouveau nom pour le logo : {$logo}"); $url_logo = '../../img_ftp/' . $logo; if ($_FILES['logo']['error']) { switch ($_FILES['logo']['error']) { case 1: // UPLOAD_ERR_INI_SIZE echo "Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !"; break; case 2: // UPLOAD_ERR_FORM_SIZE echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !"; break; case 3: // UPLOAD_ERR_PARTIAL echo "L'envoi du fichier a été interrompu pendant le transfert !"; break; case 4: // UPLOAD_ERR_NO_FILE echo "Le fichier que vous avez envoyé a une taille nulle !"; break; } } else { // Si le logo existait déjà, on le remplace... if (file_exists($url_logo)) { unlink($url_logo); } if (is_uploaded_file($_FILES["logo"]["tmp_name"])) { $tmp_logo = $_FILES["logo"]["tmp_name"]; rename($tmp_logo, $url_logo); /*=============*/ Lib_myLog("Redimensionnement, w max=200, h max=220, priorite=h"); Lib_redimImage($url_logo, 200, 220, 'h'); chmod("{$url_logo}", 0644); } } } // $categorie1 = ''; // foreach($GLOBALS['CONF']['CATEGORIE1'] as $id => $libelle) // if ($data_in['chk_categorie1_'.$id]) // $categorie1 .= "|{$id}|"; // /*=============*/ Lib_myLog("Parametrage categorie1 : {$categorie1}"); // // $categorie2 = ''; // foreach($GLOBALS['CONF']['CATEGORIE2'] as $id => $libelle) // if ($data_in['chk_categorie2_'.$id]) // $categorie2 .= "|{$id}|"; // /*=============*/ Lib_myLog("Parametrage categorie2 : {$categorie2}"); // // $categorie3 = ''; // foreach($GLOBALS['CONF']['CATEGORIE3'] as $id => $libelle) // if ($data_in['chk_categorie3_'.$id]) // $categorie3 .= "|{$id}|"; // /*=============*/ Lib_myLog("Parametrage categorie1 : {$categorie3}"); /*=============*/ Lib_myLog("Ajout d'un adherent"); $adh = new Adherent(); $adh->nom = $data_in['nom']; $adh->prenom = $data_in['prenom']; $adh->enseigne = $data_in['enseigne']; $adh->raison_sociale = $data_in['raison_sociale']; $adh->adresse1 = $data_in['adresse1']; $adh->adresse2 = $data_in['adresse2']; $adh->ville = $data_in['ville']; $adh->cp = $data_in['cp']; $adh->pays = $data_in['pays']; $adh->telephone = $data_in['telephone']; $adh->fax = $data_in['fax']; $adh->email = $data_in['email']; $adh->site_internet = $data_in['site_internet']; $adh->logo = $logo; $adh->categorie = $data_in['categorie']; $adh->nature_lien = $data_in['nature_lien']; $adh->info_publique = $data_in['info_publique']; $adh->categorie1 = $categorie1; $adh->categorie2 = $categorie2; $adh->categorie3 = $categorie3; $adh->latitude = $data_in['latitude']; $adh->longitude = $data_in['longitude']; if ($data_in['nom_utilisateur'] == '') { // On prend la 1ère et la dernière lette de la raison sociale, la première lettre de la ville et le code postal $nom_utilisateur = substr($data_in['raison_sociale'], 0, 1); $nom_utilisateur .= substr($data_in['raison_sociale'], -1); $nom_utilisateur .= substr($data_in['ville'], -1); $nom_utilisateur .= $data_in['cp']; $data_in['nom_utilisateur'] = strtoupper($nom_utilisateur); } $adh->nom_utilisateur = $data_in['nom_utilisateur']; if ($data_in['password'] == '') { // Génération d'un nombre aléatoire sur 3 chiffres n'existant pas déjà en base $data_in['password'] = mt_rand(100, 899); } $adh->password = $data_in['password']; $id_adherent = $adh->ADD(); if (!$adh->isError()) { $transaction->addElement($adh); } else { $continue = false; } } if ($continue) { $data_out['message_ok'] = $MSG['fr']['%%fiche_ADD%%']; // On force le filtre pour que le système aille chercher à nouveau toutes les données en base $data_in['filtrer'] = 1; $data_in['action'] = 'Adherents_Recherche'; call_user_func('Adherents_Recherche', $data_in); } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message'] = $MSG[$lang]['%%Erreur_Revalidation%%']; $data_in['action'] = 'Adherents_Recherche'; call_user_func('Adherents_Recherche', $data_in); } else { /*=============*/ Lib_myLog("Annulation de l'ajout suite a une erreur"); if (!isset($data_out['message_ko'])) { $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Mysql%%']; } // On ré-affiche les données dans la page de saisie... $data_out = array_merge($data_out, $data_in); $data_in['action'] = 'Adherents_Recherche'; call_user_func('Adherents_Recherche', $data_in); } } }
function News_ImageIntro_UPD($data_in = array()) { Lib_myLog("action: " . $data_in['action']); foreach ($GLOBALS['tab_globals'] as $global) { global ${$global}; } Lib_myLog("IN: ", $data_in); Lib_myLog("FILE: ", __FILE__); $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; // On intialise une pseudo-transaction qui nous permettre de stocker tous les objets rajoutés à la base // pour pouvoir les supprimer si nécessaire $transaction = new Collection(); // Cas de SUPPRESSION complète de l'new de la base if (isset($data_in['submit_clear'])) { /*=============*/ Lib_myLog("Suppression de l'image d'intro"); $args_news['code'] = 999999999; $args_news['code_news'] = $data_in['code_news']; $liste_news = Articles_chercher($args_news); foreach ($liste_news as $new) { $new = Article_recuperer($new['id_article']); $new->DEL(); } // On remet à 0 le fichier contenant le "cache" des news pour l'affichage des blocs Lib_writeCache('', "ARTICLES"); $data_out['message_ok'] = $MSG['fr']['%%imageIntro_DEL%%']; $continue = false; } // Cas de MODIFICATION d'new ou de PRE-VISUALISATION if ($continue) { $tab_langues = $GLOBALS['LANGUES']; $tab_langues[] = 'fr'; foreach ($tab_langues as $langue) { /*=============*/ Lib_myLog("Recherche de l'image d'intro"); $args['code_news'] = $data_in['code_news']; $args['code'] = 999999999; $args['lang'] = $langue; $news_bdd = Articles_chercher($args); if (isset($news_bdd['id_article'])) { /*=============*/ Lib_myLog("Image d'intro trouvee => recuperation"); $new = Article_recuperer($news_bdd['id_article']); /*=============*/ Lib_myLog("Coucou", $_FILES); if ($_FILES["image_intro_" . $langue]['name'] != '') { $file = Lib_nettoie($_FILES["image_intro_" . $langue]['name']); $file = $news_bdd['id_article'] . '_' . $file; // Si le fichier existait déjà, on la supprime... if (file_exists('../../img_ftp/' . $file)) { unlink('../../img_ftp/' . $file); } if (is_uploaded_file($_FILES["image_intro_" . $langue]['tmp_name'])) { /*=============*/ Lib_myLog("deplacement du fichier au bon endroit"); $tmp = $_FILES['image_intro_' . $langue]['tmp_name']; rename($tmp, '../../img_ftp/' . $file); if (file_exists('../../img_ftp/' . $file) && $file != '') { chmod("../../img_ftp/{$file}", 0644); } // Redimensionnement, w=1000, priorite w Lib_redimImage("../../img_ftp/{$file}", 105, 105, 'w'); } $new->image_intro = $file; } $new->UPD(); $data_out['message_ok'] = $MSG['fr']['%%imageIntro_UPD%%']; } if (!isset($news_bdd['id_article'])) { /*=============*/ Lib_myLog("Intro non trouvee => ajout"); $new = new Article(); $new->code_news = $data_in['code_news']; $new->code = $data_in['code']; $new->lang = $langue; $new->etat = 'actif'; $id_article = $new->ADD(); $new = Article_recuperer($id_article); if ($_FILES['image_intro_' . $langue]['name'] != '') { $file = Lib_nettoie($_FILES['image_intro_' . $langue]['name']); $file = $id_article . '_' . $file; if (file_exists('../../img_ftp/' . $file)) { unlink('../../img_ftp/' . $file); } if (is_uploaded_file($_FILES['image_intro_' . $langue]['tmp_name'])) { /*=============*/ Lib_myLog("deplacement du fichier au bon endroit"); $tmp = $_FILES['image_intro_' . $langue]['tmp_name']; rename($tmp, '../../img_ftp/' . $file); if (file_exists('../../img_ftp/' . $file) && $file != '') { chmod("../../img_ftp/{$file}", 0644); } // Redimensionnement, w=1000, priorite w Lib_redimImage("../../img_ftp/{$file}", 105, 105, 'w'); } $new->image_intro = $file; $new->id_article = $id_article; $new->UPD(); } $data_out['message_ok'] = $MSG['fr']['%%imageIntro_ADD%%']; } } // On remet à 0 le fichier contenant le "cache" des news pour l'affichage des blocs Lib_writeCache('', "ARTICLES"); } if ($continue) { $data_in['action'] = 'News_Accueil'; call_user_func('News_Accueil', $data_in); } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Revalidation%%']; $data_in['action'] = 'News_Accueil'; call_user_func('News_Accueil', $data_in); } else { $data_in['action'] = 'News_Accueil'; call_user_func('News_Accueil', $data_in); } } }
function Arbo_Element_ADD($data_in = array()) { Lib_myLog("action: " . $data_in['action']); foreach ($GLOBALS['tab_globals'] as $global) { global ${$global}; } Lib_myLog("IN: ", $data_in); Lib_myLog("FILE: ", __FILE__); $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; if ($continue) { $args_arbos['code_arbo'] = $data_in['code_arbo']; $args_arbos['famille'] = ''; if ($data_in['id_arbo_pere'] != 0) { $arbo = Arbo_recuperer($data_in['id_arbo_pere']); $args_arbos['famille'] = $arbo->famille . $arbo->id_arbo . '-'; $args_arbo['id_arbo'] = $data_in['id_arbo_pere']; $id_categorie = $data_in['id_arbo_pere']; } // Si un id_arbo_fils est positionné, il "surclasse" l'id_pere! if (isset($data_in['id_arbo_fils']) && $data_in['id_arbo_fils'] != 0) { $arbo = Arbo_recuperer($data_in['id_arbo_fils']); $args_arbos['famille'] = $arbo->famille . $arbo->id_arbo . '-'; $args_arbo['id_arbo'] = $data_in['id_arbo_fils']; } if (isset($data_in['id_arbo_petit_fils']) && $data_in['id_arbo_petit_fils'] != 0) { $arbo = Arbo_recuperer($data_in['id_arbo_petit_fils']); $args_arbos['famille'] = $arbo->famille . $arbo->id_arbo . '-'; $args_arbo['id_arbo'] = $data_in['id_arbo_petit_fils']; } /*=============*/ Lib_myLog("On determine le nouvel ordre a attribuer au nouvel element dans l'arbo"); $arbos = Arbos_chercher($args_arbos); $ordre = count($arbos); $ordre++; /*=============*/ Lib_myLog("On recupere la categorie dont va dependre l'article"); $arbo = Arbos_chercher($args_arbo); /*=============*/ Lib_myLog("Creation du nouvel article"); $article = new Article(); $article->titre_page = $data_in['titre_page']; // On met dans le titre le titre_page par défaut. Celui-ci sera changé à l'édition de l'article de toutes façons... $article->titre = $data_in['titre_page']; $article->lang = 'fr'; $article->etat = 'actif'; $id_article = $article->ADD(); $article = Article_recuperer($id_article); if ($_FILES["url_vignette"]["name"] != '') { //$valid = Lib_isValidFile($_FILES["url_vignette"]["name"], array("jpg", "jpeg", "png", "gif")); if ($_FILES["url_vignette"]['error'] == 1) { /*=============*/ Lib_myLog("Taille trop elevee"); $val = ini_get('upload_max_filesize'); $data_out['message_ko'] = $MSG['fr']['%%Erreur_Taille%%'] . " ({$val})"; $article->url_vignette = ''; } else { if ($valid == 1) { /*=============*/ Lib_myLog("Fichier non autorise"); $data_out['message_ko'] = $MSG['fr']['%%Fichier_non_autorise%%']; } else { /*=============*/ Lib_myLog("Telechargement de la vignette"); $url_vignette = Lib_nettoie($_FILES["url_vignette"]["name"]); $url_vignette = $article->id_article . '_' . $url_vignette; // Si la vignette existait déjà, on la remplace... if (file_exists('../../img_ftp/' . $url_vignette)) { unlink('../../img_ftp/' . $url_vignette); } if (is_uploaded_file($_FILES["url_vignette"]["tmp_name"])) { $tmp_vignette = $_FILES["url_vignette"]["tmp_name"]; rename($tmp_vignette, '../../img_ftp/' . $url_vignette); chmod("../../img_ftp/{$url_vignette}", 0644); // Redimensionnement, w=483, priorite w // Lib_redimImage("../../img_ftp/$file", 483, '', 'w'); } $article->url_vignette = $url_vignette; } } } // On définit un code pour pouvoir retrouver le même article en plusieurs langues $article->code = 'article-' . $id_article; $article->UPD(); foreach ($GLOBALS['LANGUES'] as $langue) { /*=============*/ Lib_myLog("Ajout de l'article en {$langue}"); $article->lang = $langue; $article->ADD(); } /*=============*/ Lib_myLog("Rajout du nouvel article dans l'arbo"); $new_arbo = new Arbo(); $new_arbo->code_arbo = $data_in['code_arbo']; $new_arbo->id_pere = $id_article; $new_arbo->famille .= $arbo['famille'] . $arbo['id_arbo'] . '-'; $new_arbo->type_pere = 'article'; $new_arbo->ordre = $ordre; $new_arbo->intitule = $data_in['titre_page']; $new_arbo->etat = 'actif'; $new_arbo->ADD(); // On remet à 0 le fichier contenant le "cache" des articles pour l'affichage des blocs Lib_writeCache('', "ARTICLES"); // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeCache('', "ARBO"); } if ($continue) { $data_in['id_article'] = $id_article; if (isset($data_in['code_arbo'])) { header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/actions.php?action=Arbo_Accueil&code_arbo={$data_in['code_arbo']}"); } else { $data_in['action'] = 'Site_Apercu'; call_user_func('Site_Apercu', $data_in); } } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Revalidation%%']; $data_in['action'] = 'Site_Apercu'; call_user_func('Site_Apercu', $data_in); } else { $data_in['action'] = 'Site_Apercu'; call_user_func('Site_Apercu', $data_in); } } }
/** * - Cas Articles_ChoixAction : * . * Le cas (par défaut) Sites_ChoixAction détermine si l'action sera un ajout ou une modification ; en fonction, il ajoute les données du formulaire (wysiwyg) ou les modifie. */ function SiteStatique_ChoixAction($data_in = array()) { Lib_myLog("action: " . $data_in['action']); foreach ($GLOBALS['tab_globals'] as $global) { global ${$global}; } Lib_myLog("IN: ", $data_in); Lib_myLog("FILE: ", __FILE__); $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; // On intialise une pseudo-transaction qui nous permettre de stocker tous les objets rajoutés à la base // pour pouvoir les supprimer si nécessaire $transaction = new Collection(); // Cas de SUPPRESSION complète de l'article de la base if (isset($data_in['submit_clear'])) { /*=============*/ Lib_myLog("Suppression des articles"); // On récupère tous les anciens articles correspondant au type d'article pour les supprimer $args_articles['code'] = $data_in['code']; $liste_articles = Articles_chercher($args_articles); foreach ($liste_articles as $art) { $article = Article_recuperer($art['id_article']); $article->etat = 'supprime'; $article->UPD(); } $data_out['message_ok'] = $MSG['fr']['%%DEL%%']; // On remet à 0 le fichier contenant le "cache" des articles pour l'affichage des blocs Lib_writeCache('', "ARTICLES"); $continue = false; } // Cas d'ANNULATION du brouillon si celui-ci existe if (isset($data_in['submit_cancel'])) { // On récupère tous les anciens articles correspondant au type d'article pour les supprimer $args_articles['code'] = $data_in['code']; $args_articles['etat'] = 'brouillon'; $liste_articles = Articles_chercher($args_articles); foreach ($liste_articles as $art) { $article = Article_recuperer($art['id_article']); $article->DEL(); } $continue = false; } // Cas de MODIFICATION d'article ou de PRE-VISUALISATION if ($continue) { /*=============*/ Lib_myLog("Recherche de l'article"); $args['code'] = $data_in['code']; $args['lang'] = $data_in['lang'] != '' && $data_in['lang'] != '' ? $data_in['lang'] : 'fr'; $article_bdd = Articles_chercher($args); // 2 cas se présentent: // - Soit il s'agit d'une modification sur un article encore en "brouillon" ou "inactif'. // - Soit il s'agit d'une modification sur un article "actif". if (isset($article_bdd['id_article'])) { /*=============*/ Lib_myLog("Article trouve, recuperation de l'article"); $article = Article_recuperer($article_bdd['id_article']); /*=============*/ Lib_myLog("Mise a jour l'article"); $article->titre = $data_in['titre']; $article->meta_titre = $data_in['meta_titre']; $article->meta_description = $data_in['meta_description']; $article->meta_mots_clefs = $data_in['meta_mots_clefs']; $article->meta_url = $data_in['meta_url']; $article->texte_intro = $data_in['texte_intro']; $article->contenu = $data_in['text1']; for ($i = 1; $i <= 20; $i++) { $champ = 'titre_data' . $i; if (isset($data_in['titre_data' . $i])) { $article->{$champ} = $data_in['titre_data' . $i]; } $champ = 'data' . $i; if (isset($data_in['data' . $i])) { $article->{$champ} = $data_in['data' . $i]; } } if (isset($data_in['submit_valid']) && !isset($data_in['etat'])) { $article->etat = 'inactif'; } if (isset($data_in['submit_valid']) && isset($data_in['etat'])) { $article->etat = 'actif'; } if (!isset($data_in['submit_valid']) && !isset($data_in['submit_cancel']) && !isset($data_in['submit_clear'])) { $article->etat = 'brouillon'; } if ($_FILES["url_vignette"]['error'] == 1) { /*=============*/ Lib_myLog("Taille trop elevee"); $val = ini_get('upload_max_filesize'); $data_out['message_ko'] = $MSG['fr']['%%Erreur_Taille%%'] . " ({$val})"; $article->url_vignette = ''; } else { if ($_FILES["url_vignette"]["name"] != '') { /*=============*/ Lib_myLog("Telechargement de la vignette"); $url_vignette = Lib_nettoie($_FILES["url_vignette"]["name"]); $url_vignette = $article->id_article . '_' . $url_vignette; // Si la vignette existait déjà, on la remplace... if (file_exists('../../img_ftp/' . $url_vignette)) { unlink('../../img_ftp/' . $url_vignette); } if (is_uploaded_file($_FILES["url_vignette"]["tmp_name"])) { $tmp_vignette = $_FILES["url_vignette"]["tmp_name"]; rename($tmp_vignette, '../../img_ftp/' . $url_vignette); if (file_exists('../../img_ftp/' . $url_vignette) && $url_vignette != '') { chmod("../../img_ftp/{$url_vignette}", 0644); } // Redimensionnement, w=1000, priorite w Lib_redimImage("../../img_ftp/{$url_vignette}", 1000, '', 'w'); } $article->url_vignette = $url_vignette; } } if ($_FILES["url_image2"]['error'] == 1) { /*=============*/ Lib_myLog("Taille trop elevee"); $val = ini_get('upload_max_filesize'); $data_out['message_ko'] = $MSG['fr']['%%Erreur_Taille%%'] . " ({$val})"; $article->url_image2 = ''; } else { if ($_FILES["url_image2"]["name"] != '') { /*=============*/ Lib_myLog("Telechargement de la 2e vignette"); $url_image2 = Lib_nettoie($_FILES["url_image2"]["name"]); $url_image2 = $article->id_article . '_' . $url_image2; // Si la vignette existait déjà, on la remplace... if (file_exists('../../img_ftp/' . $url_image2)) { unlink('../../img_ftp/' . $url_image2); } if (is_uploaded_file($_FILES["url_image2"]["tmp_name"])) { $tmp_image2 = $_FILES["url_image2"]["tmp_name"]; rename($tmp_image2, '../../img_ftp/' . $url_image2); if (file_exists('../../img_ftp/' . $url_image2) && $url_image2 != '') { chmod("../../img_ftp/{$url_image2}", 0644); } // Redimensionnement, w=1000, priorite w Lib_redimImage("../../img_ftp/{$url_image2}", 1000, '', 'w'); } $article->url_image2 = $url_image2; } } for ($i = 1; $i <= 5; $i++) { if ($_FILES["fichier" . $i]['error'] == 1) { /*=============*/ Lib_myLog("Taille trop elevee"); $val = ini_get('upload_max_filesize'); $data_out['message_ko'] = $MSG['fr']['%%Erreur_Taille%%'] . " ({$val})"; $champ = 'fichier' . $i; $article->{$champ} = ''; } else { if ($_FILES["fichier" . $i]["name"] != '') { /*=============*/ Lib_myLog("Telechargement de la 2e vignette"); $fichier = Lib_nettoie($_FILES["fichier" . $i]["name"]); $fichier = $article->id_article . '_' . $fichier; // Si la vignette existait déjà, on la remplace... if (file_exists('../../img_ftp/' . $fichier)) { unlink('../../img_ftp/' . $fichier); } if (is_uploaded_file($_FILES["fichier" . $i]["tmp_name"])) { $tmp_image = $_FILES["fichier" . $i]["tmp_name"]; rename($tmp_image, '../../img_ftp/' . $fichier); if (file_exists('../../img_ftp/' . $fichier) && $fichier != '') { chmod("../../img_ftp/{$fichier}", 0644); } // Redimensionnement, w=1000, priorite w Lib_redimImage("../../img_ftp/{$fichier}", 1000, '', 'w'); } $champ = 'fichier' . $i; $article->{$champ} = $fichier; } } } $data_out['message_ok'] = $MSG['fr']['%%UPD%%']; $article->UPD(); } // Ici il s'agit de l'ajout d'un nouvel article qui n'existait pas auparavant puisque l'id_article n'est pas fourni. // On créé donc autant d'articles qu'il y a de langues... if (!isset($article_bdd['id_article'])) { /*=============*/ Lib_myLog("Article non trouve. Ajout d'un nouvel article en fr"); $article = new Article(); $article->code = $data_in['code']; $article->lang = 'fr'; $article->contenu = $data_in['text1']; $article->titre = $data_in['titre']; $article->meta_titre = $data_in['meta_titre']; $article->meta_description = $data_in['meta_description']; $article->meta_mots_clefs = $data_in['meta_mots_clefs']; $article->meta_url = $data_in['meta_url']; $article->texte_intro = $data_in['texte_intro']; for ($i = 1; $i <= 20; $i++) { $champ = 'titre_data' . $i; if (isset($data_in['titre_data' . $i])) { $article->{$champ} = $data_in['titre_data' . $i]; } $champ = 'data' . $i; if (isset($data_in['data' . $i])) { $article->{$champ} = $data_in['data' . $i]; } } // Mettre ici la catégorie afin de pouvoir retrouver facilement toutes les pages d'un même type dans la BDD $article->categorie = 'page_statique'; if (isset($data_in['etat']) && isset($data_in['submit_valid'])) { $article->etat = 'actif'; } if (!isset($data_in['submit_valid']) && !isset($data_in['submit_cancel']) && !isset($data_in['submit_clear'])) { $article->etat = 'brouillon'; } if (!isset($data_in['etat']) && isset($data_in['submit_valid'])) { $article->etat = 'inactif'; } $id_article = $article->ADD(); $data_out['message_ok'] = $MSG['fr']['%%ADD%%']; $article = Article_recuperer($id_article); if (!$article->isError()) { $transaction->addElement($article); } else { $continue = false; } if ($_FILES["url_vignette"]['error'] == 1) { /*=============*/ Lib_myLog("Taille trop elevee"); $val = ini_get('upload_max_filesize'); $data_out['message_ko'] = $MSG['fr']['%%Erreur_Taille%%'] . " ({$val})"; $article->url_vignette = ''; } else { if ($_FILES["url_vignette"]["name"] != '') { /*=============*/ Lib_myLog("Telechargement de la vignette"); $url_vignette = Lib_nettoie($_FILES["url_vignette"]["name"]); $url_vignette = $article->id_article . '_' . $url_vignette; // Si la vignette existait déjà, on la remplace... if (file_exists('../../img_ftp/' . $url_vignette)) { unlink('../../img_ftp/' . $url_vignette); } if (is_uploaded_file($_FILES["url_vignette"]["tmp_name"])) { $tmp_vignette = $_FILES["url_vignette"]["tmp_name"]; rename($tmp_vignette, '../../img_ftp/' . $url_vignette); if (file_exists('../../img_ftp/' . $url_vignette) && $url_vignette != '') { chmod("../../img_ftp/{$url_vignette}", 0644); } } $article->url_vignette = $url_vignette; $article->UPD(); } } if ($_FILES["url_image2"]['error'] == 1) { /*=============*/ Lib_myLog("Taille trop elevee"); $val = ini_get('upload_max_filesize'); $data_out['message_ko'] = $MSG['fr']['%%Erreur_Taille%%'] . " ({$val})"; $article->url_image2 = ''; } else { if ($_FILES["url_image2"]["name"] != '') { /*=============*/ Lib_myLog("Telechargement de la 2e vignette"); $url_image2 = Lib_nettoie($_FILES["url_image2"]["name"]); $url_image2 = $article->id_article . '_' . $url_image2; // Si la vignette existait déjà, on la remplace... if (file_exists('../../img_ftp/' . $url_image2)) { unlink('../../img_ftp/' . $url_image2); } if (is_uploaded_file($_FILES["url_image2"]["tmp_name"])) { $tmp_image2 = $_FILES["url_image2"]["tmp_name"]; rename($tmp_image2, '../../img_ftp/' . $url_image2); if (file_exists('../../img_ftp/' . $url_image2) && $url_image2 != '') { chmod("../../img_ftp/{$url_image2}", 0644); } } $article->url_image2 = $url_image2; } } for ($i = 1; $i <= 5; $i++) { if ($_FILES["fichier" . $i]['error'] == 1) { /*=============*/ Lib_myLog("Taille trop elevee"); $val = ini_get('upload_max_filesize'); $data_out['message_ko'] = $MSG['fr']['%%Erreur_Taille%%'] . " ({$val})"; $champ = 'fichier' . $i; $article->{$champ} = ''; } else { if ($_FILES["fichier" . $i]["name"] != '') { /*=============*/ Lib_myLog("Telechargement de la 2e vignette"); $fichier = Lib_nettoie($_FILES["fichier" . $i]["name"]); $fichier = $article->id_article . '_' . $fichier; // Si la vignette existait déjà, on la remplace... if (file_exists('../../img_ftp/' . $fichier)) { unlink('../../img_ftp/' . $fichier); } if (is_uploaded_file($_FILES["fichier" . $i]["tmp_name"])) { $tmp_image = $_FILES["fichier" . $i]["tmp_name"]; rename($tmp_image, '../../img_ftp/' . $fichier); if (file_exists('../../img_ftp/' . $fichier) && $fichier != '') { chmod("../../img_ftp/{$fichier}", 0644); } // Redimensionnement, w=1000, priorite w Lib_redimImage("../../img_ftp/{$fichier}", 1000, '', 'w'); } $champ = 'fichier' . $i; $article->{$champ} = $fichier; } } } foreach ($GLOBALS['LANGUES'] as $langue) { if ($continue) { /*=============*/ Lib_myLog("Ajout de l'article en {$langue}"); $article->lang = $langue; $article->ADD(); if (!$article->isError()) { $transaction->addElement($article); } else { $transaction->DEL(); $continue = false; } } } } // On remet à 0 le fichier contenant le "cache" des articles pour l'affichage des blocs Lib_writeCache('', "ARTICLES"); } if ($continue) { if (isset($data_in['submit_valid'])) { $data_in['action'] = 'SiteStatique_Apercu'; } call_user_func('SiteStatique_Apercu', $data_in); } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Revalidation%%']; $data_in['action'] = 'SiteStatique_Apercu'; call_user_func('SiteStatique_Apercu', $data_in); } else { $data_in['action'] = 'SiteStatique_Apercu'; call_user_func('SiteStatique_Apercu', $data_in); } } }
function ExecActions($action) { /*=============*/ Lib_myLog("action: ", $action); // On recupere la configuration issue de conf.php global $lang, $MSG, $secure; // On recupere tous les objet contenant les donnees global $data_in, $data_out, $data_srv, $session; // Initialization des variables global $message; switch ($action) { case "Admin_Utilisateurs": /*=============*/ Lib_myLog("Recuperation de la liste des utilisateurs de la base"); $data_out['tab_groupes'] = Groupes_chercher('*'); $data_out['liste_utilisateurs'] = Utilisateurs_chercher('*'); // On renseigne l'indicateur "code" pour piloter l'affichage du menu javascript $data_out['code'] = 'acces_client'; $data_out['page'] = 'acces.php'; break; case "Utilisateurs_ADD": $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; // On intialise une pseudo-transaction qui nous permettre de stocker tous les objets rajoutés à la base // pour pouvoir les supprimer si nécessaire $transaction = new Collection(); if ($continue) { $utilisateur = Utilisateur_recuperer($data_in['nom_utilisateur']); if ($continue && $utilisateur->id_utilisateur) { /*=============*/ Lib_myLog("Le code d'utilisateur existe deja"); $data_out['message_ko'] = 'Ce code utilisateur existe déjà'; $continue = false; } if ($continue) { /*=============*/ Lib_myLog("Creation nouvel objet Utilisateur"); $utilisateur = new Utilisateur(); $utilisateur->societe = $data_in['societe']; $utilisateur->nom_personne = $data_in['nom_personne']; $utilisateur->prenom_personne = $data_in['prenom_personne']; $utilisateur->email = $data_in['email']; $utilisateur->nom_utilisateur = $data_in['nom_utilisateur']; $utilisateur->nom_groupe = 'utilisateur'; $utilisateur->password = $data_in['password']; $utilisateur->nb_connect = 10; $utilisateur->etat = 'actif'; $id_utilisateur = $utilisateur->ADD(); /*=============*/ Lib_myLog("Creation d'un repertoire pour l'utilisateur"); mkdir("../../documents/{$id_utilisateur}"); chmod("../../documents/{$id_utilisateur}", 0705); // On créé un fichier d'index pour que personne ne puisse voir directement le contenu du répertoire $file = "../../documents/{$id_utilisateur}/index.php"; $index = fopen($file, "w"); fputs($index, "<?"); fputs($index, "header('HTTP/1.0 404 Not Found');"); fputs($index, "?>"); fclose($index); } } if ($continue) { $data_out['message_ok'] = "L'accés a bien été rajouté"; ExecActions('Admin_Utilisateurs'); } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Revalidation%%']; ExecActions('Admin_Utilisateurs'); } else { /*=============*/ Lib_myLog("Annulation de l'ajout suite a une erreur"); if (!isset($data_out['message_ko'])) { $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Mysql%%']; } // On ré-affiche les données dans la page de saisie... $data_out = array_merge($data_out, $data_in); ExecActions('Admin_Utilisateurs'); } } break; case "Utilisateurs_UPD": /*=============*/ Lib_myLog("Mise a jour de l'utilisateur"); $utilisateur = Utilisateur_recuperer($data_in['id_utilisateur']); $utilisateur->societe = $data_in['societe']; $utilisateur->nom_personne = $data_in['nom_personne']; $utilisateur->prenom_personne = $data_in['prenom_personne']; $utilisateur->email = $data_in['email']; $utilisateur->nom_utilisateur = $data_in['nom_utilisateur']; $utilisateur->password = $data_in['password']; $utilisateur->UPD(); $data_out['message_ok'] = "L'utilisateur a bien été mis à jour"; ExecActions("Admin_Utilisateurs"); break; case "Utilisateurs_DEL": /*=============*/ Lib_myLog("Suppression de l'utilisateur avec l'identifiant " . $data_in['id_utilisateur'] . " de la base"); $utilisateur = Utilisateur_recuperer($data_in['id_utilisateur']); $utilisateur->DEL(); /*=============*/ Lib_myLog("Suppression du repertoire de l'utilisateur"); deldir("../../documents/" . $utilisateur->id_utilisateur); $data_out['message_ok'] = "L'utilisateur a bien été été supprimé"; ExecActions("Admin_Utilisateurs"); break; case "POPUP_Utilisateur_UPD": // Action utilisée pour la saisie semi-automatique et appelée par la fonction AJAX /*=============*/ Lib_myLog("Recuperation de l'utilisateur"); $data_out = Utilisateurs_chercher('', $data_in['id_utilisateur']); $data_out['tab_groupes'] = Groupes_chercher('*'); $data_out['page'] = 'acces_popup_utilisateur_upd.php'; break; case "Documents_Accueil": /*=============*/ Lib_myLog("Recuperation de l'arborescence"); $data_out['liste_fils'] = Docs_construire($data_in['id_utilisateur']); $utilisateur = Utilisateur_recuperer($data_in['id_utilisateur']); $data_out['nom_personne'] = $utilisateur->nom_personne; $data_out['prenom_personne'] = $utilisateur->prenom_personne; $data_out['id_utilisateur'] = $data_in['id_utilisateur']; // On positionne par défaut les id_pere et les id_grand_pere $data_out['id_pere'] = 0; $data_out['id_fils'] = 0; if (isset($data_in['id_doc'])) { /*=============*/ Lib_myLog("Recuperation de l'ascendance"); $doc = Doc_recuperer($data_in['id_doc']); /*=============*/ Lib_myLog("Famille: " . $doc->famille); $tab_famille = explode('-', $doc->famille); /*=============*/ Lib_myLog("Nb elements: " . count($tab_famille)); if (count($tab_famille) == 2) { $data_out['id_pere'] = $tab_famille[0]; } if (count($tab_famille) == 3) { $data_out['id_pere'] = $tab_famille[0]; $data_out['id_fils'] = $tab_famille[1]; } } // On renseigne l'indicateur "code" pour piloter l'affichage du menu javascript $data_out['code'] = 'acces_client'; $data_out['page'] = 'documents.php'; break; case "Element_Bouger": $tab_positions = explode("|", $data_in['tab_list']); $i = 1; foreach ($tab_positions as $position) { $projet = Doc_recuperer($position); $projet->ordre = $i; $projet->UPD(); $i++; } $data_out['message_ok'] = $MSG['fr']['%%arbo_UPD%%']; ExecActions('Documents_Accueil'); break; case "Element_DEL": /*=============*/ Lib_myLog("Recuperation de l'element"); $obj_element_initial = Doc_recuperer($data_in['id_doc']); $id_utilisateur = $obj_element_initial->id_utilisateur; $data_out['message_ok'] = "Le dossier a bien été supprimé"; if ($obj_element_initial->type_pere == 'document') { $url = $obj_element_initial->intitule_canonize; /*=============*/ Lib_myLog("Suppression physique du document"); unlink("../../documents/{$id_utilisateur}/{$url}"); $data_out['message_ok'] = "Le document a bien été supprimé"; } /*=============*/ Lib_myLog("Retablissement de l'ordre sans coupure"); $args_elements['famille'] = $obj_element_initial->famille; $args_elements['sup_ordre'] = $obj_element_initial->ordre; $args_elements['id_utilisateur'] = $obj_element_initial->id_utilisateur; $elements = Docs_chercher($args_elements); foreach ($elements as $element) { $obj_element = Doc_recuperer($element['id_doc']); $obj_element->ordre--; $obj_element->UPD(); } $obj_element_initial->DEL(); $data_in['id_utilisateur'] = $id_utilisateur; ExecActions('Documents_Accueil'); break; case "Categorie_ADD": $args_arbos['famille'] = ''; if ($data_in['id_pere'] != '') { /*=============*/ Lib_myLog("Il s'agit d'un ajout de sous-element !"); $arbo_pere = Doc_recuperer($data_in['id_pere']); $args_arbos['famille'] = $arbo_pere->famille . $arbo_pere->id_pere . '-'; } /*=============*/ Lib_myLog("On determine le nouvel ordre a attribuer au nouvel element"); $arbos = Docs_chercher($args_arbos); $ordre = count($arbos); $ordre++; /*=============*/ Lib_myLog("Rajout d'un nouvel element"); $arbo = new Doc(); $arbo->id_utilisateur = $data_in['id_utilisateur']; if ($data_in['id_pere'] != '') { $arbo->famille .= $arbo_pere->famille . $arbo_pere->id_pere . '-'; } $arbo->type_pere = 'arbo'; $arbo->ordre = $ordre; $arbo->etat = 'actif'; $arbo->intitule = $data_in['intitule']; $id_doc = $arbo->ADD(); // On positionne dans le "data_in" "id_doc" pour piloter l'affichage dans "Documents_Accueil" $data_in['id_doc'] = $id_doc; $data_out['message_ok'] = "Le dossier a bien été rajouté"; $arbo->id_pere = $id_doc; $arbo->UPD(); ExecActions('Documents_Accueil'); break; case "Categorie_UPD": /*=============*/ Lib_myLog("Modification de l'intitule d'un element"); $arbo = Doc_recuperer($data_in['id_doc']); $arbo->intitule = $data_in['intitule']; $arbo->UPD(); $data_out['message_ok'] = "Le nom du dossier a bien été modifié"; ExecActions('Documents_Accueil'); break; case "AJAX_RechercherSousCategories": $data_out['liste_sous_categories'] = array(); /*=============*/ Lib_myLog("Recuperation du pere"); $arbo_pere = Doc_recuperer($data_in['id_pere']); $args_sous['type_pere'] = 'arbo'; $args_sous['famille'] = $arbo_pere->famille . $arbo_pere->id_pere . '-'; $data_out['liste_sous_categories'] = Docs_chercher($args_sous); $cle = 'ordre'; $val = usort($data_out['liste_sous_categories'], "Lib_compareUp"); $data_out['page'] = 'ajax_sous_categories.php'; break; case "Fichier_ADD": // DEBUT UBR // Je déclare en global les variables suivante intialisées lors du chargement des bibliothèques UBR global $TEMP_DIR, $_INI; //Declare local values $_XML_DATA = array(); // Array of xml data read from the upload_id.redirect file $_CONFIG_DATA = array(); // Array of config data read from the $_XML_DATA array $_POST_DATA = array(); // Array of posted data read from the $_XML_DATA array $_FILE_DATA = array(); // Array of 'FileInfo' objects read from the $_XML_DATA array $_FILE_DATA_TABLE = ''; // String used to store file info results nested between <tr> tags $_FILE_DATA_EMAIL = ''; // String used to store file info results $xml_parser = new XML_Parser(); // XML parser $xml_parser->setXMLFile($TEMP_DIR, $_GET['upload_id']); // Set upload_id.redirect file $xml_parser->setXMLFileDelete($_INI['delete_redirect_file']); // Delete upload_id.redirect file when finished parsing $xml_parser->parseFeed(); // Parse upload_id.redirect file // Display message if the XML parser encountered an error if ($xml_parser->getError()) { kak($xml_parser->getErrorMsg(), 1, __LINE__, $_INI['path_to_css_file']); } $_XML_DATA = $xml_parser->getXMLData(); // Get xml data from the xml parser $_CONFIG_DATA = getConfigData($_XML_DATA); // Get config data from the xml data $_POST_DATA = getPostData($_XML_DATA); // Get post data from the xml data $_FILE_DATA = getFileData($_XML_DATA); // Get file data from the xml data /*=============*/ Lib_myLog("UBR POST DATA :", $_POST_DATA); // On remet dans data_in les valeurs transmises par UBR foreach ($_POST_DATA as $key => $value) { $data_in[$key] = $value; } // On récupère les fichiers téléchargés for ($i = 0; $i < count($_FILE_DATA); $i++) { $file_slot = $_FILE_DATA[$i]->getFileInfo('slot'); $file_name = $_FILE_DATA[$i]->getFileInfo('name'); $file_size = $_FILE_DATA[$i]->getFileInfo('size'); $file_type = $_FILE_DATA[$i]->getFileInfo('type'); $file_status = $_FILE_DATA[$i]->getFileInfo('status'); $file_status_desc = $_FILE_DATA[$i]->getFileInfo('status_desc'); /*=============*/ Lib_myLog("UBR Fichier telecharge : file_slot: {$file_slot}, file_name: {$file_name}, file_size: {$file_size}, file_type: {$file_type}, file_status: {$file_status}, file_status_desc: {$file_status_desc}"); } // FIN UBR $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; if ($continue) { $args_arbos['famille'] = ''; if ($data_in['id_pere'] != 0) { $arbo = Doc_recuperer($data_in['id_pere']); $args_arbos['famille'] = $arbo->famille . $arbo->id_pere . '-'; $args_arbo['id_doc'] = $data_in['id_pere']; $id_categorie = $data_in['id_pere']; } // Si l'id_fils est positionné, il "surclasse" l'id_pere! if (isset($data_in['id_fils']) && $data_in['id_fils'] != 0) { $arbo = Doc_recuperer($data_in['id_fils']); $args_arbos['famille'] = $arbo->famille . $arbo->id_pere . '-'; $args_arbo['id_doc'] = $data_in['id_fils']; } /*=============*/ Lib_myLog("On determine le nouvel ordre a attribuer au nouvel element dans l'arbo"); $arbos = Docs_chercher($args_arbos); $ordre = count($arbos); $ordre++; /*=============*/ Lib_myLog("On recupere le dossier dont va dependre le document"); $arbo = Docs_chercher($args_arbo); if ($continue && $file_name != '') { /*=============*/ Lib_myLog("Recuperation du fichier"); $nom_fichier = Lib_nettoie($file_name); /*=============*/ Lib_myLog("Nom du fichier : {$nom_fichier}"); // On rajoute le document à ce niveau pour disposer de l'id_doc et le mettre dans le nom du document /*=============*/ Lib_myLog("Rajout du document dans l'arbo"); $new_arbo = new Doc(); $new_arbo->id_utilisateur = $data_in['id_utilisateur']; $new_arbo->famille .= $arbo['famille'] . $arbo['id_pere'] . '-'; $new_arbo->type_pere = 'document'; $new_arbo->ordre = $ordre; $new_arbo->etat = 'actif'; $new_arbo->intitule = $data_in['intitule']; $new_arbo->intitule_canonize = $nom_fichier; $id_doc = $new_arbo->ADD(); $data_in['id_doc'] = $id_doc; $nom_fichier = $id_doc . '_' . $nom_fichier; $doc = Doc_recuperer($id_doc); $doc->intitule_canonize = $nom_fichier; $doc->UPD(); // On met le fichier récupéré avec UBR au bon endroit rename("../ubr/ubr_uploads/{$file_name}", "../../documents/{$data_in['id_utilisateur']}/{$nom_fichier}"); $data_out['message_ok'] = "Le document a bien été rajouté"; } } if ($continue) { ExecActions('Documents_Accueil'); } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Revalidation%%']; ExecActions('Documents_Accueil'); } else { ExecActions('Documents_Accueil'); } } break; case "Fichier_UPD": /*=============*/ Lib_myLog("Modification de l'intitule du fichier"); $arbo = Doc_recuperer($data_in['id_doc']); $arbo->intitule = $data_in['intitule']; $arbo->UPD(); $data_out['message_ok'] = "La description du document a bien été modifiée"; ExecActions('Documents_Accueil'); break; case "Fichier_Download": $doc = Doc_recuperer($data_in['id_doc']); $nom_fichier = $doc->intitule_canonize; $file = "../../documents/" . $doc->id_utilisateur . "/" . $doc->intitule_canonize; $size = filesize($file); header("Content-Type: application/octet-stream"); header("Content-Length: {$size}"); header("Content-Disposition: attachment; filename={$nom_fichier}"); header("Content-Transfer-Encoding: binary"); $fh = fopen("{$file}", "r"); fpassthru($fh); break; default: ExecActions('Admin_Utilisateurs'); break; } }
/** Cette fonction est un grand switch qui sert à renvoyer vers une action donnée en paramètre. @param Action : Action à accomplir… */ function ExecActions($action) { /*=============*/ Lib_myLog("action: ", $action); // On recupere la configuration issue de conf.php global $lang, $taille_ecran, $MSG, $secure, $cle, $config; // On recupere tous les objet contenant les donnees global $data_in, $data_out, $data_srv, $session; // Initialization des variables global $message, $tache; switch ($action) { /** * - Cas Site_Accueil : * . * Le cas (par défaut) Site_Accueil recherche tous les taches, s'occupent des critères de tri, et renvoie vers la vue (page) Site_Accueil.php.... */ case "Accueil": /*=============*/ Lib_myLog("Recuperation de l'arborescence"); $data_in['code_arbo'] = 'suivi'; $data_out['liste_fils'] = Arbo_construire($data_in['code_arbo'], 'tache'); if (isset($data_in['id_arbo_pere'])) { $data_out['id_arbo_pere'] = $data_in['id_arbo_pere']; } if (!isset($data_in['type_affichage'])) { $data_in['type_affichage'] = 'toutes'; } $data_out['type_affichage'] = $data_in['type_affichage']; $data_out['code_arbo'] = $data_in['code_arbo']; $data_out['menu_gauche'] = 'arbo'; $data_out['page'] = 'suivi.php'; break; case "Element_Etat": $arbo = Arbo_recuperer($data_in['id_arbo']); $arbo->etat = $arbo->etat == 'actif' ? $arbo->etat = 'inactif' : ($arbo->etat = 'actif'); $arbo->UPD(); $data_out['message_ok'] = $MSG['fr']['%%arbo_UPD%%']; // On met à jour l'état de l'tache associé à l'élément de l'arbo sélectionné if ($arbo->id_pere != 0 && $arbo->type_pere == 'tache') { $tache = Tache_recuperer($arbo->id_pere); $tache->etat = $arbo->etat; $tache->UPD(); } // On remet à 0 le fichier contenant le "cache" des taches pour l'affichage des blocs Lib_writeData('', "ARBO"); //Enregistrement d'un zip par dossier racine contenant les fichiers $tab_ids_arbos = array($data_in['id_arbo'] => $data_in['id_arbo']); // Arbo_zipDocuments('arbo_docs', $tab_ids_arbos); ExecActions('Accueil'); break; case "Element_Bouger": $tab_positions = explode("|", $data_in['tab_list']); $i = 1; $tab_ids_arbos = array(); foreach ($tab_positions as $position) { $projet = Arbo_recuperer($position); if ($projet->ordre != $i) { $tab_ids_arbos[$projet->id_arbo] = $projet->id_arbo; } $projet->ordre = $i; $projet->UPD(); $i++; } $data_out['message_ok'] = $MSG['fr']['%%arbo_UPD%%']; // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeData('', "ARBO"); //Enregistrement d'un zip par dossier racine contenant les fichiers // Arbo_zipDocuments('arbo_docs', $tab_ids_arbos); ExecActions('Accueil'); break; case "Element_DEL": /*=============*/ Lib_myLog("Recuperation de l'element"); if ($data_in['id_arbo_pere'] != 0) { /*=============*/ Lib_myLog("Suppression de de l'objet de type arbo"); $obj_element_initial = Arbo_recuperer($data_in['id_arbo']); $data_out['message_ok'] = $MSG['fr']['%%arbo_DEL%%']; } if ($data_in['id_arbo_pere'] == 0) { /*=============*/ Lib_myLog("Suppression des taches dans toutes les langues"); $obj_element_initial = Arbo_recuperer_par_element($data_in['id_pere'], $data_in['type_pere'], $data_in['code_arbo']); // Le même tache peut être en pluisieurs langues. On les regroupe grâce au code tache $args_taches['code'] = 'tache-' . $obj_element_initial->id_pere; $liste_taches = Taches_chercher($args_taches); foreach ($liste_taches as $art) { $tache = Tache_recuperer($art['id_tache']); $tache->DEL(); } $data_out['message_ok'] = $MSG['fr']['%%page_DEL%%']; } /*=============*/ Lib_myLog("Retablissement de l'ordre sans coupure"); $args_elements['famille'] = $obj_element_initial->famille; $args_elements['sup_ordre'] = $obj_element_initial->ordre; $args_elements['code_arbo'] = $data_in['code_arbo']; $elements = Arbos_chercher($args_elements); foreach ($elements as $element) { $obj_element = Arbo_recuperer($element['id_arbo']); $obj_element->ordre--; $obj_element->UPD(); } $obj_element_initial->DEL(); // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeData('', "ARBO"); //Enregistrement d'un zip par dossier racine contenant les fichiers $tab_ids_arbos = array($data_in['id_arbo'] => $data_in['id_arbo']); // Arbo_zipDocuments('arbo_docs',$tab_ids_arbos); ExecActions('Accueil'); break; case "Categorie_ADD": $args_arbos['code_arbo'] = $data_in['code_arbo']; $args_arbos['famille'] = ''; if ($data_in['id_arbo_pere'] != '') { /*=============*/ Lib_myLog("Il s'agit d'un ajout de sous-element !"); $arbo_pere = Arbo_recuperer($data_in['id_arbo_pere']); $args_arbos['famille'] = $arbo_pere->famille . $arbo_pere->id_arbo . '-'; } /*=============*/ Lib_myLog("On determine le nouvel ordre a attribuer au nouvel element"); $arbos = Arbos_chercher($args_arbos); $ordre = count($arbos); $ordre++; /*=============*/ Lib_myLog("Rajout d'un nouvel element"); $arbo = new Arbo(); if ($data_in['id_arbo_pere'] != '') { $arbo->famille .= $arbo_pere->famille . $arbo_pere->id_arbo . '-'; } $arbo->code_arbo = $data_in['code_arbo']; $arbo->type_pere = 'arbo'; $arbo->ordre = $ordre; $arbo->etat = 'inactif'; $arbo->intitule = $data_in['intitule']; $id_arbo = $arbo->ADD(); $data_out['message_ok'] = $MSG['fr']['%%arbo_ADD%%']; $arbo->id_arbo_pere = $data_in['id_arbo_pere'] != '' ? $data_in['id_arbo_pere'] : $id_arbo; /*=============*/ Lib_myLog("Creation du nouvel tache associe a la categorie"); $tache = new Tache(); $tache->titre_page = $data_in['intitule']; $tache->titre = $data_in['intitule']; $tache->lang = 'fr'; $tache->etat = 'actif'; $id_tache = $tache->ADD(); $tache = Tache_recuperer($id_tache); // On définit un code pour pouvoir retrouver le même tache en plusieurs langues $tache->code = 'tache-' . $id_tache; $tache->UPD(); foreach ($GLOBALS['LANGUES'] as $langue) { /*=============*/ Lib_myLog("Ajout de l'tache en {$langue}"); $tache->lang = $langue; $tache->ADD(); } $arbo->id_pere = $id_tache; $arbo->type_pere = 'tache'; $arbo->UPD(); // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeData('', "ARBO"); //Enregistrement d'un zip par dossier racine contenant les fichiers $tab_ids_arbos = array($id_arbo => $id_arbo); // Arbo_zipDocuments('arbo_docs', $tab_ids_arbos); ExecActions('Accueil'); break; case "Categorie_UPD": /*=============*/ Lib_myLog("Modification de l'intitule d'un element"); $arbo = Arbo_recuperer($data_in['id_arbo']); $arbo->intitule = $data_in['intitule']; $arbo->UPD(); /*=============*/ Lib_myLog("Modification de l'tache lie a l'element"); if ($arbo->id_pere) { $tache = Tache_recuperer($arbo->id_pere); $tache->titre = $data_in['intitule']; $tache->UPD(); } // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeData('', "ARBO"); //Enregistrement d'un zip par dossier racine contenant les fichiers $tab_ids_arbos = array($data_in['id_arbo'] => $data_in['id_arbo']); // Arbo_zipDocuments('arbo_docs',$tab_ids_arbos); $data_out['message_ok'] = $MSG['fr']['%%arbo_UPD%%']; ExecActions('Accueil'); break; case "SELECT_SsCategories": $data_out['liste_sous_categories'] = array(); /*=============*/ Lib_myLog("Recuperation du pere"); $arbo_pere = Arbo_recuperer($data_in['id_arbo']); $args_sous['not_id_arbo_pere'] = 0; $args_sous['famille'] = $arbo_pere->famille . $arbo_pere->id_arbo . '-'; $data_out['liste_sous_categories'] = Arbos_chercher($args_sous); $cle = 'ordre'; $val = usort($data_out['liste_sous_categories'], "Lib_compareUp"); $data_out['page'] = 'arbo_select_ss_categories.php'; break; case "SELECT_SsSsCategories": $data_out['liste_sous_categories'] = array(); /*=============*/ Lib_myLog("Recuperation du pere"); $arbo_pere = Arbo_recuperer($data_in['id_arbo']); $args_sous['not_id_arbo_pere'] = 0; $args_sous['famille'] = $arbo_pere->famille . $arbo_pere->id_arbo . '-'; $data_out['liste_sous_categories'] = Arbos_chercher($args_sous); $cle = 'ordre'; $val = usort($data_out['liste_sous_categories'], "Lib_compareUp"); $data_out['page'] = 'arbo_select_ss_ss_categories.php'; break; case "AJAX_ArboUPD": $tab_arbo = json_decode($data_in['arbo_json'], true); /*=============*/ Lib_myLog("Arbo recuperee"); Arbo_recalcul($tab_arbo); break; case "Tache_ADD": $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; if ($continue) { $args_arbos['code_arbo'] = $data_in['code_arbo']; $args_arbos['famille'] = ''; if ($data_in['id_arbo_pere'] != 0) { $arbo = Arbo_recuperer($data_in['id_arbo_pere']); $args_arbos['famille'] = $arbo->famille . $arbo->id_arbo . '-'; $args_arbo['id_arbo'] = $data_in['id_arbo_pere']; $id_categorie = $data_in['id_arbo_pere']; } // Si un id_arbo_fils est positionné, il "surclasse" l'id_pere! if (isset($data_in['id_arbo_fils']) && $data_in['id_arbo_fils'] != 0) { $arbo = Arbo_recuperer($data_in['id_arbo_fils']); $args_arbos['famille'] = $arbo->famille . $arbo->id_arbo . '-'; $args_arbo['id_arbo'] = $data_in['id_arbo_fils']; } if (isset($data_in['id_arbo_petit_fils']) && $data_in['id_arbo_petit_fils'] != 0) { $arbo = Arbo_recuperer($data_in['id_arbo_petit_fils']); $args_arbos['famille'] = $arbo->famille . $arbo->id_arbo . '-'; $args_arbo['id_arbo'] = $data_in['id_arbo_petit_fils']; } /*=============*/ Lib_myLog("On determine le nouvel ordre a attribuer au nouvel element dans l'arbo"); $arbos = Arbos_chercher($args_arbos); $ordre = count($arbos); $ordre++; /*=============*/ Lib_myLog("On recupere la categorie dont va dependre l'tache"); $arbo = Arbos_chercher($args_arbo); /*=============*/ Lib_myLog("Creation du nouvel tache"); $tache = new Tache(); $tache->categorie = $data_in['categorie']; $tache->titre_page = $data_in['titre_page']; // On met dans le titre le titre_page par défaut. Celui-ci sera changé à l'édition de l'tache de toutes façons... $tache->titre = $data_in['titre_page']; for ($i = 1; $i <= 20; $i++) { $tache->{'data' . $i} = $data_in['data' . $i]; } $tache->date = $data_in['date']; $tache->texte = $data_in['texte']; $tache->lang = 'fr'; $tache->etat = 'inactif'; $id_tache = $tache->ADD(); $tache = Tache_recuperer($id_tache); for ($i = 1; $i <= 5; $i++) { if ($_FILES["fichier" . $i]["name"] != '') { if ($_FILES["fichier" . $i]['error'] == 1) { /*=============*/ Lib_myLog("Taille trop elevee"); $val = ini_get('upload_max_filesize'); $data_out['message_ko'] = $MSG['fr']['%%Erreur_Taille%%'] . " ({$val})"; $tache->{'fichier' . $i} = ''; } else { if ($valid == 1) { /*=============*/ Lib_myLog("Fichier non autorise"); $data_out['message_ko'] = $MSG['fr']['%%Fichier_non_autorise%%']; } else { /*=============*/ Lib_myLog("Telechargement du fichier"); $fichier = Lib_nettoie($_FILES["fichier" . $i]["name"]); $fichier = $tache->id_tache . '_' . $fichier; if (file_exists('../file_ftp/documents_suivi/' . $fichier)) { unlink('../file_ftp/documents_suivi/' . $fichier); } if (is_uploaded_file($_FILES["fichier" . $i]["tmp_name"])) { $tmp_fichier = $_FILES["fichier" . $i]["tmp_name"]; rename($tmp_fichier, '../file_ftp/documents_suivi/' . $fichier); chmod("../file_ftp/documents_suivi/{$fichier}", 0644); } $tache->{'fichier' . $i} = $fichier; } } } } // On définit un code pour pouvoir retrouver le même tache en plusieurs langues $tache->code = 'tache-' . $id_tache; $tache->UPD(); foreach ($GLOBALS['LANGUES'] as $langue) { /*=============*/ Lib_myLog("Ajout de l'tache en {$langue}"); $tache->lang = $langue; $tache->ADD(); } /*=============*/ Lib_myLog("Rajout du nouvel tache dans l'arbo"); $new_arbo = new Arbo(); $new_arbo->code_arbo = $data_in['code_arbo']; $new_arbo->id_pere = $id_tache; $new_arbo->famille .= $arbo['famille'] . $arbo['id_arbo'] . '-'; $new_arbo->type_pere = 'tache'; $new_arbo->ordre = $ordre; $new_arbo->intitule = $data_in['titre_page']; $new_arbo->etat = 'inactif'; $id_arbo = $new_arbo->ADD(); // On remet à 0 le fichier contenant le "cache" des taches pour l'affichage des blocs Lib_writeData('', "TACHES"); // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeData('', "ARBO"); //Enregistrement d'un zip par dossier racine contenant les fichiers $tab_ids_arbos = array($id_arbo => $id_arbo); // Arbo_zipDocuments('arbo_docs',$tab_ids_arbos); } if ($continue) { $data_in['id_tache'] = $id_tache; if (isset($data_in['code_arbo'])) { header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/actions.php?action=Accueil&code_arbo={$data_in['code_arbo']}"); } else { ExecActions('Site_Apercu'); } } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Revalidation%%']; ExecActions('Site_Apercu'); } else { ExecActions('Site_Apercu'); } } break; case "POPUP_TacheUPD": $data_out['tache'] = Taches_chercher(array('id_tache' => $data_in['id_tache'])); $data_out['code_arbo'] = $data_in['code_arbo']; $data_out['page'] = 'popup_tache_upd.php'; break; case "POPUP_CategorieUPD": $data_out = Arbos_chercher(array('id_arbo' => $data_in['id_arbo'])); $data_out['code_arbo'] = $data_in['code_arbo']; $data_out['page'] = 'popup_arbo_categorie_upd.php'; break; case "Tache_UPD": /*=============*/ Lib_myLog("Modification de l'tache"); $tache = Tache_recuperer($data_in['id_tache']); $tache->categorie = $data_in['categorie']; $tache->titre_page = $data_in['titre_page']; // On met dans le titre le titre_page par défaut. Celui-ci sera changé à l'édition de l'tache de toutes façons... $tache->titre = $data_in['titre_page']; for ($i = 1; $i <= 20; $i++) { $tache->{'data' . $i} = $data_in['data' . $i]; } $tache->date = $data_in['date']; $tache->texte = $data_in['texte']; $tache->lang = 'fr'; $tache->etat = 'inactif'; //Si la date de mise en production est positionnee, alors la tâche est terminée if ($tache->data4 != '') { $tache->etat = 'actif'; } for ($i = 1; $i <= 5; $i++) { if ($data_in['sup_fichier' . $i] == 1) { if (file_exists('../file_ftp/documents_suivi/' . $tache->{'fichier' . $i})) { unlink('../file_ftp/documents_suivi/' . $tache->{'fichier' . $i}); } $tache->{'fichier' . $i} = ''; } if ($_FILES["fichier" . $i]["name"] != '') { if ($_FILES["fichier" . $i]['error'] == 1) { /*=============*/ Lib_myLog("Taille trop elevee"); $val = ini_get('upload_max_filesize'); $data_out['message_ko'] = $MSG['fr']['%%Erreur_Taille%%'] . " ({$val})"; $tache->{'fichier' . $i} = ''; } else { if ($valid == 1) { /*=============*/ Lib_myLog("Fichier non autorise"); $data_out['message_ko'] = $MSG['fr']['%%Fichier_non_autorise%%']; } else { /*=============*/ Lib_myLog("Telechargement du fichier"); $fichier = Lib_nettoie($_FILES["fichier" . $i]["name"]); $fichier = $tache->id_tache . '_' . $fichier; if (file_exists('../file_ftp/documents_suivi/' . $fichier)) { unlink('../file_ftp/documents_suivi/' . $fichier); } if (is_uploaded_file($_FILES["fichier" . $i]["tmp_name"])) { $tmp_fichier = $_FILES["fichier" . $i]["tmp_name"]; rename($tmp_fichier, '../file_ftp/documents_suivi/' . $fichier); chmod("../file_ftp/documents_suivi/{$fichier}", 0644); } $tache->{'fichier' . $i} = $fichier; } } } } $tache->UPD(); // On remet à 0 le fichier contenant le "cache" des taches pour l'affichage des blocs Lib_writeData('', "TACHES"); // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeData('', "ARBO"); //Enregistrement d'un zip par dossier racine contenant les fichiers $arbo = Arbo_recuperer_par_element($data_in['id_tache'], 'tache', 'arbo_docs'); $tab_ids_arbos = array($arbo->id_arbo => $arbo->id_arbo); // Arbo_zipDocuments('arbo_docs',$tab_ids_arbos); if (isset($data_in['code_arbo'])) { header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/actions.php?action=Accueil&code_arbo={$data_in['code_arbo']}"); } break; default: ExecActions('Accueil'); break; } }