Commit 083136b9 authored by N. Peraldi's avatar N. Peraldi

added some content in contact.php, almost finished

parent 014caa2c
......@@ -4,52 +4,67 @@ Template Name: Test
*/
/*get_header();*/ ?>
/*get_header(); */?>
<?php
$fichier = fopen('grille.csv', 'r');
$ligne = fgetcsv($fichier,1024, ";");
$ligne = fgetcsv($fichier, 1024, ";");
//on effectue de nouveau cette instruction pour sauter les titres du tableau
$ligne = fgetcsv($fichier,1024,";");
$ligne = fgetcsv($fichier, 1024, ";");
$listeFinale = [];
//------------------------Variables-------------------
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;
$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
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;
}
}
return false;
return $listeTempo;
}
function createNameClass($variable){
function createNameClass($variable)
{
//fonction qui nettoie la chaine pour pouvoir l'utiliser en tant que nom de classe
$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);
$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);
$variable = str_replace(" ","_",$variable);
$variable = str_replace(" ", "_", $variable);
return $variable;
}
function createSecondSelectList($liste){
//fonction qui crée la liste de classes qui sert pour le 2e select
function createSecondSelectList($liste)
{
//fonction qui crée la liste des classes qui sert pour le 2e select
$listeTempo = [];
for ($a = 0; $a < count($liste); $a++){
for ($a = 0; $a < count($liste); $a++) {
$mot = createNameClass($liste[$a][0]);
if (!isWordIn($mot,$listeTempo)){
$listeTempo[] = ($mot);
if (!isWordIn($mot, $listeTempo)) {
$listeTempo[] = $mot;
}
}
......@@ -58,42 +73,51 @@ function createSecondSelectList($liste){
}
function createFirstSelectionList($liste){
$listeTempo = [];
for ($a = 0; $a < count($liste); $a++){
$mot = $liste[$a][0];
if (!isWordIn($mot,$listeTempo)){
$listeTempo[] = ($mot);
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;
}
}
return $listeTempo;
return false;
}
while ($ligne){
//boucle qui va récupérer tout le contenu du fichier pour le stocker dans listefFinale
$listeFinale[] = ($ligne);
$ligne = fgetcsv($fichier,1024,";");
while ($ligne) {
//boucle qui va récupérer tout le contenu du fichier pour le stocker dans listeGrilleEntiere
$listeGrilleEntiere[] = ($ligne);
$ligne = fgetcsv($fichier, 1024, ";");
}
fclose($fichier);
//on crée la première liste qui gère les textes de la première liste
$firstSelectionTextList = createFirstSelectionList($listeFinale);
//on crée la première liste qui gère les textes de la première liste, avec accents et espaces
$textsSelectMenu = createFirstSelectionList($listeGrilleEntiere);
//on crée la liste pour le 2e select qui contient le nom de toutes les classes
$secondSelectList = createSecondSelectList($listeFinale);
//on ajoute "association", epci mutualisant et "individu" qui possèdent un traitement différent
$textsSelectMenuExtended = $textsSelectMenu;
$textsSelectMenuExtended[] = ("Association");
$textsSelectMenuExtended[] = ("Individu");
$textsSelectMenuExtended[] = ("EPCI Mutualisant");
//on crée la liste pour le 2e select qui contient le nom des classes gérés automatiquement
$classSelectMenu = createSecondSelectList($listeGrilleEntiere);
for ($i = 0; $i< count($secondSelectList); $i++){
//classes gérées automatiquement + manuellement
$classSelectMenuExtended = $classSelectMenu;
echo "secondselectlist : " . $secondSelectList[$i] . "<br>";
}
$classSelectMenuExtended[] = ("Association");
$classSelectMenuExtended[] = ("Individu");
$classSelectMenuExtended[] = ("EPCIMutualisant");
//on trie par ordre alphabétique
sort($textsSelectMenu);
sort($textsSelectMenuExtended);
sort($classSelectMenu);
sort($classSelectMenuExtended);
?>
......@@ -103,10 +127,10 @@ for ($i = 0; $i< count($secondSelectList); $i++){
<?php
//on génère la variable secondSelectList avec php
for ($a = 0; $a < count($secondSelectList); $a++){
for ($a = 0; $a < count($classSelectMenu); $a++) {
echo "'" . $secondSelectList[$a] . "'";
if (($a + 1) < $secondSelectList){
echo "'" . $classSelectMenu[$a] . "'";
if (($a + 1) < $classSelectMenu) {
echo ",\n";
}
}
......@@ -114,69 +138,18 @@ for ($i = 0; $i< count($secondSelectList); $i++){
];
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
},
EPCI_a_fiscalite_propre:{
T1:1750,
T2:2500,
T3:3000,
T4:3500,
T5:4000,
T6:4500,
T7:6000
},
Etablissement_Public:{
T1:250,
T2:500,
T3:1250,
T4:1750,
T5:2500
}
};
//liste des blocs qui peuvent être affichés / cachés
var blocks = ["link","paraSecondSelection","cotisation","informationsCollectivite","formulaireEPCIMutualisant","boutonEnvoyer"];
var blocks = ["link", "paraSecondSelection", "cotisation", "informationsCollectivite", "formulaireEPCIMutualisant", "boutonEnvoyer"];
function displayMask(display){
function displayMask(display) {
//fonction qui affiche / cache les formulaires / informations en fonction des données entrées dans les formulaires
for(var h = 0; h< blocks.length; h++){
if (isWordIn(blocks[h],display)){
for (var h = 0; h < blocks.length; h++) {
if (isWordIn(blocks[h], display)) {
document.getElementById(blocks[h]).style.display = "block";
}
else{
} else {
document.getElementById(blocks[h]).style.display = "none";
}
......@@ -184,38 +157,36 @@ for ($i = 0; $i< count($secondSelectList); $i++){
}
}
function displayMaskOptions(display){
function displayMaskOptions(display) {
//sert à afficher / cacher les options du 2e select menu
var tousLesElements = undefined;
for (var j = 0; j<secondSelectList.length ; j++){
for (var j = 0; j < secondSelectList.length; j++) {
//boucle for qui va parcourir la liste des classes des options disponibles
if (display === secondSelectList[j]){
if (display === secondSelectList[j]) {
//si l'element en cours est celui de la classe recherchée
tousLesElements = document.getElementsByClassName(display);
for (var g = 0; g<tousLesElements.length; g++){
if(g === 0){
for (var g = 0; g < tousLesElements.length; g++) {
if (g === 0) {
//on passe la première option disponible en selected pour éviter un bug d'affichage
tousLesElements[g].selected=true;
tousLesElements[g].selected = true;
}
tousLesElements[g].hidden = false;
}
}
else{
} else {
tousLesElements = document.getElementsByClassName(secondSelectList[j]);
for (var h = 0; h<tousLesElements.length; h++){
for (var h = 0; h < tousLesElements.length; h++) {
tousLesElements[h].hidden = true;
}
}
......@@ -233,48 +204,47 @@ for ($i = 0; $i< count($secondSelectList); $i++){
//on reagit en fonction
//si il a cliqué sur individu, redirigé vers helloasso
if (strUser==="individu"){
linkRedirection("https://helloasso.com","Redirection vers HelloAsso");
if (strUser === "Individu") {
linkRedirection("https://helloasso.com", "Redirection vers HelloAsso");
displayMask(["link"]);
}
//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 === "Association") {
setCotisation("Association");
else if(strUser==="EPCIMutualisant"){
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"){
} else if (strUser === "none") {
//premier choix avec des tirets
displayMask([""]);
}
//si il a cliqué sur autre chose : on cherche à connaitre la taille de la collectivité, on affiche le 2e select
else{
else {
displayMaskOptions(strUser);
document.getElementById("secondSelection").required = true;
displayMask(["paraSecondSelection"]);
setEPCIRequired(false);
}
}
function isWordIn(word,list){
function isWordIn(word, list) {
//le word est il contenu dans list ?
for (a = 0; a<list.length; a++){
if (word===list[a]){
for (a = 0; a < list.length; a++) {
if (word === list[a]) {
return true
}
}
......@@ -282,44 +252,69 @@ for ($i = 0; $i< count($secondSelectList); $i++){
return false
}
function linkRedirection(link,title){
function linkRedirection(link, title) {
//définit le lien de redirection et son titre
document.getElementById("linkRedirection").setAttribute("href",link);
document.getElementById("linkRedirection").setAttribute("title",title);
document.getElementById("linkRedirection").setAttribute("href", link);
document.getElementById("linkRedirection").setAttribute("title", title);
}
function secondAction(){
function secondAction() {
//fonction exécutée lorsque le 2e select est cliqué
var e = document.getElementById("secondSelection");
var selectedTranch = e.options[e.selectedIndex].getAttribute("id");
var tranch = selectedTranch.split("-");
setCotisation(listeCotisations[tranch[0]][tranch[1]]);
if (e.options[e.selectedIndex].value !== "none") {
//s'il a sélectionné autre chose que les tirets
var selectedTranch = e.options[e.selectedIndex].getAttribute("id");
setCotisation(selectedTranch);
displayMask(["paraSecondSelection", "cotisation", "informationsCollectivite", "boutonEnvoyer"]);
} else {
displayMask(["paraSecondSelection"]);
}
displayMask(["paraSecondSelection","cotisation","informationsCollectivite","boutonEnvoyer"]);
}
function setCotisation(x){
//définit le montant de la cotisation
document.getElementById("montantCotisation").innerHTML = x;
document.getElementById("inputMontantCotisation").setAttribute("value",x);
function setCotisation(id, x = 0) {
//définit la cotisation à afficher, l'option x sert uniquement pour le tarif EPCI mutualisant qui varie.
var paragraphCotList = document.getElementsByClassName("PCOT");
var research = "PCOT-" + id;
for (var b = 0; b < paragraphCotList.length; b++) {
if (paragraphCotList[b].getAttribute("id") === research) {
console.log(paragraphCotList[b].getAttribute("id") + "===" + research);
paragraphCotList[b].style.display = "block";
if (x > 0) {
document.getElementById("montantCotisation").innerHTML = x;
}
} else {
paragraphCotList[b].style.display = "none";
console.log(paragraphCotList[b].getAttribute("id") + "=/=" + research);
}
}
}
function setEPCIRequired(boolean){
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;
}
function traitementEPCIMutualisant(){
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;
if (nombreHabitants !== ""){
if (nombreCommunesMembres !== ""){
if (nombreHabitants !== "") {
if (nombreCommunesMembres !== "") {
var resultat = (0.035 * nombreHabitants) + (15 * nombreCommunesMembres) + 1200;
resultat = Math.round(resultat);
......@@ -329,13 +324,13 @@ for ($i = 0; $i< count($secondSelectList); $i++){
// Math.round(20,5) donnera 21
if (resultat>15000){
if (resultat > 15000) {
//le plafond est fixé à 15000
resultat = 15000;
}
setCotisation(resultat);
displayMask(["cotisation","informationsCollectivite","formulaireEPCIMutualisant","boutonEnvoyer"]);
setCotisation("EPCIMutualisant", resultat);
displayMask(["cotisation", "informationsCollectivite", "formulaireEPCIMutualisant", "boutonEnvoyer"]);
}
}
......@@ -354,14 +349,19 @@ for ($i = 0; $i< count($secondSelectList); $i++){
<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="EPCI_a_fiscalite_propre">EPCI à fiscalité propre</option>
<option class="optionFirstSelect" value="EPCIMutualisant">EPCI mutualisant</option>
<option class="optionFirstSelect" value="Etablissement_Public">Etablissement public</option>
<option class="optionFirstSelect" value="individu">Individu </option> <!-- redirigé vers helloasso -->
<option class="optionFirstSelect" value="Region">Région</option>
<option class="optionFirstSelect" value="Ville">Ville</option>
<?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
}
?>
</select>
</p>
......@@ -386,47 +386,86 @@ for ($i = 0; $i< count($secondSelectList); $i++){
<label for="secondSelection">Veuillez sélectionner la taille :</label>
<select id="secondSelection" name="secondSelection">
<option class="Ville" id="Ville-T1" value="-1000">- de 1000</option>
<option class="Ville" id="Ville-T2" value="1001-2500">de 1 000 à 2 500</option>
<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="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T1" value="-10000">- de 10 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T2" value="10001-50000">de 10 001 à 50 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T3" value="50001-100000">de 50 001 à 100 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T4" value="100001-250000">de 100 001 à 250 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T5" value="250001-500000">de 250 001 à 500 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T6" value="500001-1000000">de 500 001 à 1 000 000</option>
<option class="EPCI_a_fiscalite_propre" id="EPCI_a_fiscalite_propre-T7" value="+1000000">+ de 1 000 000</option>
<option class="Etablissement_Public" id="Etablissement_Public-T1" value="-25">- de 25</option>
<option class="Etablissement_Public" id="Etablissement_Public-T2" value="25-50">de 25 à 50</option>
<option class="Etablissement_Public" id="Etablissement_Public-T3" value="51-100">de 51 à 100</option>
<option class="Etablissement_Public" id="Etablissement_Public-T4" value="101-500">de 101 à 500</option>
<option class="Etablissement_Public" id="Etablissement_Public-T5" value="+500">+ de 500</option>
<?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;
?>
<option class="<?php echo $classInTreatment ?>" value="none">---</option>
<?php
}
//la tranche pour la cotisation
$tranch = $classInTreatment . "-T" . $counter;
?>
<option class="<?php echo $classInTreatment ?>" id="<?php echo $tranch ?>"
value="<?php echo $actualLine[1] ?>"><?php echo $actualLine[1] ?></option>
<?php
$counter += 1;
}
?>
</select>
</p>
<div id="cotisation">
<p>Montant de la cotisation : <span id="montantCotisation"></span></p>
<input type="hidden" id="inputMontantCotisation" value="0">
<?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>
</div>
......@@ -463,7 +502,6 @@ for ($i = 0; $i< count($secondSelectList); $i++){
<input type="text" name="codeCollectivite" id="codeCollectivite" required=""><br>
</div>
......@@ -473,10 +511,11 @@ for ($i = 0; $i< count($secondSelectList); $i++){
<script>
displayMask([""]);
document.getElementById("firstSelect").setAttribute("onchange","firstAction()");
document.getElementById("boutonValiderNombresEPCI").setAttribute("onclick","traitementEPCIMutualisant()");
document.getElementById("secondSelection").setAttribute("onchange","secondAction()");
document.getElementById("firstSelect").setAttribute("onchange", "firstAction()");
document.getElementById("boutonValiderNombresEPCI").setAttribute("onclick", "traitementEPCIMutualisant()");
document.getElementById("secondSelection").setAttribute("onchange", "secondAction()");
setCotisation("");
</script>
<?php /*get_footer();*/ ?>
<?php /*get_footer(); */?>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment