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

N. Peraldi's avatar
N. Peraldi committed
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){
N. Peraldi's avatar
N. Peraldi committed
90 91 92 93
            sendAdhesionMail($_POST);



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



99 100
    }
}
101 102 103 104 105


?>


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


119 120 121 122 123 124
    $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
125
<?php
126 127 128
/*
Template Name: Test
*/
N. Peraldi's avatar
N. Peraldi committed
129 130


root's avatar
root committed
131
get_header();
N. Peraldi's avatar
N. Peraldi committed
132

N. Peraldi's avatar
N. Peraldi committed
133 134


root's avatar
root committed
135 136
include_once $periodSelectionPath;

N. Peraldi's avatar
N. Peraldi committed
137

root's avatar
root committed
138
$fichier = fopen($grillePath, 'r');
139
$ligne = fgetcsv($fichier, 1024, ";");
N. Peraldi's avatar
N. Peraldi committed
140 141

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

144
//------------------------Variables-------------------
N. Peraldi's avatar
N. Peraldi committed
145

146 147 148 149 150 151 152
$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
153

154 155 156 157 158 159 160 161 162 163
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
164 165 166
        }
    }

167
    return $listeTempo;
N. Peraldi's avatar
N. Peraldi committed
168 169
}

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

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

N. Peraldi's avatar
N. Peraldi committed
208 209 210
    return $variable;
}

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

N. Peraldi's avatar
N. Peraldi committed
218

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

    }

N. Peraldi's avatar
N. Peraldi committed
225
    return $resultList;
N. Peraldi's avatar
N. Peraldi committed
226 227 228

}

229 230 231 232 233 234
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;
235 236 237
        }
    }

238
    return false;
239 240
}

241 242 243 244
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
245 246
}

247

N. Peraldi's avatar
N. Peraldi committed
248 249
fclose($fichier);

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

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

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

262 263
//classes gérées automatiquement + manuellement
$classSelectMenuExtended = $classSelectMenu;
264

265 266 267 268 269 270 271 272 273
$classSelectMenuExtended[] = ("Association");
$classSelectMenuExtended[] = ("Individu");
$classSelectMenuExtended[] = ("EPCIMutualisant");

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


276
?>
277

278

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


    ?>
290 291

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

300 301 302 303
        <label for="firstSelect">Veuillez sélectionner le type de collectivité :</label>

        <select id="firstSelect" required="" name="firstSelection">
            <option value="none">---</option>
304 305 306 307 308 309

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

            ?>

316 317 318 319 320

        </select>
    </p>

    <div id="link">
321
        <a href="contact.php" id="linkRedirection" title="Page par défaut">Valider</a>
322 323 324 325
    </div>

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

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

        <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
343
        <select id="secondSelection" name="secondSelection">
344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362

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

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

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

                ?>
                <option class="<?php echo $classInTreatment ?>" id="<?php echo $tranch ?>"
372
                        value="<?php echo $actualLine[1] ?>" name="optionSelect2"><?php echo $actualLine[1] ?></option>
373
                <?php
374 375


376 377 378 379 380 381 382
                $counter += 1;


            }

            ?>

383 384 385 386 387

        </select>
    </p>

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

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

424 425 426 427 428 429 430
    </div>


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

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

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

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

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

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

455 456

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

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

        </select>

468 469 470
        <h3>Informations relatives à Chorus Pro</h3>

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

475 476

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

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


    </div>


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

<script>

N. Peraldi's avatar
N. Peraldi committed
495
    prepareDocument();
496 497

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

499 500 501 502 503
<?php

get_footer();

?>
504 505
</body>
</html>