contact.php 13.6 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 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 tryToSetInputSelect($key, $value)
{
33
    //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
34
    if (isset($_POST[$key])) {
35

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


    }

}

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

53 54
$numberOfErrors = 0;

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

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


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

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

70

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

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

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

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

N. Peraldi's avatar
N. Peraldi committed
85 86
            var_dump($errors);
        }
87 88
    }
}
89 90 91 92 93


?>


94 95 96 97 98
<html lang="fr">
<head>
    <title>Renouvellement d'adhésion</title>
    <meta charset="UTF-8">
    <?php
root's avatar
root committed
99 100 101 102 103 104 105 106
    //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";


107 108 109 110 111 112
    $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
113
<?php
114 115 116
/*
Template Name: Test
*/
N. Peraldi's avatar
N. Peraldi committed
117 118


119
get_header();
N. Peraldi's avatar
N. Peraldi committed
120

root's avatar
root committed
121 122
include_once $periodSelectionPath;

N. Peraldi's avatar
N. Peraldi committed
123

124
$fichier = fopen($grillePath, 'r');
125
$ligne = fgetcsv($fichier, 1024, ";");
N. Peraldi's avatar
N. Peraldi committed
126 127

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

130
//------------------------Variables-------------------
N. Peraldi's avatar
N. Peraldi committed
131

132 133 134 135 136 137 138
$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
139

140 141 142 143 144 145 146 147 148 149
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
150 151 152
        }
    }

153
    return $listeTempo;
N. Peraldi's avatar
N. Peraldi committed
154 155
}

156 157
function createNameClass($variable)
{
158
    //fonction qui nettoie la chaine pour pouvoir l'utiliser en tant que nom de classe
N. Peraldi's avatar
N. Peraldi committed
159

160
    $chars = array(
161
        //tous les caractères susceptibles d'être remplacés
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
        "é" => "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
192
    $variable = strtr($variable, $chars);
193

N. Peraldi's avatar
N. Peraldi committed
194 195 196
    return $variable;
}

197
function createSizeSelectList($liste)
198 199
{
    //fonction qui crée la liste des classes qui sert pour le 2e select
N. Peraldi's avatar
N. Peraldi committed
200
    $resultList = [];
201
    for ($a = 0; $a < count($liste); $a++) {
202 203
        $mot = createNameClass($liste[$a][0]);

N. Peraldi's avatar
N. Peraldi committed
204

N. Peraldi's avatar
N. Peraldi committed
205 206
        if (!isWordIn($mot, $resultList)) {
            $resultList[] = $mot;
N. Peraldi's avatar
N. Peraldi committed
207 208 209 210
        }

    }

N. Peraldi's avatar
N. Peraldi committed
211
    return $resultList;
N. Peraldi's avatar
N. Peraldi committed
212 213 214

}

215 216 217 218 219 220
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;
221 222 223
        }
    }

224
    return false;
225 226
}

227 228 229 230
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
231 232
}

233

N. Peraldi's avatar
N. Peraldi committed
234 235
fclose($fichier);

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

239 240 241 242 243
//on ajoute "association", epci mutualisant et "individu" qui possèdent un traitement différent
$textsSelectMenuExtended = $textsSelectMenu;
$textsSelectMenuExtended[] = ("Association");
$textsSelectMenuExtended[] = ("Individu");
$textsSelectMenuExtended[] = ("EPCI Mutualisant");
244

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

248 249
//classes gérées automatiquement + manuellement
$classSelectMenuExtended = $classSelectMenu;
250

251 252 253 254 255 256 257 258 259
$classSelectMenuExtended[] = ("Association");
$classSelectMenuExtended[] = ("Individu");
$classSelectMenuExtended[] = ("EPCIMutualisant");

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


262
?>
263

264

265 266
<h1>Formulaire de renouvellement d'adhésion</h1>
<p>
N. Peraldi's avatar
N. Peraldi committed
267
    <?php
N. Peraldi's avatar
N. Peraldi committed
268
    if ($numberOfErrors == 1) {
N. Peraldi's avatar
N. Peraldi committed
269
        echo "Une erreur est survenue lors de l'envoi du formulaire. Veuillez vérifier vos informations";
N. Peraldi's avatar
N. Peraldi committed
270
    } elseif ($numberOfErrors > 1) {
N. Peraldi's avatar
N. Peraldi committed
271 272 273 274 275
        echo "Plusieurs erreurs sont survenues lors de l'envoi du formulaire. Veuillez vérifier vos informations";
    }


    ?>
276 277

</p>
278
<form action="" method="post">
279
    <p>
N. Peraldi's avatar
N. Peraldi committed
280 281 282 283 284
        <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") ?>">
285

286 287 288 289
        <label for="firstSelect">Veuillez sélectionner le type de collectivité :</label>

        <select id="firstSelect" required="" name="firstSelection">
            <option value="none">---</option>
