257 lines
11 KiB
PHP
257 lines
11 KiB
PHP
<?php
|
||
session_start();
|
||
session_regenerate_id();
|
||
|
||
// Si la session n'existe plus
|
||
if (empty($_SESSION['reference'])) {
|
||
header('Location: index.php?$disconnect=true');
|
||
}
|
||
|
||
include("inc/config.inc.php");
|
||
include("inc/connect.inc.php");
|
||
include("inc/fonctions.inc.php");
|
||
// On regarde si il y a une AGO, AGE et vote CS
|
||
if (checkago()) {$ago = true;} else {$ago = false;}
|
||
if (checkage()) {$age = true;} else {$age = false;}
|
||
if (checkcs()) {$cs = true;} else {$cs = false;}
|
||
// Préparation de la requete MySQL
|
||
$sql = "SELECT option_name, option_value FROM admin WHERE option_name = :option";
|
||
$stmt = $bdd->prepare($sql);
|
||
// On regarde le nombre de résolution d'AGO qui sera important par la suite pour créer des variables de sessions et le formulaire de vote
|
||
if ($ago) {
|
||
$option = 'resolution_ago_nb';
|
||
$stmt->bindParam(':option', $option, PDO::PARAM_STR);
|
||
$stmt->execute();
|
||
$results = $stmt->fetch();
|
||
$resolution_ago_nb = $results['option_value'];
|
||
$_SESSION['resolution_ago_nb'] = $resolution_ago_nb;
|
||
}
|
||
// On regarde le nombre de résolution d'AGE qui sera important par la suite pour créer des variables de sessions et le formulaire de vote
|
||
if ($age) {
|
||
$option = 'resolution_age_nb';
|
||
$stmt->bindParam(':option', $option, PDO::PARAM_STR);
|
||
$stmt->execute();
|
||
$results = $stmt->fetch();
|
||
$resolution_age_nb = $results['option_value'];
|
||
$_SESSION['resolution_age_nb'] = $resolution_age_nb;
|
||
}
|
||
// On regarde combien de postes au CS sont à pourvoir
|
||
if ($cs) {
|
||
$option = 'cs_nb_poste';
|
||
$stmt->bindParam(':option', $option, PDO::PARAM_STR);
|
||
$stmt->execute();
|
||
$results = $stmt->fetch();
|
||
$cs_nb_poste = $results['option_value'];
|
||
}
|
||
|
||
// Le client a cliqué sur le bouton envoyer ?
|
||
if (!empty ($_POST['voted']) && ($_POST['voted'] == true)) {
|
||
// Alors on regarde si le formulaire est bien renseigné
|
||
if ($ago) {
|
||
for ($i = 1; $i <= $resolution_ago_nb; $i++) {
|
||
if (!isset($_POST['QAGO'.$i])) {$missingform = "<p class='red'>Merci de remplir tous les champs du formulaire1.</p>";}
|
||
}
|
||
}
|
||
if ($age) {
|
||
for ($i = 1; $i <= $resolution_age_nb; $i++) {
|
||
if (!isset($_POST['QAGE'.$i])) {$missingform = "<p class='red'>Merci de remplir tous les champs du formulaire2.</p>";}
|
||
}
|
||
}
|
||
// Si tout les inputs du formulaire sont renseignés
|
||
if (!isset ($missingform)) {
|
||
// En cas d'absention au vote du CS
|
||
if ($cs) {
|
||
if (isset($_POST['csabst'])) {
|
||
// On créé une variable de session pour chaque résolution AGO et AGE et pour le CS
|
||
if ($ago) {
|
||
for ($i = 1; $i <= $resolution_ago_nb; $i++) {
|
||
$_SESSION['resolution_ago_'.$i] = $_POST['QAGO'.$i];
|
||
}
|
||
}
|
||
if ($age) {
|
||
for ($i = 1; $i <= $resolution_age_nb; $i++) {
|
||
$_SESSION['resolution_age_'.$i] = $_POST['QAGE'.$i];
|
||
}
|
||
}
|
||
$vote_cs = "Abstention";
|
||
$_SESSION['vote_cs'] = $vote_cs;
|
||
// On redirige
|
||
header('Location: finalisation.php');
|
||
} elseif (isset($_POST['CS'])) {
|
||
// En cas de vote pour le CS
|
||
$nb_vote_cs = count($_POST['CS']);
|
||
// Vérification du nombre de candidats coché
|
||
// Si le nombre est trop faible, on retourne sur le formulaire avec un message d'erreur
|
||
if ($nb_vote_cs < $cs_nb_poste) {
|
||
header('Location: vote.php?message=true');
|
||
exit;
|
||
}
|
||
// On sépare chaque nom de candidats par une ,
|
||
$vote_cs = implode(",", $_POST['CS']);
|
||
// On créé une variable de session pour chaque résolution AGO et AGE, et pour le CS
|
||
if ($ago) {
|
||
for ($i = 1; $i <= $resolution_ago_nb; $i++) {
|
||
$_SESSION['resolution_ago_'.$i] = $_POST['QAGO'.$i];
|
||
}
|
||
}
|
||
if ($age) {
|
||
for ($i = 1; $i <= $resolution_age_nb; $i++) {
|
||
$_SESSION['resolution_age_'.$i] = $_POST['QAGE'.$i];
|
||
}
|
||
}
|
||
$_SESSION['vote_cs'] = $vote_cs;
|
||
// On redirige
|
||
header('Location: finalisation.php');
|
||
}
|
||
}
|
||
if ($ago) {
|
||
for ($i = 1; $i <= $resolution_ago_nb; $i++) {
|
||
$_SESSION['resolution_ago_'.$i] = $_POST['QAGO'.$i];
|
||
}
|
||
}
|
||
if ($age) {
|
||
for ($i = 1; $i <= $resolution_age_nb; $i++) {
|
||
$_SESSION['resolution_age_'.$i] = $_POST['QAGE'.$i];
|
||
}
|
||
}
|
||
// On redirige
|
||
header('Location: finalisation.php');
|
||
}
|
||
}
|
||
?>
|
||
<!DOCTYPE html>
|
||
<html lang="fr">
|
||
<head>
|
||
<?php include("theme/_head.php"); ?>
|
||
</head>
|
||
<body>
|
||
<!--[if lt IE 9]>
|
||
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
|
||
<![endif]-->
|
||
<?php include("theme/header.php"); ?>
|
||
<section id="pagevote">
|
||
<?php if (!empty ($missingform)) {echo $missingform;} ?>
|
||
<form id='vote' action="vote.php" method="post" novalidate data-parsley-validate>
|
||
<fieldset>
|
||
<?php if ($ago) { ?>
|
||
<h3>Résolutions d'Assemblée Générale Ordinaire</h3>
|
||
<?php
|
||
// On boucle pour chaque résolution avec création du formulaire
|
||
for ($i = 1; $i <= $resolution_ago_nb; $i++) {
|
||
// On selectionne la résolution
|
||
$option = 'resolution_ago_'.$i;
|
||
$stmt->bindParam(':option', $option, PDO::PARAM_STR);
|
||
$stmt->execute();
|
||
$results = $stmt->fetch();
|
||
$resolution_ago_txt = $results['option_value'];
|
||
?>
|
||
<h4>Résolution n°<?php echo $i; ?></h4>
|
||
<p><?php echo $resolution_ago_txt; ?></p>
|
||
<p class="formvote">
|
||
<input type="radio" name="QAGO<?php echo $i; ?>" id="QAGO<?php echo $i; ?>o" value="Oui" required />
|
||
<label for="QAGO<?php echo $i; ?>o">Oui</label>
|
||
<input type="radio" name="QAGO<?php echo $i; ?>" id="QAGO<?php echo $i; ?>n" value="Non" />
|
||
<label for="QAGO<?php echo $i; ?>n">Non</label>
|
||
<input type="radio" name="QAGO<?php echo $i; ?>" id="QAGO<?php echo $i; ?>a" value="Abstention" />
|
||
<label for="QAGO<?php echo $i; ?>a">Abstention</label>
|
||
</p>
|
||
<hr />
|
||
<?php
|
||
}
|
||
}
|
||
|
||
if ($age) { ?>
|
||
<h3>Résolutions d'Assemblée Générale Extraordinaire</h3>
|
||
<?php
|
||
// On boucle pour chaque résolution avec création du formulaire
|
||
for ($i = 1; $i <= $resolution_age_nb; $i++) {
|
||
// On selectionne la résolution
|
||
$option = 'resolution_age_'.$i;
|
||
$stmt->bindParam(':option', $option, PDO::PARAM_STR);
|
||
$stmt->execute();
|
||
$results = $stmt->fetch();
|
||
$resolution_age_txt = $results['option_value'];
|
||
?>
|
||
<h4>Résolution n°<?php echo $i; ?></h4>
|
||
<p><?php echo $resolution_age_txt; ?></p>
|
||
<p class="formvote">
|
||
<input type="radio" name="QAGE<?php echo $i; ?>" id="QAGE<?php echo $i; ?>o" value="Oui" required />
|
||
<label for="QAGE<?php echo $i; ?>o">Oui</label>
|
||
<input type="radio" name="QAGE<?php echo $i; ?>" id="QAGE<?php echo $i; ?>n" value="Non" />
|
||
<label for="QAGE<?php echo $i; ?>n">Non</label>
|
||
<input type="radio" name="QAGE<?php echo $i; ?>" id="QAGE<?php echo $i; ?>a" value="Abstention" />
|
||
<label for="QAGE<?php echo $i; ?>a">Abstention</label>
|
||
</p>
|
||
<hr />
|
||
<?php
|
||
}
|
||
}
|
||
|
||
if ($cs) { ?>
|
||
<h3>Élection des membres du Conseil de Surveillance</h3>
|
||
<p>
|
||
D'après les statuts d'Ouvaton le bulletin de vote pour l'élection au CS doit obligatoirement comporter au moins autant de noms que de postes.
|
||
Il y a <?php echo $cs_nb_poste; ?> postes à pourvoir cette année et il n'y a que <?php echo $cs_nb_poste; ?> candidats déclarés.<br />
|
||
Vous devez donc soit voter pour les <?php echo $cs_nb_poste; ?> candidats, soit vous abstenir.
|
||
</p>
|
||
<p>
|
||
D'après les statuts d'Ouvaton le bulletin de vote pour l'élection au CS doit obligatoirement comporter au moins autant de noms que de postes.
|
||
Il y a <?php echo $cs_nb_poste; ?> postes à pourvoir cette année et il y a 5 candidats déclarés.<br />
|
||
Vous devez donc soit voter pour au moins <?php echo $cs_nb_poste; ?> candidats, soit vous abstenir.
|
||
</p>
|
||
<?php
|
||
// Traitement de l'erreur en cas de nombre de case cochée trop faible pour l'élection du CS
|
||
// Par sécurité pour palier à l'éventuelle abscence de Javascript sur le client
|
||
if (isset($_GET['message']) && ($_GET['message'] == true)) {
|
||
echo '<p><span class="bold">Vous avez coché trop peu de cases pour l\'élection des membres du conseil de surveillance !<br /> Merci de suivre les instructions de vote.</span></p>';
|
||
}
|
||
?>
|
||
|
||
<div id="csform">
|
||
<p>Veuillez choisir parmi les candidats ci-après <span class="bold">AU MOINS <?php echo $cs_nb_poste; ?></span> personnes :</p>
|
||
<p class="formvote">
|
||
<?php
|
||
// On créé un input pour chaque candidat
|
||
$option = 'cs_candidats';
|
||
$stmt->bindParam(':option', $option, PDO::PARAM_STR);
|
||
// Exécution de la requête
|
||
$stmt->execute();
|
||
$results = $stmt->fetch();
|
||
$cs_candidats_nb = $results['option_value'];
|
||
// On récupère un array qu'il faut casser par virgule, et on compte le nombre de candidats
|
||
$cs_candidats_nb = explode(",",$cs_candidats_nb);
|
||
for ($i=0; $i < count($cs_candidats_nb); $i++) { ?>
|
||
<span class="candidats">
|
||
<input class="cslist" type="checkbox" name="CS[]" value="<?php print $cs_candidats_nb[$i]; ?>" id="<?php print $cs_candidats_nb[$i]; ?>" required data-parsley-mincheck="<?php echo $cs_nb_poste; ?>" />
|
||
<label for="<?php print $cs_candidats_nb[$i]; ?>"> <?php print $cs_candidats_nb[$i]; ?></label>
|
||
</span>
|
||
<?php } ?>
|
||
</p>
|
||
</div>
|
||
|
||
<label for="csabst">Cochez cette case pour vous abstenir de voter à l'élection des membres du Conseil de Surveillance : </label>
|
||
<input type="checkbox" name="csabst" value="csabst" id="csabst" />
|
||
<?php } ?>
|
||
<input type="hidden" name="voted" id="voted" value="true" />
|
||
<p class="formvote"><input type="submit" value="Votez"></p>
|
||
</fieldset>
|
||
</form>
|
||
</section>
|
||
<?php include("theme/footer.php"); ?>
|
||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
|
||
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>
|
||
<script src="js/vendor/parsley.min.js"></script>
|
||
<script src="js/vendor/parsley-fr.js"></script>
|
||
<script src="js/main.js"></script>
|
||
<script type="text/javascript">
|
||
$(document).ready(function(){
|
||
$('#csabst').click(function(){
|
||
this.checked?$('#csform').hide(500):$('#csform').show(500);
|
||
this.checked?$('.cslist').attr('data-parsley-mincheck', '0'):$('.cslist').attr('data-parsley-mincheck', '<?php echo $cs_nb_poste; ?>');
|
||
this.checked?$('.cslist').removeAttr('required'):$('.cslist').addAttr('required');
|
||
});
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|