contact.php 13.7 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" => ""
);

22
$debug_mode = false;
N. Peraldi's avatar
N. Peraldi committed
23

24 25
$resultat = false;

N. Peraldi's avatar
N. Peraldi committed
26 27 28
function tryToEcho($var)
{
    if (isset($_POST[$var])) {
N. Peraldi's avatar
N. Peraldi committed
29 30 31 32
        echo $_POST[$var];
    }
}

N. Peraldi's avatar
N. Peraldi committed
33 34
function tryToSetInputSelect($key, $value)
{
35
    //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
36
    if (isset($_POST[$key])) {
37

N. Peraldi's avatar
N. Peraldi committed
38
        if ($_POST[$key] == $value) {
39 40 41 42 43 44 45 46
            echo "selected";
        }


    }

}

N. Peraldi's avatar
N. Peraldi committed
47 48
function tryToShowError($var)
{
N. Peraldi's avatar
N. Peraldi committed
49
    global $errors;
N. Peraldi's avatar
N. Peraldi committed
50
    if (strlen($errors[$var]) > 0) {
N. Peraldi's avatar
N. Peraldi committed
51 52 53 54
        echo "<p class='error'> " . $errors[$var] . "</p>";
    }
}

55 56
$numberOfErrors = 0;

N. Peraldi's avatar
N. Peraldi committed
57 58
if (isset($_POST)) {
    if (isset($_POST["firstSelection"])) {
59

60
        include "traitementAdhesion.php";
N. Peraldi's avatar
N. Peraldi committed
61
        if ($debug_mode) {
N. Peraldi's avatar
N. Peraldi committed
62 63 64 65
            echo "<br> début du traitement <br>";
        }


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

N. Peraldi's avatar
N. Peraldi committed
68
        if ($debug_mode) {
N. Peraldi's avatar
N. Peraldi committed
69 70 71
            echo "<br> fin du traitement <br>";
        }

72

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

N. Peraldi's avatar
N. Peraldi committed
75
            if ($debug_mode) {
N. Peraldi's avatar
N. Peraldi committed
76 77 78
                echo $key . " : " . $value . "<br>";
            }

N. Peraldi's avatar
N. Peraldi committed
79 80
            if (strlen($value) > 0) {
                $numberOfErrors += 1;
81
            }
82 83
        }

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

N. Peraldi's avatar
N. Peraldi committed
87 88
            var_dump($errors);
        }
N. Peraldi's avatar
N. Peraldi committed
89
        if ($numberOfErrors == 0) {
90 91 92
            sendAdhesionMail($_POST);


N. Peraldi's avatar
N. Peraldi committed
93 94 95 96
            header("Location:");
        }


97 98
    }
}
99 100 101 102 103


?>


104 105 106 107 108
<html lang="fr">
<head>
    <title>Renouvellement d'adhésion</title>
    <meta charset="UTF-8">
    <?php
root's avatar
root committed
109 110 111 112 113 114 115 116
    //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";


117 118 119 120 121 122
    $JSPath = '/wp-content/themes/twentyseventeen-child/twentynineteen-child/adhesionForm.js';
    ?>
    <script type="text/javascript" src="<?php echo $JSPath ?>"></script>
</head>
<body>

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


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

N. Peraldi's avatar
N. Peraldi committed
131

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

N. Peraldi's avatar
N. Peraldi committed
134

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

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

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

143 144 145 146 147 148 149
$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
150

151 152 153 154 155 156 157 158 159 160
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
161 162 163
        }
    }

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

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

171
    $chars = array(
172
        //tous les caractères susceptibles d'être remplacés
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 202
        "é" => "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
203
    $variable = strtr($variable, $chars);
204

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

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

N. Peraldi's avatar
N. Peraldi committed
215

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

    }

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

}

226 227 228 229 230 231
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;
232 233 234
        }
    }

235
    return false;
236 237
}

238 239 240 241
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
242 243
}

244

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

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

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

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

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

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

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


273
?>
274

275

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


    ?>
287 288

</p>
289
<form action="" method="post">
290
    <p>
N. Peraldi's avatar
N. Peraldi committed
291 292 293 294 295
        <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") ?>">
296

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

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

            <?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
307
                        value="<?php echo $classSelectMenuExtended[$i] ?>"><?php echo $textsSelectMenuExtended[$i] ?></option>
308 309 310 311 312
                <?php
            }

            ?>

313 314 315 316 317

        </select>
    </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 382 383 384

        </select>
    </p>

    <div id="cotisation">
385 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

        <?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>

421 422 423 424 425 426 427
    </div>


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

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

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

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

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

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

452 453

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

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

        </select>

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

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

472 473

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

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


    </div>


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

<script>

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

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

496 497 498 499 500
<?php

get_footer();

?>
501 502
</body>
</html>