contact.php 15.5 KB
Newer Older
N. Peraldi's avatar
N. Peraldi committed
1
<?php
Matthieu FAURE's avatar
Matthieu FAURE committed
2 3 4
/*
Template Name: Test
*/
N. Peraldi's avatar
N. Peraldi committed
5 6


7
get_header(); ?>
N. Peraldi's avatar
N. Peraldi committed
8 9 10 11 12


<?php

$fichier = fopen('grille.csv', 'r');
Matthieu FAURE's avatar
Matthieu FAURE committed
13
$ligne = fgetcsv($fichier, 1024, ";");
N. Peraldi's avatar
N. Peraldi committed
14 15

//on effectue de nouveau cette instruction pour sauter les titres du tableau
Matthieu FAURE's avatar
Matthieu FAURE committed
16
$ligne = fgetcsv($fichier, 1024, ";");
N. Peraldi's avatar
N. Peraldi committed
17 18
$listeFinale = [];

Matthieu FAURE's avatar
Matthieu FAURE committed
19 20
function isWordIn($word, $list)
{
N. Peraldi's avatar
N. Peraldi committed
21
    //on vérifie si word est contenu dans list
Matthieu FAURE's avatar
Matthieu FAURE committed
22 23
    for ($a = 0; $a < count($list); $a++) {
        if ($word == $list[$a]) {
N. Peraldi's avatar
N. Peraldi committed
24 25 26 27 28 29 30
            return true;
        }
    }

    return false;
}

Matthieu FAURE's avatar
Matthieu FAURE committed
31 32
function deleteAccents($variable)
{
N. Peraldi's avatar
N. Peraldi committed
33
    //fonction qui supprime les accents de la chaine et retourne la chaine
Matthieu FAURE's avatar
Matthieu FAURE committed
34 35 36 37 38
    $variable = str_replace("é", "e", $variable);
    $variable = str_replace("è", "e", $variable);
    $variable = str_replace("à", "a", $variable);
    $variable = str_replace("ç", "c", $variable);
    $variable = str_replace("ù", "u", $variable);
N. Peraldi's avatar
N. Peraldi committed
39 40 41 42

    return $variable;
}

Matthieu FAURE's avatar
Matthieu FAURE committed
43 44
function createSecondSelectList($liste)
{
N. Peraldi's avatar
N. Peraldi committed
45 46
    //fonction qui crée la liste de classes qui sert pour le 2e select
    $listeTempo = [];
Matthieu FAURE's avatar
Matthieu FAURE committed
47 48
    for ($a = 0; $a < count($liste); $a++) {
        $mot = str_replace(" ", "_", $liste[$a][0]);
N. Peraldi's avatar
N. Peraldi committed
49 50
        $mot = deleteAccents($mot);

Matthieu FAURE's avatar
Matthieu FAURE committed
51
        if (!isWordIn($mot, $listeTempo)) {
N. Peraldi's avatar
N. Peraldi committed
52 53 54 55 56 57 58 59 60
            $listeTempo[] = ($mot);
        }

    }

    return $listeTempo;

}

61

Matthieu FAURE's avatar
Matthieu FAURE committed
62
while ($ligne) {
N. Peraldi's avatar
N. Peraldi committed
63 64
    //boucle qui va récupérer tout le contenu du fichier pour le stocker dans listefFinale
    $listeFinale[] = ($ligne);
Matthieu FAURE's avatar
Matthieu FAURE committed
65
    $ligne = fgetcsv($fichier, 1024, ";");
N. Peraldi's avatar
N. Peraldi committed
66 67 68 69 70 71 72 73
}

fclose($fichier);

$secondSelectList = createSecondSelectList($listeFinale);


?>
74

