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

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

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

N. Peraldi's avatar
N. Peraldi committed
31 32
function tryToShowError($var)
{
N. Peraldi's avatar
N. Peraldi committed
33
    global $errors;
N. Peraldi's avatar
N. Peraldi committed
34
    if (strlen($errors[$var]) > 0) {
N. Peraldi's avatar
N. Peraldi committed
35 36 37 38
        echo "<p class='error'> " . $errors[$var] . "</p>";
    }
}

39 40
$numberOfErrors = 0;

N. Peraldi's avatar
N. Peraldi committed
41 42
if (isset($_POST)) {
    if (isset($_POST["firstSelection"])) {
43

44
        include "traitementAdhesion.php";
N. Peraldi's avatar
N. Peraldi committed
45
        if ($debug_mode) {
N. Peraldi's avatar
N. Peraldi committed
46 47 48 49
            echo "<br> début du traitement <br>";
        }


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

N. Peraldi's avatar
N. Peraldi committed
52
        if ($debug_mode) {
N. Peraldi's avatar
N. Peraldi committed
53 54 55
            echo "<br> fin du traitement <br>";
        }

56

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

N. Peraldi's avatar
N. Peraldi committed
59
            if ($debug_mode) {
N. Peraldi's avatar
N. Peraldi committed
60 61 62
                echo $key . " : " . $value . "<br>";
            }

N. Peraldi's avatar
N. Peraldi committed
63 64
            if (strlen($value) > 0) {
                $numberOfErrors += 1;
65
            }
66 67
        }

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

N. Peraldi's avatar
N. Peraldi committed
71 72
            var_dump($errors);
        }
73 74
    }
}
75 76 77 78 79


?>


80 81 82 83 84
<html lang="fr">
<head>
    <title>Renouvellement d'adhésion</title>
    <meta charset="UTF-8">
    <?php
root's avatar
root committed
85 86 87 88 89 90 91 92
    //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";


93 94 95 96 97 98
    $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
99
<?php
100 101 102
/*
Template Name: Test
*/
N. Peraldi's avatar
N. Peraldi committed
103 104


105
get_header();
N. Peraldi's avatar
N. Peraldi committed
106

root's avatar
root committed
107 108
include_once $periodSelectionPath;

N. Peraldi's avatar
N. Peraldi committed
109

110
$fichier = fopen($grillePath, 'r');
111
$ligne = fgetcsv($fichier, 1024, ";");
N. Peraldi's avatar
N. Peraldi committed
112 113

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

116
//------------------------Variables-------------------
N. Peraldi's avatar
N. Peraldi committed
117

118 119 120 121 122 123 124
$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
125

126 127 128 129 130 131 132 133 134 135
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
136 137 138
        }
    }

139
    return $listeTempo;
N. Peraldi's avatar
N. Peraldi committed
140 141
}

142 143
function createNameClass($variable)
{
144
    //fonction qui nettoie la chaine pour pouvoir l'utiliser en tant que nom de classe
N. Peraldi's avatar
N. Peraldi committed
145

146
    $chars = array(
147
        //tous les caractères susceptibles d'être remplacés
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
        "é" => "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
178
    $variable = strtr($variable, $chars);
179

N. Peraldi's avatar
N. Peraldi committed
180 181 182
    return $variable;
}

183
function createSizeSelectList($liste)
184 185
{
    //fonction qui crée la liste des classes qui sert pour le 2e select
N. Peraldi's avatar
N. Peraldi committed
186
    $resultList = [];
187
    for ($a = 0; $a < count($liste); $a++) {
188 189
        $mot = createNameClass($liste[$a][0]);

N. Peraldi's avatar
N. Peraldi committed
190

N. Peraldi's avatar
N. Peraldi committed
191 192
        if (!isWordIn($mot, $resultList)) {
            $resultList[] = $mot;
N. Peraldi's avatar
N. Peraldi committed
193 194 195 196
        }

    }

N. Peraldi's avatar
N. Peraldi committed
197
    return $resultList;
N. Peraldi's avatar
N. Peraldi committed
198 199 200

}

201 202 203 204 205 206
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;
207 208 209
        }
    }

210
    return false;
211 212
}

213 214 215 216
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
217 218
}

219

N. Peraldi's avatar
N. Peraldi committed
220 221
fclose($fichier);

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

225 226 227 228 229
//on ajoute "association", epci mutualisant et "individu" qui possèdent un traitement différent
$textsSelectMenuExtended = $textsSelectMenu;
$textsSelectMenuExtended[] = ("Association");
$textsSelectMenuExtended[] = ("Individu");
$textsSelectMenuExtended[] = ("EPCI Mutualisant");
230

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

234 235
//classes gérées automatiquement + manuellement
$classSelectMenuExtended = $classSelectMenu;
236

237 238 239 240 241 242 243 244 245
$classSelectMenuExtended[] = ("Association");
$classSelectMenuExtended[] = ("Individu");
$classSelectMenuExtended[] = ("EPCIMutualisant");

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


248
?>
249

250

251 252
<h1>Formulaire de renouvellement d'adhésion</h1>
<p>
N. Peraldi's avatar
N. Peraldi committed
253
    <?php
