contact.php 13.8 KB
Newer Older
1 2 3 4 5 6 7
<?php
$errors = array(

    //Liste des éléments pouvant avoir une erreur

    "first selection" => "",
    "second Selection" => "",
N. Peraldi's avatar
N. Peraldi committed
8 9
    "EPCI com" => "",
    "EPCI hab" => "",
10 11 12 13 14 15 16 17 18 19 20 21
    "nom" => "",
    "adresse" => "",
    "CP" => "",
    "ville" => "",
    "tel" => "",
    "site" => "",
    "periode" => "",
    "siret" => "",
    "numeroEngagement" => "",
    "code" => ""
);

root's avatar
root committed
22 23 24 25 26 27 28 29 30

//le dossier où se trouvent les fichiers
$workingDirectory = $_SERVER["CONTEXT_DOCUMENT_ROOT"] . '/wp-content/themes/twentyseventeen-child/twentynineteen-child/';
$grillePath = $workingDirectory . 'grille.csv';
$periodSelectionPath = $workingDirectory . "periodSelection.php";
$JSPath = '/wp-content/themes/twentyseventeen-child/twentynineteen-child/adhesionForm.js';



31
$debug_mode = false;
N. Peraldi's avatar
N. Peraldi committed
32

33 34
$resultat = false;

N. Peraldi's avatar
N. Peraldi committed
35 36 37
function tryToEcho($var)
{
    if (isset($_POST[$var])) {
N. Peraldi's avatar
N. Peraldi committed
38 39 40 41
        echo $_POST[$var];
    }
}

N. Peraldi's avatar
N. Peraldi committed
42 43
function tryToSetInputSelect($key, $value)
{
44
    //fonction utilisée pour définir l'option sélectionnée lorsque l'envoi du formulaire a échoué.
N. Peraldi's avatar
N. Peraldi committed
45
    if (isset($_POST[$key])) {
46

N. Peraldi's avatar
N. Peraldi committed
47
        if ($_POST[$key] == $value) {
48 49 50 51 52 53 54 55
            echo "selected";
        }


    }

}

N. Peraldi's avatar
N. Peraldi committed
56 57
function tryToShowError($var)
{
N. Peraldi's avatar
N. Peraldi committed
58
    global $errors;
N. Peraldi's avatar
N. Peraldi committed
59
    if (strlen($errors[$var]) > 0) {
N. Peraldi's avatar
N. Peraldi committed
60 61 62 63
        echo "<p class='error'> " . $errors[$var] . "</p>";
    }
}

64 65
$numberOfErrors = 0;

N. Peraldi's avatar
N. Peraldi committed
66 67
if (isset($_POST)) {
    if (isset($_POST["firstSelection"])) {
68

69
        include "traitementAdhesion.php";
N. Peraldi's avatar
N. Peraldi committed
70
        if ($debug_mode) {
N. Peraldi's avatar
N. Peraldi committed
71 72 73 74
            echo "<br> début du traitement <br>";
        }


N. Peraldi's avatar
N. Peraldi committed
75
        $errors = traitement($_POST, $errors);
76

N. Peraldi's avatar
N. Peraldi committed
77
        if ($debug_mode) {
N. Peraldi's avatar
N. Peraldi committed
78 79 80
            echo "<br> fin du traitement <br>";
        }

81

N. Peraldi's avatar
N. Peraldi committed
82
        foreach ($errors as $key => $value) {
N. Peraldi's avatar
N. Peraldi committed
83

N. Peraldi's avatar
N. Peraldi committed
84
            if ($debug_mode) {
N. Peraldi's avatar
N. Peraldi committed
85 86 87
                echo $key . " : " . $value . "<br>";
            }

N. Peraldi's avatar
N. Peraldi committed
88 89
            if (strlen($value) > 0) {
                $numberOfErrors += 1;
90
            }
91 92
        }

N. Peraldi's avatar
N. Peraldi committed
93
        if ($debug_mode) {
N. Peraldi's avatar
N. Peraldi committed
94
            echo "<br> nombre d'erreurs : " . $numberOfErrors . " <br>";
95

N. Peraldi's avatar
N. Peraldi committed
96 97
            var_dump($errors);
        }
N. Peraldi's avatar
N. Peraldi committed
98
        if ($numberOfErrors == 0) {
99 100 101
            sendAdhesionMail($_POST);


N. Peraldi's avatar
N. Peraldi committed
102 103 104 105
            header("Location:");
        }


106 107
    }
}
108 109 110 111 112


