function Arbo_construire($code_arbo = '', $type = 'article') { /*=============*/ Lib_myLog("Recuperation de l'arbo a partir de la BDD"); if ($type == 'tache') { // On récupère tous les taches de la base $args_taches['id_tache'] = '*'; $liste_taches = Taches_chercher($args_taches); $tab_intitules = array(); foreach ($liste_taches as $tache) { $tab_intitules[$tache['id_tache']] = $tache['titre']; $tab_etats[$tache['id_tache']] = $tache['etat']; $tab_priorites[$tache['id_tache']] = $tache['data1']; } } if ($type == 'article') { // On récupère tous les articles de la base $args_articles['id_article'] = '*'; $liste_articles = Articles_chercher($args_articles); $tab_intitules = array(); $tab_urls = array(); foreach ($liste_articles as $article) { $tab_intitules[$article['id_article']] = $article['titre']; $tab_etats[$article['id_article']] = $article['etat']; $tab_urls[$article['id_article']] = $article['meta_url']; } } $sql = " SELECT * \n\t\t\tFROM " . $GLOBALS['prefix'] . "arbo\n\t\t\tWHERE code_arbo = '{$code_arbo}'\n\t\t\tORDER BY famille ASC, ordre ASC"; $result = Sql_query($sql); $tab_sql = array(); if ($result && Sql_errorCode($result) === "00000") { while ($row = Sql_fetch($result)) { $id = $row['id_arbo']; $id_pere = $row['id_pere']; $type_pere = $row['type_pere']; $tab_sql[$id]["id_arbo"] = $id; $tab_sql[$id]["id_arbo_pere"] = $row['id_arbo_pere']; $tab_sql[$id]["code_arbo"] = $row['code_arbo']; $tab_sql[$id]["famille"] = $row['famille']; $tab_sql[$id]["id_pere"] = $id_pere; if ($type == 'tache') { $tab_sql[$id]["tache"] = $liste_taches[$id_pere]; } if ($type == 'article') { $tab_sql[$id]["article"] = $liste_articles[$id_pere]; } $tab_sql[$id]["type_pere"] = $type_pere; $tab_sql[$id]["ordre"] = $row['ordre']; $tab_sql[$id]["couleur"] = $row['couleur']; $tab_sql[$id]["etat"] = ($type_pere == 'article' || $type_pere == 'tache') && isset($tab_etats[$id_pere]) && $tab_etats[$id_pere] != '' ? $tab_etats[$id_pere] : $row['etat']; $tab_sql[$id]["intitule"] = ($type_pere == 'article' || $type_pere == 'tache') && isset($tab_intitules[$id_pere]) && $tab_intitules[$id_pere] != '' ? $tab_intitules[$id_pere] : Sql_prepareTexteAffichage($row['intitule']); $tab_sql[$id]["intitule_canonize"] = $row['intitule_canonize']; $tab_sql[$id]["priorite"] = $type_pere == 'tache' && isset($tab_priorites[$id_pere]) && $tab_priorites[$id_pere] != '' ? $tab_priorites[$id_pere] : ''; if ($type_pere == 'tache' && isset($tab_etats[$id_pere]) && $tab_etats[$id_pere] == 'inactif') { if ($row['famille'] != '' && $row['id_arbo_pere'] == 0) { $tab_famille = explode('-', $row['famille']); $index_pere = count($tab_famille) - 2; $tab_sql[$tab_famille[$index_pere]]['nb_taches_a_faire']++; if (!empty($tab_famille[$index_pere - 1])) { $tab_sql[$tab_famille[$index_pere - 1]]['nb_taches_a_faire']++; } } else { $tab_sql[$id]['nb_taches_a_faire'] = 0; } } if ($type_pere == 'tache' && isset($tab_etats[$id_pere]) && $tab_etats[$id_pere] == 'actif') { if ($row['famille'] != '' && $row['id_arbo_pere'] == 0) { $tab_famille = explode('-', $row['famille']); $index_pere = count($tab_famille) - 2; $tab_sql[$tab_famille[$index_pere]]['nb_taches_terminees']++; if (!empty($tab_famille[$index_pere - 1])) { $tab_sql[$tab_famille[$index_pere - 1]]['nb_taches_terminees']++; } } else { $tab_sql[$id]['nb_taches_terminees'] = 0; } } // On détermine le niveau de profondeur dans l'arborescence $tab_sql[$id]["niveau"] = substr_count($row['famille'], "-"); } } /*=============*/ Lib_myLog("Tab sql:", $tab_sql); /*=============*/ Lib_myLog("Construction de l'arbo"); $tab_result = Arbo_getTab($tab_sql, 0, ''); return $tab_result; }
/** 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, $article; switch ($action) { /** * - Cas Site_Accueil : * . * Le cas (par défaut) Site_Accueil recherche tous les articles, 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_out['liste_fils'] = Arbo_construire($data_in['code_arbo']); if (isset($data_in['id_arbo_pere'])) { $data_out['id_arbo_pere'] = $data_in['id_arbo_pere']; } $data_out['code_arbo'] = $data_in['code_arbo']; $data_out['menu_gauche'] = 'arbo'; $data_out['page'] = 'arbo.php'; break; case "AJAX_ArboUPD": $tab_arbo = json_decode($data_in['arbo_json'], true); /*=============*/ Lib_myLog("Arbo recuperee"); Arbo_recalcul($tab_arbo); 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 remet à 0 le fichier contenant le "cache" des articles pour l'affichage des blocs Lib_writeData('', "ARBO"); ExecActions('Accueil'); break; case "Element_Bouger": $tab_positions = explode("|", $data_in['tab_list']); $i = 1; foreach ($tab_positions as $position) { $projet = Arbo_recuperer($position); $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"); 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 articles 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 article peut être en pluisieurs langues. On les regroupe grâce au code article $args_articles['code'] = 'article-' . $obj_element_initial->id_pere; $liste_articles = Articles_chercher($args_articles); foreach ($liste_articles as $art) { $article = Article_recuperer($art['id_article']); $article->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"); 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_pere . '-'; } /*=============*/ 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_pere . '-'; } $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 article associe a la categorie"); $article = new Article(); $article->titre_page = $data_in['intitule']; $article->titre = $data_in['intitule']; $article->lang = 'fr'; $article->etat = 'actif'; $id_article = $article->ADD(); $article = Article_recuperer($id_article); // 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(); } $arbo->id_pere = $id_article; $arbo->type_pere = 'article'; $arbo->UPD(); // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeData('', "ARBO"); 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'article lie a l'element"); $article = Article_recuperer($arbo->id_pere); $article->titre = $data_in['intitule']; $article->UPD(); // On remet à 0 le fichier contenant le "cache" de l'arborescence Lib_writeData('', "ARBO"); $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; default: ExecActions('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 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 POPUP_Arbo_Element_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__); $data_out['document'] = Articles_chercher(array('id_article' => $data_in['id_article'])); $data_out['code_arbo'] = $data_in['code_arbo']; $data_out['page'] = 'arbo_popup_element_upd.php'; }
function SiteStatique_Image_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__); /*=============*/ Lib_myLog("Recherche de la position la plus elevee du code {$data_in['code']}"); $args_images['id_pere'] = $data_in['id_pere']; $galerie = Galeries_chercher($args_images); $position = 0; foreach ($galerie as $image) { if ($image['position'] > $position) { $position = $image['position']; } } $position++; $timestamp = time(); /*=============*/ Lib_myLog("Renommage de l'image"); $image = Lib_nettoie($_FILES["url_gde_image"]["name"]); $ext = strrchr($image, '.'); $image = $data_in['id_pere'] . '_' . $image; $vignette = $data_in['id_pere'] . '_mini_' . $image; /*=============*/ Lib_myLog("image : {$image}"); // Si la vignette ou l'image existaient déjà, on les remplace... if (file_exists('../../img_ftp/' . $image)) { unlink('../../img_ftp/' . $image); } if (file_exists('../../img_ftp/' . $vignette)) { unlink('../../img_ftp/' . $vignette); } if (is_uploaded_file($_FILES["url_gde_image"]["tmp_name"])) { /*=============*/ Lib_myLog("deplacement de l'image au bon endroit"); $tmp_gde_image = $_FILES["url_gde_image"]["tmp_name"]; rename($tmp_gde_image, '../../img_ftp/' . $image); if (file_exists('../../img_ftp/' . $image) && $image != '') { chmod("../../img_ftp/{$image}", 0644); copy('../../img_ftp/' . $image, '../../img_ftp/' . $vignette); if (file_exists('../../img_ftp/' . $vignette) && $vignette != '') { chmod("../../img_ftp/{$vignette}", 0644); } } } //Redimensionnement if ($_FILES["url_gde_image"]["name"] != '') { /*=============*/ Lib_myLog("Redimensionnement de l'image"); $size1 = GetImageSize('../../img_ftp/' . $image); $src_w = $size1[0]; $src_h = $size1[1]; /*=============*/ Lib_myLog("Dimensions de l'image: w={$src_w} h={$src_h} "); $dst_h = "183"; $size1 = GetImageSize("../../img_ftp/{$image}"); $src_w = $size1[0]; $src_h = $size1[1]; if ($src_h > $dst_h) { $dst_w = round($src_w * ($dst_h / $src_h)); $save_h = $dst_h; $save_w = $dst_w; $dst_img = ImageCreateTrueColor($dst_w, $dst_h); /*=============*/ Lib_myLog("w : {$dst_w}, h : {$dst_h}"); if (eregi("jpg", $ext) || eregi("jpeg", $ext)) { $src_img = imagecreatefromjpeg("../../img_ftp/{$image}"); } elseif (eregi("gif", $ext)) { $src_img = imagecreatefromgif("../../img_ftp/{$image}"); } elseif (eregi("png", $ext)) { $src_img = imagecreatefrompng("../../img_ftp/{$image}"); } ImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h); ImageJpeg($dst_img, "../../img_ftp/{$image}"); } else { $save_h = $src_h; $save_w = $src_w; } $galerie = new Galerie(); $galerie->largeur_image = $dst_w; $galerie->hauteur_image = $dst_h; /*=============*/ Lib_myLog("Creation de la vignette"); $dst_h = "100"; $size1 = GetImageSize("../../img_ftp/{$image}"); $src_w = $size1[0]; $src_h = $size1[1]; if ($src_h > $dst_h) { $dst_w = round($src_w * ($dst_h / $src_h)); $dst_img = ImageCreateTrueColor($dst_w, $dst_h); /*=============*/ Lib_myLog("w : {$dst_w}, h : {$dst_h}"); if (eregi("jpg", $ext) || eregi("jpeg", $ext)) { $src_img = imagecreatefromjpeg("../../img_ftp/{$image}"); } elseif (eregi("gif", $ext)) { $src_img = imagecreatefromgif("../../img_ftp/{$image}"); } elseif (eregi("png", $ext)) { $src_img = imagecreatefrompng("../../img_ftp/{$image}"); } ImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h); ImageJpeg($dst_img, "../../img_ftp/{$vignette}"); } } //Fin des ajouts //Le fait de rechercher par code permet de recuperer l'article dans toutes les langues. //Chaque version de l'article aura sa propre galerie. $args['code'] = $data_in['code']; $liste_articles = Articles_chercher($args); foreach ($liste_articles as $article) { $galerie->code = $data_in['code']; $galerie->id_pere = $article['id_article']; $galerie->type_pere = 'articles'; $galerie->position = $position; $galerie->url_gde_image = $image; $galerie->url_vignette = $vignette; $galerie->largeur_vignette = $save_w; $galerie->hauteur_vignette = $save_h; $galerie->ADD(); } // On remet à 0 le fichier contenant le "cache" des articles pour l'affichage des blocs Lib_writeCache('', "GALERIES"); $data_in['action'] = 'Galerie_Iframe'; call_user_func('Galerie_Iframe', $data_in); }