N. Peraldi's avatar
N. Peraldi committed
254
    if ($numberOfErrors == 1) {
N. Peraldi's avatar
N. Peraldi committed
255
        echo "Une erreur est survenue lors de l'envoi du formulaire. Veuillez vérifier vos informations";
N. Peraldi's avatar
N. Peraldi committed
256
    } elseif ($numberOfErrors > 1) {
N. Peraldi's avatar
N. Peraldi committed
257 258 259 260 261
        echo "Plusieurs erreurs sont survenues lors de l'envoi du formulaire. Veuillez vérifier vos informations";
    }


    ?>
262 263

</p>
264
<form action="" method="post">
265 266 267 268 269
    <p>
        <label for="firstSelect">Veuillez sélectionner le type de collectivité :</label>

        <select id="firstSelect" required="" name="firstSelection">
            <option value="none">---</option>
270 271 272 273 274 275 276 277 278 279 280 281

            <?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"
                        value="<?php echo $classSelectMenuExtended[$i] ?>"><?php echo $textsSelectMenuExtended[$i] ?></option>
                <?php
            }

            ?>

282 283 284 285 286

        </select>
    </p>

    <div id="link">
287
        <a href="contact.php" id="linkRedirection" title="Page par défaut">Valider</a>
288 289 290 291
    </div>

    <div id="formulaireEPCIMutualisant">
        <label for="nombreHabitantsEPCI">Nombre d'habitants de l'EPCI :</label>
N. Peraldi's avatar
N. Peraldi committed
292 293 294
        <input type="number" name="nombreHabitantsEPCI" id="nombreHabitantsEPCI"
               value="<?php tryToEcho("nombreHabitantsEPCI"); ?>"><br>
        <?php tryToShowError("EPCI com"); ?>
295 296

        <label for="nombreCommunesMembresEPCI">Nombre de communes membres :</label>
N. Peraldi's avatar
N. Peraldi committed
297 298 299
        <input type="number" name="nombreCommunesMembresEPCI" id="nombreCommunesMembresEPCI"
               value="<?php tryToEcho("nombreCommunesMembresEPCI"); ?>"><br>
        <?php tryToShowError("EPCI hab"); ?>
300 301 302 303 304 305 306 307 308

        <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
309
        <select id="secondSelection" name="secondSelection">
310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328

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

                    ?>
329
                    <option class="<?php echo $classInTreatment ?>" value="none" name="optionSelect2">---</option>
330 331 332 333 334 335 336 337
                    <?php
                }

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

                ?>
                <option class="<?php echo $classInTreatment ?>" id="<?php echo $tranch ?>"
338
                        value="<?php echo $actualLine[1] ?>" name="optionSelect2"><?php echo $actualLine[1] ?></option>
339
                <?php
340 341


342 343 344 345 346 347 348
                $counter += 1;


            }

            ?>

349 350 351 352 353

        </select>
    </p>

    <div id="cotisation">
354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389

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

390 391 392 393 394 395 396
    </div>


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

        <label for="nomCollectivite">Nom de la collectivité :</label>
N. Peraldi's avatar
N. Peraldi committed
397 398 399
        <input type="text" name="nomCollectivite" id="nomCollectivite" required=""
               value="<?php tryToEcho("nomCollectivite"); ?>"><br>
        <?php tryToShowError("nom"); ?>
400 401

        <label for="adresseCollectivite">Adresse :</label>
N. Peraldi's avatar
N. Peraldi committed
402 403 404
        <input type="text" name="adresseCollectivite" id="adresseCollectivite" required=""
               value="<?php tryToEcho("adresseCollectivite"); ?>"><br>
        <?php tryToShowError("adresse"); ?>
405 406

        <label for="codePostalCollectivite">Code postal :</label>
N. Peraldi's avatar
N. Peraldi committed
407 408 409
        <input type="text" name="codePostalCollectivite" id="codePostalCollectivite" required=""
               value="<?php tryToEcho("codePostalCollectivite"); ?>"><br>
        <?php tryToShowError("CP"); ?>
410 411

        <label for="villeCollectivite">Ville :</label>
N. Peraldi's avatar
N. Peraldi committed
412 413 414
        <input type="text" name="villeCollectivite" id="villeCollectivite" required=""
               value="<?php tryToEcho("villeCollectivite"); ?>"><br>
        <?php tryToShowError("ville"); ?>
415 416

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

421 422

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

root's avatar
root committed
427
        <label for="periodeAdhesionCollectivite">Période d'adhésion :</label>
N. Peraldi's avatar
N. Peraldi committed
428 429
        <select name="periodeAdhesionCollectivite" id="periodeAdhesionCollectivite" required="">
            <option selected>---</option>
root's avatar
root committed
430 431 432 433
            <?php generateDates(); ?>

        </select>

434 435 436
        <h3>Informations relatives à Chorus Pro</h3>

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

441 442

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

        <label for="codeCollectivite">Code :</label>
N. Peraldi's avatar
N. Peraldi committed
448 449 450
        <input type="text" name="codeCollectivite" id="codeCollectivite" required=""
               value="<?php tryToEcho("codeCollectivite"); ?>"><br>
        <?php tryToShowError("code"); ?>
451 452 453 454 455 456 457 458 459 460


    </div>


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

<script>

N. Peraldi's avatar
N. Peraldi committed
461
    prepareDocument();
462 463

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

465 466 467 468 469
<?php

get_footer();

?>
470 471
</body>
</html>