?>


113 114 115 116
<html lang="fr">
<head>
    <title>Renouvellement d'adhésion</title>
    <meta charset="UTF-8">
root's avatar
root committed
117

118 119 120 121
    <script type="text/javascript" src="<?php echo $JSPath ?>"></script>
</head>
<body>

N. Peraldi's avatar
N. Peraldi committed
122
<?php
123 124 125
/*
Template Name: Test
*/
N. Peraldi's avatar
N. Peraldi committed
126 127


128
get_header();
N. Peraldi's avatar
N. Peraldi committed
129

N. Peraldi's avatar
N. Peraldi committed
130

root's avatar
root committed
131 132
include_once $periodSelectionPath;

N. Peraldi's avatar
N. Peraldi committed
133

134
$fichier = fopen($grillePath, 'r');
135
$ligne = fgetcsv($fichier, 1024, ";");
N. Peraldi's avatar
N. Peraldi committed
136 137

//on effectue de nouveau cette instruction pour sauter les titres du tableau
138
$ligne = fgetcsv($fichier, 1024, ";");
139

140
//------------------------Variables-------------------
N. Peraldi's avatar
N. Peraldi committed
141

142 143 144 145 146 147 148
$listeGrilleEntiere = [];       //contiendra l'intégralité des données dans grille.csv
$textsSelectMenu = [];         //contiendra les textes du premier select option gérés automatiquement
$textsSelectMenuExtended = []; //même rôle qu'au dessus mais en ajoutant les options gérées automatiquement + manuellement

$classSelectMenu = [];           //contiendra les classes des option menu gérés automatiquement
$classSelectMenuExtended = [];   //contiendra les classes des option menu gérés automatiquement + manuellement

root's avatar
root committed
149

150 151 152 153 154 155 156 157 158 159
function createFirstSelectionList($liste)
{
    //fonction qui crée la première liste de sélection sans modifier les textes
    $listeTempo = [];
    for ($a = 0; $a < count($liste); $a++) {
        $mot = $liste[$a][0];


        if (!isWordIn($mot, $listeTempo)) {
            $listeTempo[] = $mot;
N. Peraldi's avatar
N. Peraldi committed
160 161 162
        }
    }

163
    return $listeTempo;
N. Peraldi's avatar
N. Peraldi committed
164 165
}

166 167
function createNameClass($variable)
{
168
    //fonction qui nettoie la chaine pour pouvoir l'utiliser en tant que nom de classe
N. Peraldi's avatar
N. Peraldi committed
169

170
    $chars = array(
171
        //tous les caractères susceptibles d'être remplacés
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
        "é" => "e",
        "è" => "e",
        "ê" => "e",
        "ë" => "e",
        "à" => "a",
        "â" => "a",
        "ù" => "u",
        "û" => "u",
        "î" => "i",
        "ï" => "i",
        "ç" => "c",


        "É" => "e",
        "È" => "e",
        "Ê" => "e",
        "Ë" => "e",
        "À" => "a",
        "Â" => "a",
        "Ù" => "u",
        "Û" => "u",
        "Î" => "i",
        "Ï" => "i",
        "Ç" => "c",

        " " => "_"


    );

N. Peraldi's avatar
N. Peraldi committed
202
    $variable = strtr($variable, $chars);
203

N. Peraldi's avatar
N. Peraldi committed
204 205 206
    return $variable;
}

207
function createSizeSelectList($liste)
208 209
{
    //fonction qui crée la liste des classes qui sert pour le 2e select
N. Peraldi's avatar
N. Peraldi committed
210
    $resultList = [];
211
    for ($a = 0; $a < count($liste); $a++) {
212 213
        $mot = createNameClass($liste[$a][0]);

N. Peraldi's avatar
N. Peraldi committed
214

N. Peraldi's avatar
N. Peraldi committed
215 216
        if (!isWordIn($mot, $resultList)) {
            $resultList[] = $mot;
N. Peraldi's avatar
N. Peraldi committed
217 218 219 220
        }

    }

N. Peraldi's avatar
N. Peraldi committed
221
    return $resultList;
N. Peraldi's avatar
N. Peraldi committed
222 223 224

}

