예제 #1
0
/**
 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 "Site_Accueil":
            /*=============*/
            Lib_myLog("Recuperation de l'arborescence");
            $data_out['liste_fils'] = Arbo_construire();
            $data_out['page'] = 'annonces_gestion.php';
            break;
        default:
            ExecActions('Site_Accueil');
            break;
    }
}
function SiteStatique_Apercu($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("Recuperation de l'arborescence");
    $data_out['liste_fils'] = Arbo_construire();
    // Tout d'abord on supprime les brouillons éventuels...
    $args_brouillons['etat'] = 'brouillon';
    $liste_brouillons = Articles_chercher($args_brouillons);
    foreach ($liste_brouillons as $brouillon) {
        $tmp = Article_recuperer($brouillon['id_article']);
        $tmp->DEL();
    }
    /*=============*/
    Lib_myLog("Recherche de l'article");
    $args['code'] = $data_in['code'];
    $args['lang'] = $data_in['lang'] != '' && $data_in['lang'] != '' ? $data_in['lang'] : 'fr';
    $article = Articles_chercher($args);
    $data_out = count($data_out) ? array_merge($data_out, $article) : $article;
    $data_out['id_article'] = $article['id_article'];
    $data_out['lang'] = $args['lang'];
    $data_out['code'] = $data_in['code'];
    $data_out['libelle'] = $data_in['libelle'];
    $data_out['titre'] = $data_out['titre'] != '' ? $data_out['titre'] : $data_out['libelle'];
    $data_out['url_vignette'] = $article['url_vignette'];
    $data_out['url_image2'] = $article['url_image2'];
    $data_out['page'] = 'site_statique.php';
}
예제 #3
0
/**
* - 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....
*/
function Site_Accueil($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("Recuperation de l'arborescence");
    $data_out['liste_fils'] = Arbo_construire();
    $data_out['page'] = 'accueil.php';
}
예제 #4
0
/**
* - 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....
*/
function Arbo_Accueil($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("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';
}
예제 #5
0
 function Arbo_zipDocuments($code_arbo = 'arbo_docs', $tab_ids_arbos = array())
 {
     /*=============*/
     Lib_myLog("On zip les documents", $tab_ids_arbos);
     $arbos_modification = Arbos_chercher(array('tab_ids_arbos' => $tab_ids_arbos));
     $tab_ids_niv1 = array();
     $tab_ids_niv2 = array();
     foreach ($arbos_modification as $arbo_modif) {
         if ($arbo_modif['id_arbo_pere']) {
             $tab_ids_niv1[$arbo_modif['id_arbo_pere']] = $arbo_modif['id_arbo_pere'];
         } else {
             $tab_famille = explode('-', $arbo_modif['famille']);
             $tab_ids_niv1[$tab_famille[0]] = $tab_famille[0];
             $tab_ids_niv2[$tab_famille[1]] = $tab_famille[1];
         }
     }
     $arbo_docs = Arbo_construire($code_arbo);
     foreach ($arbo_docs as $elem) {
         if (!in_array($elem['id_arbo'], $tab_ids_niv1)) {
             continue;
         }
         $tab_files = array();
         foreach ($elem['liste_fils'] as $elem1) {
             if (!in_array($elem1['id_arbo'], $tab_ids_niv2)) {
                 continue;
             }
             foreach ($elem1['liste_fils'] as $elem2) {
                 $tab_files[$elem2['tache']['url_vignette']] = $elem2['tache']['url_vignette'];
                 $dir2 = Lib_cleanDirName($elem2['intitule']) . '/';
                 foreach ($elem2['liste_fils'] as $elem3) {
                     $tab_files[$dir2 . $elem3['tache']['url_vignette']] = $elem3['tache']['url_vignette'];
                 }
                 Lib_zipDirectory(Lib_cleanTxt($elem1['intitule']), 1, '.zip', $tab_files);
                 //ZIP du deuxieme niveau
             }
         }
         if (count($elem1['liste_fils']) == 0) {
             Lib_zipDirectory(Lib_cleanTxt($elem['intitule']), 1, '.zip', $tab_files);
         }
         //ZIP du premier niveau
     }
 }
예제 #6
0
/**
 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;
    }
}
function SiteDynamique_Apercu($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("Recuperation de l'arborescence");
    $data_out['liste_fils'] = Arbo_construire($data_in['code_arbo']);
    // Tout d'abord on supprime les brouillons éventuels...
    $args_brouillons['etat'] = 'brouillon';
    $liste_brouillons = Articles_chercher($args_brouillons);
    foreach ($liste_brouillons as $brouillon) {
        $tmp = Article_recuperer($brouillon['id_article']);
        $tmp->DEL();
    }
    /*=============*/
    Lib_myLog("Recherche de l'article");
    if (isset($data_in['id_article'])) {
        $args['id_article'] = $data_in['id_article'];
    }
    if (isset($data_in['code'])) {
        $args['code'] = $data_in['code'];
    }
    $args['lang'] = $data_in['lang'] != '' && $data_in['lang'] != '' ? $data_in['lang'] : 'fr';
    $article = Articles_chercher($args);
    $data_out = array_merge($data_out, $article);
    $data_out['lang'] = $args['lang'];
    $tab_code = explode('-', $data_out['code']);
    /*=============*/
    Lib_myLog("Recherche de l'element dans l'arborescence");
    $element = Arbo_recuperer_par_element($tab_code[1], 'article', $data_in['code_arbo']);
    $id_arbo = $element->id_arbo;
    // Si on est dans le cas d'un article, l'id de l'arbo est dans la famille
    if ($element->id_arbo_pere == 0 && $element->famille != '') {
        $tab_famille = explode('-', $element->famille);
        $id_arbo = $tab_famille[0];
        /*=============*/
        Lib_myLog("Recherche de la categorie");
        $categorie = Arbo_recuperer($id_arbo);
        $data_out['categorie'] = $categorie->intitule;
        $data_out['id_categorie'] = $categorie->id_arbo;
        // On doit récupérer la liste des sous_catégories de la catégorie pour l'affichage de la liste déroulante
        $data_out['liste_sous_categories'] = array();
        $args_sous['not_id_arbo_pere'] = 0;
        $args_sous['famille'] = $categorie->famille . $categorie->id_arbo . '-';
        $args_sous['code_arbo'] = $data_in['code_arbo'];
        $data_out['liste_sous_categories'] = Arbos_chercher($args_sous);
        $cle = 'ordre';
        $val = usort($data_out['liste_sous_categories'], "Lib_compareUp");
    }
    if ($element->id_arbo_pere == 0 && $tab_famille[1] != '') {
        /*=============*/
        Lib_myLog("Recuperation de la ss-categorie");
        $ss_categorie = Arbo_recuperer($tab_famille[1]);
        $data_out['ss_categorie'] = $ss_categorie->intitule;
        $data_out['id_ss_categorie'] = $ss_categorie->id_arbo;
    }
    $data_out['id_article'] = $data_in['id_article'];
    $data_out['code_arbo'] = $data_in['code_arbo'];
    $data_out['page'] = 'site_dynamique_edit.php';
}
예제 #8
0
function POPUP_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__);
    $tab_langues = $GLOBALS['LANGUES'];
    $tab_langues[] = 'fr';
    /*=============*/
    Lib_myLog("Recuperation de l'arborescence");
    $data_out['liste_fils'] = Arbo_construire();
    $args_news['lang'] = 'fr';
    $args_news['order_by'] = 'position';
    $args_news['code_news'] = $data_in['code_news'];
    $news = Articles_chercher($args_news);
    $data_out['liste_news'] = array();
    foreach ($news as $new) {
        // On ne prend pas en compte la news de type texte_intro
        if ($new['code'] == 999999999) {
            continue;
        }
        $data_out['liste_news'][$new['code']] = $new;
    }
    foreach ($tab_langues as $langue) {
        $args_intro['code_news'] = $data_in['code_news'];
        $args_intro['lang'] = $langue;
        $args_intro['code'] = '999999999';
        $intro = Articles_chercher($args_intro);
        $data_out['id_article_' . $langue] = $intro['id_article'];
        $data_out['image_intro_' . $langue] = $intro['image_intro'];
    }
    $data_out['code_news'] = $data_in['code_news'];
    $data_out['page'] = 'news_imageIntro_upd.php';
}
예제 #9
0
/**
 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;
    }
}