290 291 292 293 294 295

            <?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
296
                        value="<?php echo $classSelectMenuExtended[$i] ?>"><?php echo $textsSelectMenuExtended[$i] ?></option>
297 298 299 300 301
                <?php
            }

            ?>

302 303 304 305 306

        </select>
    </p>

    <div id="link">
307
        <a href="contact.php" id="linkRedirection" title="Page par défaut">Valider</a>
308 309 310 311
    </div>

    <div id="formulaireEPCIMutualisant">
        <label for="nombreHabitantsEPCI">Nombre d'habitants de l'EPCI :</label>
N. Peraldi's avatar
N. Peraldi committed
312 313 314
        <input type="number" name="nombreHabitantsEPCI" id="nombreHabitantsEPCI"
               value="<?php tryToEcho("nombreHabitantsEPCI"); ?>"><br>
        <?php tryToShowError("EPCI com"); ?>
315 316

        <label for="nombreCommunesMembresEPCI">Nombre de communes membres :</label>
N. Peraldi's avatar
N. Peraldi committed
317 318 319
        <input type="number" name="nombreCommunesMembresEPCI" id="nombreCommunesMembresEPCI"
               value="<?php tryToEcho("nombreCommunesMembresEPCI"); ?>"><br>
        <?php tryToShowError("EPCI hab"); ?>
320 321 322 323 324 325 326 327 328

        <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
329
        <select id="secondSelection" name="secondSelection">
330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348

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

                    ?>
349
                    <option class="<?php echo $classInTreatment ?>" value="none" name="optionSelect2">---</option>
350 351 352 353 354 355 356 357
                    <?php
                }

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

                ?>
                <option class="<?php echo $classInTreatment ?>" id="<?php echo $tranch ?>"
358
                        value="<?php echo $actualLine[1] ?>" name="optionSelect2"><?php echo $actualLine[1] ?></option>
359
                <?php
360 361


362 363 364 365 366 367 368
                $counter += 1;


            }

            ?>

369 370 371 372 373

        </select>
    </p>

    <div id="cotisation">
374 375 376 377 378 379 380 381 382 383 384 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

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

410 411 412 413 414 415 416
    </div>


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

        <label for="nomCollectivite">Nom de la collectivité :</label>
N. Peraldi's avatar
N. Peraldi committed
417 418 419
        <input type="text" name="nomCollectivite" id="nomCollectivite" required=""
               value="<?php tryToEcho("nomCollectivite"); ?>"><br>
        <?php tryToShowError("nom"); ?>
420 421

        <label for="adresseCollectivite">Adresse :</label>
N. Peraldi's avatar
N. Peraldi committed
422 423 424
        <input type="text" name="adresseCollectivite" id="adresseCollectivite" required=""
               value="<?php tryToEcho("adresseCollectivite"); ?>"><br>
        <?php tryToShowError("adresse"); ?>
425 426

        <label for="codePostalCollectivite">Code postal :</label>
N. Peraldi's avatar
N. Peraldi committed
427 428 429
        <input type="text" name="codePostalCollectivite" id="codePostalCollectivite" required=""
               value="<?php tryToEcho("codePostalCollectivite"); ?>"><br>
        <?php tryToShowError("CP"); ?>
430 431

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

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

441 442

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

root's avatar
root committed
447
        <label for="periodeAdhesionCollectivite">Période d'adhésion :</label>
N. Peraldi's avatar
N. Peraldi committed
448
        <select name="periodeAdhesionCollectivite" id="periodeAdhesionCollectivite" required="">
449
            <option class="optionPeriod" value="" selected>---</option>
root's avatar
root committed
450 451 452 453
            <?php generateDates(); ?>

        </select>

454 455 456
        <h3>Informations relatives à Chorus Pro</h3>

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

461 462

        <label for="numeroEngagementCollectivite">N° d'engagement :</label>
N. Peraldi's avatar
N. Peraldi committed
463 464 465
        <input type="text" name="numeroEngagementCollectivite" id="numeroEngagementCollectivite" required=""
               value="<?php tryToEcho("numeroEngagementCollectivite"); ?>"><br>
        <?php tryToShowError("numeroEngagement"); ?>
466 467

        <label for="codeCollectivite">Code :</label>
N. Peraldi's avatar
N. Peraldi committed
468 469 470
        <input type="text" name="codeCollectivite" id="codeCollectivite" required=""
               value="<?php tryToEcho("codeCollectivite"); ?>"><br>
        <?php tryToShowError("code"); ?>
471 472 473 474 475 476 477 478 479 480


    </div>


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

<script>

N. Peraldi's avatar
N. Peraldi committed
481
    prepareDocument();
482 483

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

485 486 487 488 489
<?php

get_footer();

?>
490 491
</body>
</html>