Commit 40edf3ab authored by Matthieu FAURE's avatar Matthieu FAURE

Merge branch '3-gerer-agenda-et-evenements' into 'master'

Resolve "Gérer agenda et événements"

Closes #3

See merge request !3
parents 918d4e21 a2ac98e5
......@@ -12,8 +12,6 @@ function displayMask(display) {
} else {
document.getElementById(blocks[h]).style.display = "none";
}
}
}
......@@ -36,26 +34,19 @@ function displayMaskOptions(display) {
}
toutesLesOptions[j].hidden = false;
} else {
console.log(display + "=/=" + toutesLesOptions[j].getAttribute("class"));
toutesLesOptions[j].hidden = true;
}
}
}
function firstAction() {
//fonction effectuée lorsque le premier select est validé
//on recup ce qui a été cliqué
var e = document.getElementById("firstSelect");
var strUser = e.options[e.selectedIndex].value;
//on reagit en fonction
//si il a cliqué sur individu, redirigé vers helloasso
......@@ -68,8 +59,6 @@ function firstAction() {
else if (strUser === "Association") {
setCotisation("Association");
displayMask(["cotisation", "informationsCollectivite", "boutonEnvoyer"]);
document.getElementById("secondSelection").required = false;
setEPCIRequired(false);
......@@ -86,13 +75,11 @@ function firstAction() {
//si il a cliqué sur autre chose : on cherche à connaitre la taille de la collectivité, on affiche le 2e select
else {
displayMaskOptions(strUser);
document.getElementById("secondSelection").required = true;
displayMask(["paraSecondSelection"]);
setEPCIRequired(false);
}
}
......@@ -103,7 +90,6 @@ function isWordIn(word, list) {
return true
}
}
return false
}
......@@ -134,7 +120,6 @@ function prepareDocument() {
break;
}
}
firstAction();
if (choiceType === "EPCIMutualisant") {
......@@ -158,8 +143,6 @@ function prepareDocument() {
}
}
}
var choicePeriod = document.getElementById("ancienSelectPeriod").getAttribute("value");
......@@ -171,8 +154,6 @@ function prepareDocument() {
listOfPeriodOptions[c].selected = true;
}
}
}
function secondAction() {
......@@ -189,14 +170,12 @@ function secondAction() {
} else {
displayMask(["paraSecondSelection"]);
}
}
function setCotisation(id, x = 0) {
//définit la cotisation à afficher, l'option x sert uniquement pour le tarif EPCI mutualisant qui varie.
//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;
......@@ -215,7 +194,6 @@ function setCotisation(id, x = 0) {
console.log(paragraphCotList[b].getAttribute("id") + "=/=" + research);
}
}
}
function setEPCIRequired(boolean) {
......@@ -249,7 +227,6 @@ function traitementEPCIMutualisant() {
setCotisation("EPCIMutualisant", resultat);
displayMask(["cotisation", "informationsCollectivite", "formulaireEPCIMutualisant", "boutonEnvoyer"]);
}
}
}
......
<?php
//nombre de membres à afficher par ligne
$maxMembersPerLine = 3;
get_header();
?>
<ul>
<?php
global $post; //variable wp
$order = "asc";
//on récup l'id de la catégorie de l'url
$currentCategoryID = explode("=", $_SERVER['REQUEST_URI'])[1];
//et on récup le nom à partir de l'id
$category = get_the_category_by_id($currentCategoryID);
//il se peut que l'id de la catégorie ne soit pas précisée dans l'url et get_the_category retourne un tableau d'erreurs.
if (gettype($category) == "object") {
$category = "Adhérent";
}
//on récup le tri croissant / décroissant
if (isset($_GET["order"])) {
$order = $_GET["order"];
if ($order != "asc" && $order != "desc") {
$order = "asc";
}
}
$args = array('posts_per_page' => 10, 'offset' => 0, 'cat' => $currentCategoryID, 'orderby' => 'title', 'order' => $order);
$myposts = get_posts($args);
echo "<br>";
$count = 0; //va servir pour les retour à la ligne lorsqu'on a affiché le max d'éléments par ligne
childrens_of_member_category($category);
echo "<div class='adullact-members-list'>";
echo "<div class='adullact-line'>";
foreach ($myposts as $post) : setup_postdata($post);
$id = get_the_id();
$url = get_metadata("post", $id, "project_url")[0];
$count += 1;
?>
<a href="<?php echo $url; ?>" target="_blank" class="adullact-member">
<?php the_post_thumbnail(array("200", "200")); ?> <br>
<?php the_title(); ?> <br>
<?php the_tags($before = ''); ?>
</a>
<?php
if ($count >= $maxMembersPerLine) {
$count = 0;
echo "</div>";
echo "<div class='adullact-line'>";
}
endforeach;
echo "</div></div>";
wp_reset_postdata(); ?>
</ul>
<?php get_footer(); ?>
\ No newline at end of file
<?php
//nombre de membres à afficher par ligne
$maxMembersPerLine = 3;
get_header();
?>
<ul>
<?php
global $post; //variable wp
$order = "asc";
//on récup l'id de la catégorie de l'url
$currentCategoryID = explode("=", $_SERVER['REQUEST_URI'])[1];
//et on récup le nom à partir de l'id
$category = get_the_category_by_id($currentCategoryID);
//il se peut que l'id de la catégorie ne soit pas précisée dans l'url et get_the_category retourne un tableau d'erreurs.
if (gettype($category) == "object") {
$category = "Adhérent";
}
//on récup le tri croissant / décroissant
if (isset($_GET["order"])) {
$order = $_GET["order"];
if ($order != "asc" && $order != "desc") {
$order = "asc";
}
}
$args = array('posts_per_page' => 10, 'offset' => 0, 'cat' => $currentCategoryID, 'orderby' => 'title', 'order' => $order);
$myposts = get_posts($args);
echo "<br>";
$count = 0; //va servir pour les retour à la ligne lorsqu'on a affiché le max d'éléments par ligne
childrens_of_member_category($category);
echo "<div class='adullact-members-list'>";
echo "<div class='adullact-line'>";
foreach ($myposts as $post) : setup_postdata($post);
$id = get_the_id();
$url = get_metadata("post", $id, "project_url")[0];
$count += 1;
?>
<a href="<?php echo $url; ?>" target="_blank" class="adullact-member">
<?php the_post_thumbnail(array("200", "200")); ?> <br>
<?php the_title(); ?> <br>
<?php the_tags($before = ''); ?>
</a>
<?php
if ($count >= $maxMembersPerLine) {
$count = 0;
echo "</div>";
echo "<div class='adullact-line'>";
}
endforeach;
echo "</div></div>";
wp_reset_postdata(); ?>
</ul>
<?php get_footer(); ?>
\ No newline at end of file
<?php
//nombre de membres à afficher par ligne
$maxMembersPerLine = 3;
get_header();
?>
<ul>
<?php
global $post; //variable wp
$order = "asc";
//on récup l'id de la catégorie de l'url
$currentCategoryID = explode("=", $_SERVER['REQUEST_URI'])[1];
//et on récup le nom à partir de l'id
$category = get_the_category_by_id($currentCategoryID);
//il se peut que l'id de la catégorie ne soit pas précisée dans l'url et get_the_category retourne un tableau d'erreurs.
if (gettype($category) == "object") {
$category = "Adhérent";
}
//on récup le tri croissant / décroissant
if (isset($_GET["order"])) {
$order = $_GET["order"];
if ($order != "asc" && $order != "desc") {
$order = "asc";
}
}
$args = array('posts_per_page' => 10, 'offset' => 0, 'cat' => $currentCategoryID, 'orderby' => 'title', 'order' => $order);
$myposts = get_posts($args);
echo "<br>";
$count = 0; //va servir pour les retour à la ligne lorsqu'on a affiché le max d'éléments par ligne
childrens_of_member_category($category);
echo "<div class='adullact-members-list'>";
echo "<div class='adullact-line'>";
foreach ($myposts as $post) : setup_postdata($post);
$id = get_the_id();
$url = get_metadata("post", $id, "project_url")[0];
$count += 1;
?>
<a href="<?php echo $url; ?>" target="_blank" class="adullact-member">
<?php the_post_thumbnail(array("200", "200")); ?> <br>
<?php the_title(); ?> <br>
<?php the_tags($before = ''); ?>
</a>
<?php
if ($count >= $maxMembersPerLine) {
$count = 0;
echo "</div>";
echo "<div class='adullact-line'>";
}
endforeach;
echo "</div></div>";
wp_reset_postdata(); ?>
</ul>
<?php get_footer(); ?>
\ No newline at end of file
<?php
//nombre de membres à afficher par ligne
$maxMembersPerLine = 3;
get_header();
?>
<ul>
<?php
global $post; //variable wp
$order = "asc";
//on récup l'id de la catégorie de l'url
$currentCategoryID = explode("=", $_SERVER['REQUEST_URI'])[1];
//et on récup le nom à partir de l'id
$category = get_the_category_by_id($currentCategoryID);
//il se peut que l'id de la catégorie ne soit pas précisée dans l'url et get_the_category retourne un tableau d'erreurs.
if (gettype($category) == "object") {
$category = "Adhérent";
}
//on récup le tri croissant / décroissant
if (isset($_GET["order"])) {
$order = $_GET["order"];
if ($order != "asc" && $order != "desc") {
$order = "asc";
}
}
$args = array('posts_per_page' => 10, 'offset' => 0, 'cat' => $currentCategoryID, 'orderby' => 'title', 'order' => $order);
$myposts = get_posts($args);
echo "<br>";
$count = 0; //va servir pour les retour à la ligne lorsqu'on a affiché le max d'éléments par ligne
childrens_of_member_category($category);
echo "<div class='adullact-members-list'>";
echo "<div class='adullact-line'>";
foreach ($myposts as $post) : setup_postdata($post);
$id = get_the_id();
$url = get_metadata("post", $id, "project_url")[0];
$count += 1;
?>
<a href="<?php echo $url; ?>" target="_blank" class="adullact-member">
<?php the_post_thumbnail(array("200", "200")); ?> <br>
<?php the_title(); ?> <br>
<?php the_tags($before = ''); ?>
</a>
<?php
if ($count >= $maxMembersPerLine) {
$count = 0;
echo "</div>";
echo "<div class='adullact-line'>";
}
endforeach;
echo "</div></div>";
wp_reset_postdata(); ?>
</ul>
<?php get_footer(); ?>
\ No newline at end of file
<?php
/*
Template Name: Formulaire d'adhésion
*/
$errors = array(
//Liste des éléments pouvant avoir une erreur
"first selection" => "",
"second Selection" => "",
"EPCI com" => "",
"EPCI hab" => "",
"nom" => "",
"adresse" => "",
"CP" => "",
"ville" => "",
"tel" => "",
"site" => "",
"periode" => "",
"siret" => "",
"numeroEngagement" => "",
"code" => ""
);
//le dossier où se trouvent les fichiers
$workingDirectory = $_SERVER["CONTEXT_DOCUMENT_ROOT"] . '/wp-content/themes/theme-wordpress-adullact-org/';
$grillePath = $workingDirectory . 'grille.csv';
$periodSelectionPath = $workingDirectory . "periodSelection.php";
$JSPath = '/wp-content/themes/theme-wordpress-adullact-org/adhesionForm.js';
$debug_mode = false;
$resultat = false;
function tryToEcho($var)
{
if (isset($_POST[$var])) {
echo $_POST[$var];
}
}
function tryToSetInputSelect($key, $value)
{
//fonction utilisée pour définir l'option sélectionnée lorsque l'envoi du formulaire a échoué.
if (isset($_POST[$key])) {
if ($_POST[$key] == $value) {
echo "selected";
}
}
}
function tryToShowError($var)
{
global $errors;
if (strlen($errors[$var]) > 0) {
echo "<p class='error'> " . $errors[$var] . "</p>";
}
}
$numberOfErrors = 0;
if (isset($_POST)) {
if (isset($_POST["firstSelection"])) {
include "traitementAdhesion.php";
if ($debug_mode) {
echo "<br> début du traitement <br>";
}
$errors = traitement($_POST, $errors);
if ($debug_mode) {
echo "<br> fin du traitement <br>";
}
foreach ($errors as $key => $value) {
if ($debug_mode) {
echo $key . " : " . $value . "<br>";
}
if (strlen($value) > 0) {
$numberOfErrors += 1;
}
}
if ($debug_mode) {
echo "<br> nombre d'erreurs : " . $numberOfErrors . " <br>";
var_dump($errors);
}
if ($numberOfErrors == 0) {
sendAdhesionMail($_POST);
header("Location:");
}
}
}
get_header();
?>
<div class="wrap">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
include_once $periodSelectionPath;
$fichier = fopen($grillePath, 'r');
$ligne = fgetcsv($fichier, 1024, ";");
//on effectue de nouveau cette instruction pour sauter les titres du tableau
$ligne = fgetcsv($fichier, 1024, ";");
//------------------------Variables-------------------
$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 $listeTempo;
}
function createNameClass($variable)
{
//fonction qui nettoie la chaine pour pouvoir l'utiliser en tant que nom de classe
$chars = array(
//tous les caractères susceptibles d'être remplacés
"é" => "e",
"è" => "e",
"ê" => "e",
"ë" => "e",
"à" => "a",
"â" => "a",
"ù" => "u",
"û" => "u",
"î" => "i",
"ï" => "i",
"ç" => "c",
"É" => "e",
"È" => "e",
"Ê" => "e",
"Ë" => "e",
"À" => "a",
"Â" => "a",
"Ù" => "u",
"Û" => "u",
"Î" => "i",
"Ï" => "i",
"Ç" => "c",
" " => "_"
);
$variable = strtr($variable, $chars);
return $variable;
}
function createSizeSelectList($liste)
{
//fonction qui crée la liste des classes qui sert pour le 2e select
$resultList = [];
for ($a = 0; $a < count($liste); $a++) {
$mot = createNameClass($liste[$a][0]);
if (!isWordIn($mot, $resultList)) {
$resultList[] = $mot;
}
}
return $resultList;
}
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 false;
}
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, avec accents et espaces
$textsSelectMenu = createFirstSelectionList($listeGrilleEntiere);
//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 = createSizeSelectList($listeGrilleEntiere);
//classes gérées automatiquement + manuellement
$classSelectMenuExtended = $classSelectMenu;
$classSelectMenuExtended[] = ("Association");
$classSelectMenuExtended[] = ("Individu");
$classSelectMenuExtended[] = ("EPCIMutualisant");
//on trie par ordre alphabétique
sort($textsSelectMenu);
sort($textsSelectMenuExtended);
sort($classSelectMenu);
sort($classSelectMenuExtended);
?>
<h1>Formulaire de renouvellement d'adhésion</h1>
<p>
<?php
if ($numberOfErrors == 1) {
echo "Une erreur est survenue lors de l'envoi du formulaire. Veuillez vérifier vos informations";
} elseif ($numberOfErrors > 1) {
echo "Plusieurs erreurs sont survenues lors de l'envoi du formulaire. Veuillez vérifier vos informations";
}
?>
</p>
<form action="" method="post">
<p>
<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") ?>">
<label for="firstSelect">Veuillez sélectionner le type de collectivité :</label>
<select id="firstSelect" required="" name="firstSelection">
<option value="none">---</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>
<?php tryToShowError("first selection"); ?>
</p>
<div id="link">
<a href="contact.php" 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"
value="<?php tryToEcho("nombreHabitantsEPCI"); ?>"><br>
<?php tryToShowError("EPCI com"); ?>
<label for="nombreCommunesMembresEPCI">Nombre de communes membres :</label>
<input type="number" name="nombreCommunesMembresEPCI" id="nombreCommunesMembresEPCI"
value="<?php tryToEcho("nombreCommunesMembresEPCI"); ?>"><br>
<?php tryToShowError("EPCI hab"); ?>
<input type="button" value="Valider" id="boutonValiderNombresEPCI">
</div>
<p id="paraSecondSelection">
<label for="secondSelection">Veuillez sélectionner la taille :</label>
<select id="secondSelection" name="secondSelection">
<?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" name="optionSelect2">---
</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] ?>"
name="optionSelect2"><?php echo $actualLine[1] ?></option>
<?php
$counter += 1;
}
?>
</select>
<?php tryToShowError("second Selection"); ?>
</p>
<div id="cotisation">
<?php
$classInTreatment = "";
$counter = 1;