Matthieu FAURE's avatar
Matthieu FAURE committed
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
<script>
    var secondSelectList = [
        "ville",
        "departement",
        "region",
        "EPCIFiscalitePropre",
        "etablissementPublic"

    ];

    var listeCotisations = {
        ville: {
            T1: 100,
            T2: 250,
            T3: 500,
            T4: 900,
            T5: 1500,
            T6: 2500,
            T7: 3000,
            T8: 3500,
            T9: 4000,
            T10: 4500,
            T11: 6000
        },

        departement: {
            T1: 4000,
            T2: 4500,
            T3: 6000
        },

        region: {
            T1: 4500,
            T2: 6000
        },

        EPCIFiscalitePropre: {
            T1: 1750,
            T2: 2500,
            T3: 3000,
            T4: 3500,
            T5: 4000,
            T6: 4500,
            T7: 6000
        },

        etablissementPublic: {
            T1: 250,
            T2: 500,
            T3: 1250,
            T4: 1750,
            T5: 2500
        }
128 129


Matthieu FAURE's avatar
Matthieu FAURE committed
130
    };
131 132


Matthieu FAURE's avatar
Matthieu FAURE committed
133 134
    //liste des blocs qui peuvent être affichés / cachés
    var blocks = ["link", "paraSecondSelection", "cotisation", "informationsCollectivite", "formulaireEPCIMutualisant", "boutonEnvoyer"];
135 136


Matthieu FAURE's avatar
Matthieu FAURE committed
137 138
    function displayMask(display) {
        //fonction qui affiche / cache les formulaires / informations en fonction des données entrées dans les formulaires
139

Matthieu FAURE's avatar
Matthieu FAURE committed
140 141 142 143 144 145
        for (var h = 0; h < blocks.length; h++) {
            if (isWordIn(blocks[h], display)) {
                document.getElementById(blocks[h]).style.display = "block";
            } else {
                document.getElementById(blocks[h]).style.display = "none";
            }
146 147 148


        }
Matthieu FAURE's avatar
Matthieu FAURE committed
149
    }
150

Matthieu FAURE's avatar
Matthieu FAURE committed
151 152
    function displayMaskOptions(display) {
        //sert à afficher / cacher les options du 2e select menu
153

Matthieu FAURE's avatar
Matthieu FAURE committed
154
        var tousLesElements = undefined;
155 156


Matthieu FAURE's avatar
Matthieu FAURE committed
157 158
        for (var j = 0; j < secondSelectList.length; j++) {
            //boucle for qui va parcourir la liste des classes des options disponibles
159

Matthieu FAURE's avatar
Matthieu FAURE committed
160 161
            if (display === secondSelectList[j]) {
                //si l'element en cours est celui de la classe recherchée
162

Matthieu FAURE's avatar
Matthieu FAURE committed
163 164 165 166 167
                tousLesElements = document.getElementsByClassName(display);
                for (var g = 0; g < tousLesElements.length; g++) {
                    if (g === 0) {
                        tousLesElements[g].selected = true;
                    }
168

Matthieu FAURE's avatar
Matthieu FAURE committed
169
                    tousLesElements[g].hidden = false;
170 171 172


                }
Matthieu FAURE's avatar
Matthieu FAURE committed
173
            } else {
174 175


Matthieu FAURE's avatar
Matthieu FAURE committed
176
                tousLesElements = document.getElementsByClassName(secondSelectList[j]);
177

Matthieu FAURE's avatar
Matthieu FAURE committed
178 179
                for (var h = 0; h < tousLesElements.length; h++) {
                    tousLesElements[h].hidden = true;
180 181 182 183
                }
            }
        }

Matthieu FAURE's avatar
Matthieu FAURE committed
184
    }
185

Matthieu FAURE's avatar
Matthieu FAURE committed
186 187
    function firstAction() {
        //fonction effectuée lorsque le premier select est validé
188

Matthieu FAURE's avatar
Matthieu FAURE committed
189 190 191
        //on recup ce qui a été cliqué
        var e = document.getElementById("firstSelect");
        var strUser = e.options[e.selectedIndex].value;
192

Matthieu FAURE's avatar
Matthieu FAURE committed
193
        //on reagit en fonction
194

Matthieu FAURE's avatar
Matthieu FAURE committed
195 196 197 198 199
        //si il a cliqué vers individu, redirigé vers helloasso
        if (strUser === "individu") {
            linkRedirection("https://helloasso.com", "Redirection vers HelloAsso");
            displayMask(["link"]);
        }
200

Matthieu FAURE's avatar
Matthieu FAURE committed
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215
        //si il a cliqué sur association
        else if (strUser === "association") {
            setCotisation(15);
            displayMask(["cotisation", "informationsCollectivite", "boutonEnvoyer"]);
            document.getElementById("secondSelection").required = false;
            setEPCIRequired(false);
        } else if (strUser === "EPCIMutualisant") {
            //formulaire contenant la formule spécifique à EPCI mutualisant
            displayMask(["formulaireEPCIMutualisant"]);
            setEPCIRequired(true);

        } else if (strUser === "none") {
            //premier choix avec des tirets
            displayMask([""]);
        }
216

Matthieu FAURE's avatar
Matthieu FAURE committed
217 218
        //si il a cliqué sur autre chose : on cherche à connaitre la taille de la collectivité, on affiche le 2e select
        else {
219

Matthieu FAURE's avatar
Matthieu FAURE committed
220 221 222 223
            displayMaskOptions(strUser);
            document.getElementById("secondSelection").required = true;
            displayMask(["paraSecondSelection"]);
            setEPCIRequired(false);
224

Matthieu FAURE's avatar
Matthieu FAURE committed
225
        }
226 227


Matthieu FAURE's avatar
Matthieu FAURE committed
228
        /*for (var element in allForms){
229

Matthieu FAURE's avatar
Matthieu FAURE committed
230
            if (element===strUser){
231 232


Matthieu FAURE's avatar
Matthieu FAURE committed
233
                document.getElementById(element).style.display = "block";
234

Matthieu FAURE's avatar
Matthieu FAURE committed
235
                for (var j = 0; j < allForms[element].length; j++){
236

Matthieu FAURE's avatar
Matthieu FAURE committed
237
                    document.getElementById(allForms[element][j]).required = true;
238 239 240 241
                }

            }

Matthieu FAURE's avatar
Matthieu FAURE committed
242
            else{
243

Matthieu FAURE's avatar
Matthieu FAURE committed
244 245 246 247
                document.getElementById(element).style.display = "none";

                for (var i = 0; i < allForms[element].length; i++){
                    document.getElementById(allForms[element][i]).required = false;
248 249 250 251
                }
            }
        }

Matthieu FAURE's avatar
Matthieu FAURE committed
252 253 254 255 256 257 258 259
     */
    }

    function isWordIn(word, list) {
        for (a = 0; a < list.length; a++) {
            if (word === list[a]) {
                return true
            }
260 261
        }

Matthieu FAURE's avatar
Matthieu FAURE committed
262 263
        return false
    }
264

Matthieu FAURE's avatar
Matthieu FAURE committed
265 266 267 268
    function linkRedirection(link, title) {
        document.getElementById("linkRedirection").setAttribute("href", link);
        document.getElementById("linkRedirection").setAttribute("title", title);
    }
269

Matthieu FAURE's avatar
Matthieu FAURE committed
270 271 272
    function secondAction() {
        var e = document.getElementById("secondSelection");
        var selectedTranch = e.options[e.selectedIndex].getAttribute("id");
273

Matthieu FAURE's avatar
Matthieu FAURE committed
274 275
        var tranch = selectedTranch.split("-");
        setCotisation(listeCotisations[tranch[0]][tranch[1]]);
276

Matthieu FAURE's avatar
Matthieu FAURE committed
277 278
        displayMask(["paraSecondSelection", "cotisation", "informationsCollectivite", "boutonEnvoyer"]);
    }
279

Matthieu FAURE's avatar
Matthieu FAURE committed
280 281 282 283
    function setCotisation(x) {
        //définit le montant de la cotisation
        document.getElementById("montantCotisation").innerHTML = x;
    }
284

Matthieu FAURE's avatar
Matthieu FAURE committed
285 286 287 288 289
    function setEPCIRequired(boolean) {
        //le formulaire EPCI est il requis ? cela varie selon les choix faits par l'utilisateur
        document.getElementById("nombreHabitantsEPCI").required = boolean;
        document.getElementById("nombreCommunesMembresEPCI").required = boolean;
    }
290 291


