コード例 #1
0
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);
        }
    }
}