225 226 227 228 229 230
function isWordIn($word, $list)
{
    //on vérifie si word est contenu dans list
    for ($a = 0; $a < count($list); $a++) {
        if ($word == $list[$a]) {
            return true;
231 232 233
        }
    }

234
    return false;
235 236
}

237 238 239 240
while ($ligne) {
    //boucle qui va récupérer tout le contenu du fichier pour le stocker dans listeGrilleEntiere
    $listeGrilleEntiere[] = ($ligne);
    $ligne = fgetcsv($fichier, 1024, ";");
N. Peraldi's avatar
N. Peraldi committed
241 242
}

243

N. Peraldi's avatar
N. Peraldi committed
244 245
fclose($fichier);

246 247
//on crée la première liste qui gère les textes de la première liste, avec accents et espaces
$textsSelectMenu = createFirstSelectionList($listeGrilleEntiere);
248

249 250 251 252 253
//on ajoute "association", epci mutualisant et "individu" qui possèdent un traitement différent
$textsSelectMenuExtended = $textsSelectMenu;
$textsSelectMenuExtended[] = ("Association");
$textsSelectMenuExtended[] = ("Individu");
$textsSelectMenuExtended[] = ("EPCI Mutualisant");
254

255
//on crée la liste pour le 2e select qui contient le nom des classes gérés automatiquement
256
$classSelectMenu = createSizeSelectList($listeGrilleEntiere);
257

258 259
//classes gérées automatiquement + manuellement
$classSelectMenuExtended = $classSelectMenu;
260

261 262 263 264 265 266 267 268 269
$classSelectMenuExtended[] = ("Association");
$classSelectMenuExtended[] = ("Individu");
$classSelectMenuExtended[] = ("EPCIMutualisant");

//on trie par ordre alphabétique
sort($textsSelectMenu);
sort($textsSelectMenuExtended);
sort($classSelectMenu);
sort($classSelectMenuExtended);
270 271


272
?>
273

274

275 276
<h1>Formulaire de renouvellement d'adhésion</h1>
<p>
N. Peraldi's avatar
N. Peraldi committed
277
    <?php
N. Peraldi's avatar
N. Peraldi committed
278
    if ($numberOfErrors == 1) {
N. Peraldi's avatar
N. Peraldi committed
279
        echo "Une erreur est survenue lors de l'envoi du formulaire. Veuillez vérifier vos informations";
N. Peraldi's avatar
N. Peraldi committed
280
    } elseif ($numberOfErrors > 1) {
N. Peraldi's avatar
N. Peraldi committed
281 282 283 284 285
        echo "Plusieurs erreurs sont survenues lors de l'envoi du formulaire. Veuillez vérifier vos informations";
    }


    ?>
286 287

</p>
288
<form action="" method="post">
289
    <p>
N. Peraldi's avatar
N. Peraldi committed
290 291 292 293 294
        <input id="ancienSelectType" type="hidden" name="ancienSelectType" value="<?php tryToEcho("firstSelection") ?>">
        <input id="ancienSelectSize" type="hidden" name="ancienSelectSize"
               value="<?php tryToEcho("secondSelection") ?>">
        <input id="ancienSelectPeriod" type="hidden" name="ancienSelectPeriod"
               value="<?php tryToEcho("periodeAdhesionCollectivite") ?>">
295

296 297 298 299
        <label for="firstSelect">Veuillez sélectionner le type de collectivité :</label>

        <select id="firstSelect" required="" name="firstSelection">
            <option value="none">---</option>
300 301 302 303 304 305

            <?php
            //on génère les options en fonction du fichier et des valeurs par défaut.
            for ($i = 0; $i < count($textsSelectMenuExtended); $i++) {
                ?>
                <option class="optionFirstSelect"
N. Peraldi's avatar
N. Peraldi committed
306
                        value="<?php echo $classSelectMenuExtended[$i] ?>"><?php echo $textsSelectMenuExtended[$i] ?></option>
307 308 309 310 311
                <?php
            }

            ?>