Matthieu FAURE's avatar
Matthieu FAURE committed
292 293 294 295
    function traitementEPCIMutualisant() {
        //lorsque l'utilisateur valide les 2 nombres entrés pour l'EPCI, les traitements nécessaires sont ici
        var nombreHabitants = document.getElementById("nombreHabitantsEPCI").value;
        var nombreCommunesMembres = document.getElementById("nombreCommunesMembresEPCI").value;
296 297


Matthieu FAURE's avatar
Matthieu FAURE committed
298 299 300
        if (nombreHabitants !== "") {
            if (nombreCommunesMembres !== "") {
                var resultat = (0.035 * nombreHabitants) + (15 * nombreCommunesMembres) + 1200;
301

Matthieu FAURE's avatar
Matthieu FAURE committed
302 303 304 305 306
                resultat = Math.round(resultat);
                //cette fonction arrondit le nombre en fonction du nombre après la virgule.
                //exemple :
                // Math.round(20,4999) donnera 20
                // Math.round(20,5) donnera 21
307 308


Matthieu FAURE's avatar
Matthieu FAURE committed
309 310 311
                if (resultat > 15000) {
                    //le plafond est fixé à 15000
                    resultat = 15000;
312
                }
Matthieu FAURE's avatar
Matthieu FAURE committed
313 314 315 316

                setCotisation(resultat);
                displayMask(["cotisation", "informationsCollectivite", "formulaireEPCIMutualisant", "boutonEnvoyer"]);

317 318
            }
        }
Matthieu FAURE's avatar
Matthieu FAURE committed
319
    }
320

Matthieu FAURE's avatar
Matthieu FAURE committed
321
</script>
N. Peraldi's avatar
N. Peraldi committed
322

323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338
<h1>Formulaire de renouvellement d'adhésion</h1>
<p>
    <b>Votre catégorie :</b>

</p>
<form action="contact.html" method="post">
    <p>
        <label for="firstSelect">Veuillez sélectionner le type de collectivité :</label>

        <select id="firstSelect" required="" name="firstSelection">
            <option value="none">---</option>
            <option class="optionFirstSelect" value="association">Association</option>                       <!-- valeur fixe : 15€ -->
            <option class="optionFirstSelect" value="departement">Département</option>
            <option class="optionFirstSelect" value="EPCIFiscalitePropre">EPCI à fiscalité propre</option>
            <option class="optionFirstSelect" value="EPCIMutualisant">EPCI mutualisant</option>
            <option class="optionFirstSelect" value="etablissementPublic">Etablissement public</option>
Matthieu FAURE's avatar
Matthieu FAURE committed
339
            <option class="optionFirstSelect" value="individu">Individu</option>                         <!-- redirigé vers helloasso -->
340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364
            <option class="optionFirstSelect" value="region">Région</option>
            <option class="optionFirstSelect" value="ville">Ville</option>

        </select>
    </p>

    <div id="link">
        <a href="contact.html" id="linkRedirection" title="Page par défaut">Valider</a>
    </div>

    <div id="formulaireEPCIMutualisant">
        <label for="nombreHabitantsEPCI">Nombre d'habitants de l'EPCI :</label>
        <input type="number" name="nombreHabitantsEPCI" id="nombreHabitantsEPCI"><br>

        <label for="nombreCommunesMembresEPCI">Nombre de communes membres :</label>
        <input type="number" name="nombreCommunesMembresEPCI" id="nombreCommunesMembresEPCI"><br>

        <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
365
        <select id="secondSelection" name="secondSelection">
366
            <option class="ville" id="ville-T1" value="-1000">- de 1000</option>
N. Peraldi's avatar
N. Peraldi committed
367
            <option class="ville" id="ville-T2" value="1001-2500">de 1 000 à 2 500</option>
368 369 370 371 372 373 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 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449
            <option class="ville" id="ville-T3" value="2501-5000">de 2 501 à 5 000</option>
            <option class="ville" id="ville-T4" value="5001-10000">de 5 001 à 10 000</option>
            <option class="ville" id="ville-T5" value="10001-20000">de 10 001 à 20 000</option>
            <option class="ville" id="ville-T6" value="20001-30000">de 20 001 à 30 000</option>
            <option class="ville" id="ville-T7" value="30001-50000">de 30 001 à 50 000</option>
            <option class="ville" id="ville-T8" value="50001-80000">de 50 001 à 80 000</option>
            <option class="ville" id="ville-T9" value="80001-100000">de 80 001 à 100 000</option>
            <option class="ville" id="ville-T10" value="+100000">+ de 100 000</option>
            <option class="ville" id="ville-T11" value="arrondissement">à arrondissement</option>

            <option class="departement" id="departement-T1" value="-1000000">- de 1 000 000</option>
            <option class="departement" id="departement-T2" value="1000001-2000000">de 1 000 001 à 2 000 000</option>
            <option class="departement" id="departement-T3" value="+2000000">+ de 2 000 000</option>

            <option class="region" id="region-T1" value="-2500000">- de 2 500 000</option>
            <option class="region" id="region-T2" value="+2500000">+ de 2 500 000</option>

            <option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T1" value="-10000">- de 10 000</option>
            <option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T2" value="10001-50000">de 10 001 à 50 000</option>
            <option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T3" value="50001-100000">de 50 001 à 100 000</option>
            <option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T4" value="100001-250000">de 100 001 à 250 000</option>
            <option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T5" value="250001-500000">de 250 001 à 500 000</option>
            <option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T6" value="500001-1000000">de 500 001 à 1 000 000</option>
            <option class="EPCIFiscalitePropre" id="EPCIFiscalitePropre-T7" value="+1000000">+ de 1 000 000</option>

            <option class="etablissementPublic" id="etablissementPublic-T1" value="-25">- de 25</option>
            <option class="etablissementPublic" id="etablissementPublic-T2" value="25-50">de 25 à 50</option>
            <option class="etablissementPublic" id="etablissementPublic-T3" value="51-100">de 51 à 100</option>
            <option class="etablissementPublic" id="etablissementPublic-T4" value="101-500">de 101 à 500</option>
            <option class="etablissementPublic" id="etablissementPublic-T5" value="+500">+ de 500</option>


        </select>
    </p>

    <div id="cotisation">
        <p>Montant de la cotisation : <span id="montantCotisation"></span></p>
    </div>


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

        <label for="nomCollectivite">Nom de la collectivité :</label>
        <input type="text" name="nomCollectivite" id="nomCollectivite" required=""><br>

        <label for="adresseCollectivite">Adresse :</label>
        <input type="text" name="adresseCollectivite" id="adresseCollectivite" required=""><br>

        <label for="codePostalCollectivite">Code postal :</label>
        <input type="text" name="codePostalCollectivite" id="codePostalCollectivite" required=""><br>

        <label for="villeCollectivite">Ville :</label>
        <input type="text" name="villeCollectivite" id="villeCollectivite" required=""><br>

        <label for="telCollectivite">Téléphone :</label>
        <input type="tel" name="telCollectivite" id="telCollectivite" required=""><br>

        <label for="siteCollectivite">Site internet :</label>
        <input type="url" name="siteCollectivite" id="siteCollectivite" required=""><br>

        <h3>Informations relatives à Chorus Pro</h3>

        <label for="siretCollectivite">SIRET :</label>
        <input type="text" name="siretCollectivite" id="siretCollectivite" required=""><br>

        <label for="numeroEngagementCollectivite">N° d'engagement :</label>
        <input type="text" name="numeroEngagementCollectivite" id="numeroEngagementCollectivite" required=""><br>

        <label for="codeCollectivite">Code :</label>
        <input type="text" name="codeCollectivite" id="codeCollectivite" required=""><br>


    </div>


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

<script>

    displayMask([""]);
Matthieu FAURE's avatar
Matthieu FAURE committed
450 451 452
    document.getElementById("firstSelect").setAttribute("onchange", "firstAction()");
    document.getElementById("boutonValiderNombresEPCI").setAttribute("onclick", "traitementEPCIMutualisant()");
    document.getElementById("secondSelection").setAttribute("onchange", "secondAction()");
453 454

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

root's avatar
root committed
456
<?php get_footer(); ?>