function News_Intro_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__); $continue = 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 la new de la base if (isset($data_in['submit_clear'])) { /*=============*/ Lib_myLog("Suppression du texte 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->etat = 'supprime'; $new->UPD(); } // On remet à 0 le fichier contenant le "cache" des news pour l'affichage des blocs Lib_writeCache('', "ARTICLES"); $data_out['message_ok'] = $MSG['fr']['%%intro_DEL%%']; $continue = false; } // Cas de MODIFICATION de la new ou de PRE-VISUALISATION if ($continue) { $tab_langues = $GLOBALS['LANGUES']; $tab_langues[] = 'fr'; foreach ($tab_langues as $langue) { /*=============*/ Lib_myLog("Recherche de la news 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("Intro trouvee => recuperation"); $new = Article_recuperer($news_bdd['id_article']); $new_tab = $new->getTab(); foreach ($new_tab as $champ => $valeur) { if ($champ == 'image_intro') { continue; } if (isset($data_in[$champ . '_' . $langue])) { $new->{$champ} = $data_in[$champ . '_' . $langue]; } } $new->UPD(); $id_article = $news_bdd['id_article']; $data_out['message_ok'] = $MSG['fr']['%%intro_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'; $new_tab = $new->getTab(); foreach ($new_tab as $champ => $valeur) { if (isset($data_in[$champ . '_' . $langue])) { $new->{$champ} = $data_in[$champ . '_' . $langue]; } } $id_article = $new->ADD(); $data_out['message_ok'] = $MSG['fr']['%%intro_ADD%%']; } if (!empty($_FILES["image_intro_" . $langue]['name'])) { /*=============*/ Lib_myLog("Chargement de l'image d'intro"); $new = Article_recuperer($id_article); $file = Lib_nettoie($_FILES["image_intro_" . $langue]['name']); $file = $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(); } } // 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); } } }