312 313

        </select>
N. Peraldi's avatar
N. Peraldi committed
314
        <?php tryToShowError("first selection"); ?>
315 316 317
    </p>

    <div id="link">
318
        <a href="contact.php" id="linkRedirection" title="Page par défaut">Valider</a>
319 320 321 322
    </div>

    <div id="formulaireEPCIMutualisant">
        <label for="nombreHabitantsEPCI">Nombre d'habitants de l'EPCI :</label>
N. Peraldi's avatar
N. Peraldi committed
323 324 325
        <input type="number" name="nombreHabitantsEPCI" id="nombreHabitantsEPCI"
               value="<?php tryToEcho("nombreHabitantsEPCI"); ?>"><br>
        <?php tryToShowError("EPCI com"); ?>
326 327

        <label for="nombreCommunesMembresEPCI">Nombre de communes membres :</label>
N. Peraldi's avatar
N. Peraldi committed
328 329 330
        <input type="number" name="nombreCommunesMembresEPCI" id="nombreCommunesMembresEPCI"
               value="<?php tryToEcho("nombreCommunesMembresEPCI"); ?>"><br>
        <?php tryToShowError("EPCI hab"); ?>
331 332 333 334 335 336 337 338 339

        <input type="button" value="Valider" id="boutonValiderNombresEPCI">


    </div>

    <p id="paraSecondSelection">
        <label for="secondSelection">Veuillez sélectionner la taille :</label>

N. Peraldi's avatar
N. Peraldi committed
340
        <select id="secondSelection" name="secondSelection">
341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359

            <?php
            $classInTreatment = "";
            $counter = 1;

            for ($a = 0; $a < count($listeGrilleEntiere); $a++) {
                //boucle qui génère les options du second select

                //on récupère la ligne
                $actualLine = $listeGrilleEntiere[$a];
                $actualClass = createNameClass($actualLine[0]);

                //on vérifie si on change de classe ou non pour remettre le compteur à 1
                if ($classInTreatment != $actualClass) {

                    $counter = 1;
                    $classInTreatment = $actualClass;

                    ?>
360
                    <option class="<?php echo $classInTreatment ?>" value="none" name="optionSelect2">---</option>
361 362 363 364 365 366 367 368
                    <?php
                }

                //la tranche pour la cotisation
                $tranch = $classInTreatment . "-T" . $counter;

                ?>
                <option class="<?php echo $classInTreatment ?>" id="<?php echo $tranch ?>"
369
                        value="<?php echo $actualLine[1] ?>" name="optionSelect2"><?php echo $actualLine[1] ?></option>
370
                <?php
371 372


373 374 375 376 377 378 379
                $counter += 1;


            }

            ?>

380 381

        </select>
N. Peraldi's avatar
N. Peraldi committed
382
        <?php tryToShowError("second Selection"); ?>
383 384 385
    </p>

    <div id="cotisation">
386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421

        <?php
        $classInTreatment = "";
        $counter = 1;

        for ($a = 0; $a < count($listeGrilleEntiere); $a++) {
            //boucle qui génère les montants des cotisations

            //on récupère la ligne
            $actualLine = $listeGrilleEntiere[$a];
            $actualClass = createNameClass($actualLine[0]);

            //on vérifie si on change de classe ou non pour remettre le compteur à 1
            if ($classInTreatment != $actualClass) {

                $counter = 1;
                $classInTreatment = $actualClass;
            }

            //la tranche pour la cotisation
            $id = "PCOT-" . $classInTreatment . "-T" . $counter;

            ?>
            <p id="<?php echo $id ?>" class="PCOT">Montant de la cotisation : <?php echo $actualLine[2] ?></p>
            <?php

            $counter += 1;


        }

        ?>

        <p id="PCOT-EPCIMutualisant" class="PCOT">Montant de la cotisation : <span id="montantCotisation"></span></p>
        <p id="PCOT-Association" class="PCOT">Montant de la cotisation : 15€</p>

422 423 424 425 426 427 428
    </div>


    <div id="informationsCollectivite">
        <h3>Informations obligatoires :</h3>

        <label for="nomCollectivite">Nom de la collectivité :</label>
N. Peraldi's avatar
N. Peraldi committed
429 430 431
        <input type="text" name="nomCollectivite" id="nomCollectivite" required=""
               value="<?php tryToEcho("nomCollectivite"); ?>"><br>
        <?php tryToShowError("nom"); ?>
432 433

        <label for="adresseCollectivite">Adresse :</label>
N. Peraldi's avatar
N. Peraldi committed
434 435 436
        <input type="text" name="adresseCollectivite" id="adresseCollectivite" required=""
               value="<?php tryToEcho("adresseCollectivite"); ?>"><br>
        <?php tryToShowError("adresse"); ?>
437 438

        <label for="codePostalCollectivite">Code postal :</label>
N. Peraldi's avatar
N. Peraldi committed
439 440 441
        <input type="text" name="codePostalCollectivite" id="codePostalCollectivite" required=""
               value="<?php tryToEcho("codePostalCollectivite"); ?>"><br>
        <?php tryToShowError("CP"); ?>
442 443

        <label for="villeCollectivite">Ville :</label>
N. Peraldi's avatar
N. Peraldi committed
444 445 446
        <input type="text" name="villeCollectivite" id="villeCollectivite" required=""
               value="<?php tryToEcho("villeCollectivite"); ?>"><br>
        <?php tryToShowError("ville"); ?>
447 448

        <label for="telCollectivite">Téléphone :</label>
N. Peraldi's avatar
N. Peraldi committed
449 450 451
        <input type="tel" name="telCollectivite" id="telCollectivite" required=""
               value="<?php tryToEcho("telCollectivite"); ?>"><br>
        <?php tryToShowError("tel"); ?>
N. Peraldi's avatar
N. Peraldi committed
452

453 454

        <label for="siteCollectivite">Site internet :</label>
N. Peraldi's avatar
N. Peraldi committed
455 456 457
        <input type="url" name="siteCollectivite" id="siteCollectivite" required=""
               value="<?php tryToEcho("siteCollectivite"); ?>"><br>
        <?php tryToShowError("site"); ?>
458

root's avatar
root committed
459
        <label for="periodeAdhesionCollectivite">Période d'adhésion :</label>
N. Peraldi's avatar
N. Peraldi committed
460
        <select name="periodeAdhesionCollectivite" id="periodeAdhesionCollectivite" required="">
461
            <option class="optionPeriod" value="" selected>---</option>
root's avatar
root committed
462 463 464 465
            <?php generateDates(); ?>

        </select>

466 467 468
        <h3>Informations relatives à Chorus Pro</h3>

        <label for="siretCollectivite">SIRET :</label>
N. Peraldi's avatar
N. Peraldi committed
469 470 471
        <input type="number" name="siretCollectivite" id="siretCollectivite" required=""
               value="<?php tryToEcho("siretCollectivite"); ?>"><br>
        <?php tryToShowError("siret"); ?>
N. Peraldi's avatar
N. Peraldi committed
472

473 474

        <label for="numeroEngagementCollectivite">N° d'engagement :</label>
N. Peraldi's avatar
N. Peraldi committed
475 476 477
        <input type="text" name="numeroEngagementCollectivite" id="numeroEngagementCollectivite" required=""
               value="<?php tryToEcho("numeroEngagementCollectivite"); ?>"><br>
        <?php tryToShowError("numeroEngagement"); ?>
478 479

        <label for="codeCollectivite">Code :</label>
N. Peraldi's avatar
N. Peraldi committed
480 481 482
        <input type="text" name="codeCollectivite" id="codeCollectivite" required=""
               value="<?php tryToEcho("codeCollectivite"); ?>"><br>
        <?php tryToShowError("code"); ?>
483 484 485 486 487 488 489 490 491 492


    </div>


    <input type="submit" id="boutonEnvoyer">
</form>

<script>

N. Peraldi's avatar
N. Peraldi committed
493
    prepareDocument();
494 495

</script>
N. Peraldi's avatar
N. Peraldi committed
496

497 498 499 500 501
<?php

get_footer();

?>
502 503
</body>
</html>