date.chapril.org-framadate/studs.php

657 lines
23 KiB
PHP
Raw Normal View History

2011-05-15 01:32:47 +02:00
<?php
/* This software is governed by the CeCILL-B license. If a copy of this license
* is not distributed with this file, you can obtain one at
* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
*
* Authors of STUdS (initial project) : Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
* Authors of OpenSondage : Framasoft (https://github.com/framasoft)
*
* =============================
*
* Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
* http://www.cecill.info/licences/Licence_CeCILL_V2.1-fr.txt
*
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs d'OpenSondage : Framasoft (https://github.com/framasoft)
*/
2011-05-15 01:32:47 +02:00
session_start();
2011-05-15 03:56:54 +02:00
if (file_exists('bandeaux_local.php')) {
include_once('bandeaux_local.php');
} else {
include_once('bandeaux.php');
}
2011-05-15 01:32:47 +02:00
include_once('fonctions.php');
// Le fichier studs.php sert a afficher les résultats d'un sondage à un simple utilisateur.
// C'est également l'interface pour ajouter une valeur à un sondage deja créé.
$numsondage = false;
//On récupère le numéro de sondage par le lien web.
2011-05-21 18:46:44 +02:00
if(issetAndNoEmpty('sondage', $_GET) === true) {
$numsondage = $_GET["sondage"];
2011-05-15 01:32:47 +02:00
$_SESSION["numsondage"] = $numsondage;
2011-05-15 03:56:54 +02:00
}
2011-05-21 18:46:44 +02:00
if(issetAndNoEmpty('sondage') === true) {
$numsondage = $_POST["sondage"];
2011-05-15 01:32:47 +02:00
$_SESSION["numsondage"] = $numsondage;
2011-05-21 18:46:44 +02:00
} elseif(issetAndNoEmpty('sondage', $_COOKIE) === true) {
$numsondage = $_COOKIE["sondage"];
} elseif(issetAndNoEmpty('numsondage', $_SESSION) === true) {
$numsondage = $_SESSION["numsondage"];
2011-05-15 01:32:47 +02:00
}
2011-05-21 18:46:44 +02:00
if ($numsondage !== false) {
2011-05-15 01:32:47 +02:00
$dsondage = get_sondage_from_id($numsondage);
2011-05-21 18:46:44 +02:00
if($dsondage === false) {
2011-05-15 01:32:47 +02:00
$err |= NO_POLL;
2011-05-15 03:56:54 +02:00
}
} else {
2011-05-15 01:32:47 +02:00
$err |= NO_POLL_ID;
2011-05-15 03:56:54 +02:00
}
2011-05-15 01:32:47 +02:00
//output a CSV and die()
2011-05-21 18:46:44 +02:00
if(issetAndNoEmpty('export', $_GET) && $dsondage !== false) {
2011-05-15 03:56:54 +02:00
if($_GET['export'] == 'csv') {
2011-05-15 01:32:47 +02:00
require_once('exportcsv.php');
2011-05-15 03:56:54 +02:00
}
2011-05-21 18:46:44 +02:00
if($_GET['export'] == 'ics' && $dsondage->is_date) {
2011-05-15 01:32:47 +02:00
require_once('exportics.php');
2011-05-15 03:56:54 +02:00
}
2011-05-15 01:32:47 +02:00
die();
2011-05-15 03:56:54 +02:00
}
2011-05-15 01:32:47 +02:00
// quand on ajoute un commentaire utilisateur
2011-05-21 18:46:44 +02:00
if(isset($_POST['ajoutcomment']) || isset($_POST['ajoutcomment_x'])) {
if (isset($_SESSION['nom']) && issetAndNoEmpty('commentuser') === false) {
2011-05-21 18:46:44 +02:00
// Si le nom vient de la session, on le de-htmlentities
$comment_user = html_entity_decode($_SESSION['nom'], ENT_QUOTES, 'UTF-8');
} elseif(issetAndNoEmpty('commentuser')) {
$comment_user = $_POST["commentuser"];
2011-05-15 03:56:54 +02:00
} elseif(isset($_POST["commentuser"])) {
2011-05-15 01:32:47 +02:00
$err |= COMMENT_USER_EMPTY;
2011-05-15 03:56:54 +02:00
} else {
2011-05-15 01:32:47 +02:00
$comment_user = _('anonyme');
2011-05-15 03:56:54 +02:00
}
2011-05-21 18:46:44 +02:00
if(issetAndNoEmpty('comment') === false) {
2011-05-15 01:32:47 +02:00
$err |= COMMENT_EMPTY;
2011-05-15 03:56:54 +02:00
}
2011-05-15 01:32:47 +02:00
2011-05-21 18:46:44 +02:00
if (isset($_POST["comment"]) && !is_error(COMMENT_EMPTY) && !is_error(NO_POLL) && !is_error(COMMENT_USER_EMPTY)) {
// protection contre les XSS : htmlentities
$comment = htmlentities($_POST['comment'], ENT_QUOTES, 'UTF-8');
$comment_user = htmlentities($comment_user, ENT_QUOTES, 'UTF-8');
$sql = 'INSERT INTO comments (id_sondage, comment, usercomment) VALUES ('.
$connect->Param('id_sondage').','.
$connect->Param('comment').','.
$connect->Param('comment_user').')';
$sql = $connect->Prepare($sql);
$comments = $connect->Execute($sql, array($numsondage, $comment, $comment_user));
if ($comments === false) {
2011-05-15 03:56:54 +02:00
$err |= COMMENT_INSERT_FAILED;
}
2011-05-15 01:32:47 +02:00
}
}
// Action quand on clique le bouton participer
2011-05-21 18:46:44 +02:00
$sql = 'SELECT * FROM user_studs WHERE id_sondage='.$connect->Param('numsondage').' ORDER BY id_users';
$sql = $connect->Prepare($sql);
$user_studs = $connect->Execute($sql, array($numsondage));
$nbcolonnes = substr_count($dsondage->sujet, ',') + 1;
if (!is_error(NO_POLL) && (isset($_POST["boutonp"]) || isset($_POST["boutonp_x"]))) {
2011-05-15 01:32:47 +02:00
//Si le nom est bien entré
2011-05-21 18:46:44 +02:00
if (issetAndNoEmpty('nom') === false) {
2011-05-15 01:32:47 +02:00
$err |= NAME_EMPTY;
2011-05-15 03:56:54 +02:00
}
if(!is_error(NAME_EMPTY) && (! ( USE_REMOTE_USER && isset($_SERVER['REMOTE_USER']) ) || $_POST["nom"] == $_SESSION["nom"])) {
2011-05-21 18:46:44 +02:00
$nouveauchoix = '';
2011-05-15 03:56:54 +02:00
for ($i=0;$i<$nbcolonnes;$i++) {
2011-05-15 01:32:47 +02:00
// Si la checkbox est enclenchée alors la valeur est 1
2011-05-15 03:56:54 +02:00
if (isset($_POST["choix$i"]) && $_POST["choix$i"] == '1') {
$nouveauchoix.="1";
} else { // sinon c'est 0
$nouveauchoix.="0";
2011-05-15 01:32:47 +02:00
}
}
2011-05-21 18:46:44 +02:00
$nom=substr($_POST["nom"],0,64);
// protection contre les XSS : htmlentities
$nom = htmlentities($nom, ENT_QUOTES, 'UTF-8');
2011-05-15 01:32:47 +02:00
while($user = $user_studs->FetchNextObject(false)) {
2011-05-21 18:46:44 +02:00
if ($nom == $user->nom) {
2011-05-15 03:56:54 +02:00
$err |= NAME_TAKEN;
}
2011-05-15 01:32:47 +02:00
}
// Ecriture des choix de l'utilisateur dans la base
2011-05-21 18:46:44 +02:00
if (!is_error(NAME_TAKEN) && !is_error(NAME_EMPTY)) {
$sql = 'INSERT INTO user_studs (nom,id_sondage,reponses) VALUES ('.
$connect->Param('nom').', '.
$connect->Param('numsondage').', '.
$connect->Param('nouveauchoix').')';
$sql = $connect->Prepare($sql);
// Todo : Il faudrait lever une erreur en cas d'erreur d'insertion
$connect->Execute($sql, array($nom, $numsondage, $nouveauchoix));
2011-05-15 03:56:54 +02:00
if ($dsondage->mailsonde || /* compatibility for non boolean DB */ $dsondage->mailsonde=="yes" || $dsondage->mailsonde=="true") {
sendEmail( "$dsondage->mail_admin",
"[".NOMAPPLICATION."] "._("Poll's participation")." : ".html_entity_decode($dsondage->titre, ENT_QUOTES, 'UTF-8')."",
html_entity_decode("\"$nom\" ", ENT_QUOTES, 'UTF-8').
2011-05-15 03:56:54 +02:00
_("has filled a line.\nYou can find your poll at the link") . " :\n\n".
2011-05-21 18:46:44 +02:00
getUrlSondage($numsondage)." \n\n" .
_("Thanks for your confidence.") . "\n". NOMAPPLICATION );
2011-05-15 01:32:47 +02:00
}
}
2011-05-15 03:56:54 +02:00
} else {
2011-05-15 01:32:47 +02:00
$err |= NAME_EMPTY;
2011-05-15 03:56:54 +02:00
}
2011-05-15 01:32:47 +02:00
}
if($err != 0) {
print_header(true, _("Error!").' - '.$dsondage->titre, $lang);
} else {
print_header(true, $dsondage->titre, $lang);
}
2011-05-15 01:32:47 +02:00
echo '<body>'."\n";
framanav();
2011-05-15 01:32:47 +02:00
logo();
bandeau_tete();
bandeau_titre(_("Make your polls"));
sous_bandeau();
#print_r($_SESSION);
2011-05-15 01:32:47 +02:00
if($err != 0) {
bandeau_titre(_("Error!"));
echo '<div class="error"><ul>'."\n";
2011-05-15 03:56:54 +02:00
if(is_error(NAME_EMPTY)) {
2011-05-15 01:32:47 +02:00
echo '<li class="error">' . _("Enter a name !") . "</li>\n";
2011-05-15 03:56:54 +02:00
}
if(is_error(NAME_TAKEN)) {
2011-05-15 01:32:47 +02:00
echo '<li class="error">' .
2011-05-15 03:56:54 +02:00
_("The name you've chosen already exist in this poll!") .
"</li>\n";
}
if(is_error(COMMENT_EMPTY) || is_error(COMMENT_USER_EMPTY)) {
2011-05-15 01:32:47 +02:00
echo '<li class="error">' .
2011-05-15 03:56:54 +02:00
_("Enter a name and a comment!") .
"</li>\n";
}
if(is_error(COMMENT_INSERT_FAILED) ) {
2011-05-15 01:32:47 +02:00
echo '<li class="error">' .
2011-05-15 03:56:54 +02:00
_("Failed to insert the comment!") .
"</li>\n";
}
2011-05-15 01:32:47 +02:00
echo '</ul></div>';
2011-05-15 01:32:47 +02:00
if(is_error(NO_POLL_ID) || is_error(NO_POLL)) {
echo '<div class=corpscentre>'."\n";
print "<h2>" . _("This poll doesn't exist !") . "</h2>"."\n";
print _("Back to the homepage of") . ' <a href="'.get_server_name().'"> '. NOMAPPLICATION . '</a>.'."\n";
2011-05-15 01:32:47 +02:00
echo '</div>'."\n";
bandeau_pied();
echo '</body>'."\n";
echo '</html>'."\n";
die();
}
2011-05-15 03:56:54 +02:00
}
2011-05-15 01:32:47 +02:00
echo '<div class="corps">'; //ajout pyg cohérence graphique
echo '<div class="imprimer"><p><a role="button" href="javascript:print()" class="button white medium">' . _('Print') . '</a></p>';
echo '<p><a role="button" class="button white medium" href="'.get_server_name().'exportcsv.php?numsondage=' . $numsondage . '">' . _('Export to CSV') . '</a></p></div>';
2011-05-15 01:32:47 +02:00
echo '<div class="presentationdate"> '."\n";
//affichage du titre du sondage
2011-05-15 03:56:54 +02:00
$titre=str_replace("\\","",$dsondage->titre);
echo '<h2>'.stripslashes($titre).'</h2>'."\n";
2011-05-15 01:32:47 +02:00
//affichage du nom de l'auteur du sondage
echo '<div class="initiator"><p><span class="mlabel">'. _("Initiator of the poll") .' :</span><span class="nom"> '.stripslashes($dsondage->nom_admin).'</span></p></div>'."\n";
echo '<div class="adress"><p><span class="mlabel">'._("Public link of the pool") .' : </span><code>'.getUrlSondage($dsondage->id_sondage).'</code></p></div>'."\n";
2011-05-15 01:32:47 +02:00
//affichage de la description du sondage
2011-05-15 03:56:54 +02:00
if ($dsondage->commentaires) {
echo '<div class="admin_comment"><span class="mlabel">'._("Description: ") .'</span><br />'."\n";
2011-05-21 18:46:44 +02:00
$commentaires = $dsondage->commentaires;
$commentaires=nl2br(str_replace("\\","",$commentaires));
2013-03-14 14:24:58 +01:00
echo '<span class="mcontent">'. $commentaires .'</span>';
echo '</div>'."\n";
2011-05-15 03:56:54 +02:00
}
echo '</div>'."\n";
2011-05-15 01:32:47 +02:00
echo '<form name="formulaire" action="'.getUrlSondage($dsondage->id_sondage).'#bas" method="POST" onkeypress="javascript:process_keypress(event)">'."\n";
2011-05-15 01:32:47 +02:00
echo '<input type="hidden" name="sondage" value="' . $numsondage . '"/>';
2011-05-21 18:46:44 +02:00
// Todo : add CSRF protection
echo '<div class="cadre"><div class="information">'."\n";
echo _("If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.") ."\n";
echo '</div>'."\n";
2011-05-15 01:32:47 +02:00
// Debut de l'affichage des resultats du sondage
echo '<table class="resultats">'."\n".'<thead>';
2011-05-15 01:32:47 +02:00
//On récupere les données et les sujets du sondage
2011-05-21 18:46:44 +02:00
$nblignes = $user_studs->RecordCount();
2011-05-15 01:32:47 +02:00
2011-05-15 03:56:54 +02:00
//on teste pour voir si une ligne doit etre modifiée
2011-05-15 01:32:47 +02:00
$testmodifier = false;
$ligneamodifier = -1;
2011-05-15 03:56:54 +02:00
for ($i=0;$i<$nblignes;$i++) {
if (isset($_POST["modifierligne$i"]) || isset($_POST['modifierligne'.$i.'_x'])) {
2011-05-21 18:46:44 +02:00
$ligneamodifier = $i;
2011-05-15 03:56:54 +02:00
}
//test pour voir si une ligne est a modifier
2011-05-21 18:46:44 +02:00
if (isset($_POST['validermodifier'.$i]) || isset($_POST['validermodifier'.$i.'_x'])) {
$modifier = $i;
$testmodifier = true;
2011-05-15 03:56:54 +02:00
}
}
2011-05-15 01:32:47 +02:00
2011-05-15 03:56:54 +02:00
//si le test est valide alors on affiche des checkbox pour entrer de nouvelles valeurs
if ($testmodifier) {
2011-05-21 18:46:44 +02:00
$nouveauchoix = '';
2011-05-15 03:56:54 +02:00
for ($i=0;$i<$nbcolonnes;$i++) {
//recuperation des nouveaux choix de l'utilisateur
if (isset($_POST["choix$i"]) && $_POST["choix$i"] == 1) {
$nouveauchoix.="1";
} else {
$nouveauchoix.="0";
}
}
$compteur=0;
2011-05-21 18:46:44 +02:00
while ($data = $user_studs->FetchNextObject(false) ) {
2011-05-15 03:56:54 +02:00
//mise a jour des données de l'utilisateur dans la base SQL
2011-05-21 18:46:44 +02:00
if ($compteur == $modifier) {
$sql = 'UPDATE user_studs SET reponses='.$connect->Param('nouveauchoix').' WHERE nom='.$connect->Param('nom').' AND id_users='.$connect->Param('id_users');
$sql = $connect->Prepare($sql);
$connect->Execute($sql, array($nouveauchoix, $data->nom, $data->id_users));
2011-05-15 03:56:54 +02:00
if ($dsondage->mailsonde=="yes") {
sendEmail( "$dsondage->mail_admin", "[".NOMAPPLICATION."] " . _("Poll's participation") . " : ".html_entity_decode($dsondage->titre, ENT_QUOTES, 'UTF-8'), "\"".html_entity_decode($data->nom, ENT_QUOTES, 'UTF-8')."\""."" . _("has filled a line.\nYou can find your poll at the link") . " :\n\n".getUrlSondage($numsondage)." \n\n" . _("Thanks for your confidence.") . "\n".NOMAPPLICATION );
2011-05-15 03:56:54 +02:00
}
}
$compteur++;
}
}
//recuperation des utilisateurs du sondage
2011-05-21 18:46:44 +02:00
$sql = 'SELECT * FROM user_studs WHERE id_sondage='.$connect->Param('numsondage').' ORDER BY id_users';
$sql = $connect->Prepare($sql);
$user_studs = $connect->Execute($sql, array($numsondage));
2011-05-15 01:32:47 +02:00
//reformatage des données des sujets du sondage
2011-05-21 18:46:44 +02:00
$toutsujet = explode(",",$dsondage->sujet);
//patch pyg pour réordonner les dates ajoutees a posteriori
//sort($toutsujet, SORT_NUMERIC);
2011-05-15 01:32:47 +02:00
//si le sondage est un sondage de date
2011-05-15 03:56:54 +02:00
if ($dsondage->format=="D"||$dsondage->format=="D+") {
//affichage des sujets du sondage
echo '<tr>'."\n";
echo '<td></td>'."\n";
//affichage des années
$colspan=1;
for ($i=0;$i<count($toutsujet);$i++) {
2011-05-21 18:46:44 +02:00
if (isset($toutsujet[$i+1]) && date('Y', intval($toutsujet[$i])) == date('Y', intval($toutsujet[$i+1]))) {
2011-05-15 03:56:54 +02:00
$colspan++;
} else {
echo '<td colspan='.$colspan.' class="annee">'.date('Y', intval($toutsujet[$i])).'</td>'."\n";
$colspan=1;
}
}
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td></td>'."\n";
//affichage des mois
$colspan=1;
for ($i=0;$i<count($toutsujet);$i++) {
// intval() est utiliser pour supprimer le suffixe @* qui déplaît logiquement à strftime()
$cur = intval($toutsujet[$i]);
2011-05-21 18:46:44 +02:00
if (isset($toutsujet[$i+1]) === false) {
$next = false;
} else {
$next = intval($toutsujet[$i+1]);
}
if ($next && strftime("%B", $cur) == strftime("%B", $next) && date('Y', $cur) == date('Y', $next)) {
2011-05-15 03:56:54 +02:00
$colspan++;
} else {
if ($_SESSION["langue"]=="EN") { // because strftime doesn't support english suffix (like st,nd,rd,th)
echo '<td colspan='.$colspan.' class="mois">'.date("F",$cur).'</td>'."\n";
} else {
echo '<td colspan='.$colspan.' class="mois">'.strftime("%B",$cur).'</td>'."\n";
}
$colspan=1;
}
}
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td></td>'."\n";
//affichage des jours
$colspan=1;
for ($i=0;$i<count($toutsujet);$i++) {
$cur = intval($toutsujet[$i]);
2011-05-21 18:46:44 +02:00
if (isset($toutsujet[$i+1]) === false) {
$next = false;
} else {
$next = intval($toutsujet[$i+1]);
}
if ($next && strftime("%a %e", $cur) == strftime("%a %e", $next) && strftime("%B", $cur) == strftime("%B", $next)) {
2011-05-15 03:56:54 +02:00
$colspan++;
} else {
if ($_SESSION["langue"]=="EN") {
echo '<td colspan='.$colspan.' class="jour">'.date("D jS",$cur).'</td>'."\n";
} else {
echo '<td colspan='.$colspan.' class="jour">'.strftime("%a %e",$cur).'</td>'."\n";
}
$colspan=1;
}
}
echo '</tr>'."\n";
//affichage des horaires
if (strpos($dsondage->sujet, '@') !== false) {
echo '<tr>'."\n";
echo '<th role="presentation"></th>'."\n";
2011-05-15 03:56:54 +02:00
2011-05-21 18:46:44 +02:00
for ($i=0; isset($toutsujet[$i]); $i++) {
2011-05-15 03:56:54 +02:00
$heures=explode("@",$toutsujet[$i]);
2011-05-21 18:46:44 +02:00
if (isset($heures[1]) === true) {
echo '<td class="heure">'.stripslashes($heures[1]).'</td>'."\n";
2011-05-21 18:46:44 +02:00
} else {
echo '<td scope="col" class="heure"></td>'."\n";
2011-05-21 18:46:44 +02:00
}
2011-05-15 03:56:54 +02:00
}
echo '</tr>'."\n";
}
} else {
$toutsujet=str_replace("°","'",$toutsujet);
//affichage des sujets du sondage
echo '<tr>'."\n";
echo '<th role="presentation"></th>'."\n";
2011-05-15 03:56:54 +02:00
2011-05-21 18:46:44 +02:00
for ($i=0; isset($toutsujet[$i]); $i++) {
echo '<th scope="col" class="sujet">'.stripslashes($toutsujet[$i]).'</th>'."\n";
2011-05-15 03:56:54 +02:00
}
echo '<th></th>'."\n";
2011-05-15 03:56:54 +02:00
echo '</tr>'."\n";
2011-05-15 01:32:47 +02:00
}
echo '</thead>'."\n".'<tbody>'."\n";
2011-05-15 01:32:47 +02:00
//Usager pré-authentifié dans la liste?
2011-05-21 18:46:44 +02:00
$user_mod = false;
2011-05-15 03:56:54 +02:00
2011-05-15 01:32:47 +02:00
//affichage des resultats actuels
$somme = array();
2011-05-15 03:56:54 +02:00
$compteur = 0;
2011-05-21 18:46:44 +02:00
while ($data = $user_studs->FetchNextObject(false)) {
2011-05-15 03:56:54 +02:00
echo '<tr>'."\n";
echo '<td class="nom">';
// Le nom de l'utilisateur
$nombase=str_replace("°","'",$data->nom);
echo stripslashes($nombase).'</td>'."\n";
2011-05-15 03:56:54 +02:00
// Les réponses qu'il a choisies
2011-05-21 18:46:44 +02:00
$ensemblereponses = $data->reponses;
2011-05-15 03:56:54 +02:00
// ligne d'un usager pré-authentifié
$mod_ok = !( USE_REMOTE_USER && isset($_SERVER['REMOTE_USER']) ) || ($nombase == $_SESSION['nom']);
2011-05-15 03:56:54 +02:00
$user_mod |= $mod_ok;
// pour chaque colonne
for ($k=0; $k < $nbcolonnes; $k++) {
// on remplace les choix de l'utilisateur par une ligne de checkbox pour recuperer de nouvelles valeurs
if ($compteur == $ligneamodifier) {
echo '<td class="vide"><input type="checkbox" title="' . _('Select the choice ') .$k.'" name="choix'.$k.'" value="1" ';
2011-05-15 03:56:54 +02:00
if(substr($ensemblereponses,$k,1) == '1') {
echo 'checked="checked"';
}
echo ' /></td>'."\n";
} else {
2011-05-21 18:46:44 +02:00
$car = substr($ensemblereponses, $k, 1);
if ($car == "1") {
2011-05-15 03:56:54 +02:00
echo '<td class="ok">OK</td>'."\n";
2011-05-21 18:46:44 +02:00
if (isset($somme[$k]) === false) {
$somme[$k] = 0;
}
2011-05-15 03:56:54 +02:00
$somme[$k]++;
} else {
echo '<td class="non"></td>'."\n";
}
}
}
//a la fin de chaque ligne se trouve les boutons modifier
if ($compteur != $ligneamodifier && ($dsondage->format=="A+"||$dsondage->format=="D+") && $mod_ok) {
echo '<td class=casevide><input type="image" alt="' . _('Edit') . '" name="modifierligne'.$compteur.'" src="'.get_server_name().'images/info.png"></td>'."\n";
2011-05-15 03:56:54 +02:00
}
//demande de confirmation pour modification de ligne
for ($i=0;$i<$nblignes;$i++) {
2011-05-21 18:46:44 +02:00
if (isset($_POST["modifierligne$i"]) || isset($_POST['modifierligne'.$i.'_x'])) {
if ($compteur == $i) {
echo '<td class="casevide"><input type="image" alt="'. _('Validate my choices') .'" name="validermodifier'.$compteur.'" src="'.get_server_name().'images/accept.png" ></td>'."\n";
2011-05-15 03:56:54 +02:00
}
}
}
$compteur++;
echo '</tr>'."\n";
}
2011-05-15 01:32:47 +02:00
// affichage de la ligne pour un nouvel utilisateur
if (( !(USE_REMOTE_USER && isset($_SERVER['REMOTE_USER'])) || !$user_mod) && $ligneamodifier==-1) {
echo '<tr class="ajout_reponse">'."\n";
2011-05-15 03:56:54 +02:00
echo '<td class="nom">'."\n";
2011-05-21 18:46:44 +02:00
if (isset($_SESSION['nom'])) {
$nom = stripslashes($_SESSION['nom']);
2011-05-15 03:56:54 +02:00
} else {
2013-03-14 14:12:09 +01:00
$nom = 'Votre nom';
2011-05-15 03:56:54 +02:00
}
echo '<input title="'. _('Your name') .'" type="text" id="'.$nom.'" name="nom" maxlength="64" value="'.$nom.'" onfocus="if (this.value == \''. _('Your name') .'\') {this.value = \'\';}" onblur="if (this.value == \'\') {this.value = \''. _('Your name') .'\';}" >'."\n";
2011-05-15 03:56:54 +02:00
echo '</td>'."\n";
// affichage des cases de formulaire checkbox pour un nouveau choix
for ($i=0;$i<$nbcolonnes;$i++) {
echo '<td class="vide"><input type="checkbox" title="' . _('Select the choice ').$i.'" name="choix'.$i.'" value="1"';
2011-05-15 03:56:54 +02:00
if ( isset($_POST['choix'.$i]) && $_POST['choix'.$i] == '1' && is_error(NAME_EMPTY) ) {
echo ' checked="checked"';
}
echo '></td>'."\n";
}
// Affichage du bouton de formulaire pour inscrire un nouvel utilisateur dans la base
echo '<td><input type="image" alt="'. _('Validate my choices') .'" name="boutonp" src="'.get_server_name().'images/add-24.png"></td>'."\n";
2011-05-15 03:56:54 +02:00
echo '</tr>'."\n";
// Focus javascript sur la case de texte du formulaire
echo '<script type="text/javascript">'."\n" . 'document.formulaire.nom.focus();'."\n" . '</script>'."\n";
2011-05-15 03:56:54 +02:00
}
2011-05-15 01:32:47 +02:00
//determination de la meilleure date
// On cherche la meilleure colonne
2011-05-21 18:46:44 +02:00
for ($i=0; $i < $nbcolonnes; $i++) {
if (isset($somme[$i]) === true) {
if ($i == "0") {
$meilleurecolonne = $somme[$i];
}
if (isset($meilleurecolonne) === false || $somme[$i] > $meilleurecolonne) {
$meilleurecolonne = $somme[$i];
}
2011-05-15 03:56:54 +02:00
}
}
2011-05-15 01:32:47 +02:00
echo '</tbody>'."\n".'<tfoot>'."\n";
2011-05-15 01:32:47 +02:00
// Affichage des différentes sommes des colonnes existantes
2011-05-15 03:56:54 +02:00
echo '<tr>'."\n";
echo '<th scope="row" class="txt-right">';
// si on a plus de 8 colonnes, on affiche un second bouton "valider mes choix"
echo ($nbcolonnes>8) ?'<input type="submit" name="boutonp" alt="'. _('Validate my choices') .'" class="btn btn-success btn-mini" style="margin-right:50px">' : "";
echo _("Addition") .'</th>'."\n";
2011-05-15 03:56:54 +02:00
2011-05-21 18:46:44 +02:00
for ($i=0; $i < $nbcolonnes; $i++) {
if (isset($somme[$i]) === true) {
$affichesomme = $somme[$i];
if ($affichesomme == "") {
$affichesomme = '0';
}
} else {
$affichesomme = '0';
2011-05-15 03:56:54 +02:00
}
echo '<td class="somme">'.$affichesomme.'</td>'."\n";
}
echo '<td class="somme"></td>'."\n";
2011-05-15 03:56:54 +02:00
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td class="somme"></td>'."\n";
2011-05-21 18:46:44 +02:00
for ($i=0; $i < $nbcolonnes; $i++) {
if (isset($somme[$i]) && isset($meilleurecolonne) && $somme[$i] == $meilleurecolonne) {
echo '<td class="somme"><img src="'.get_server_name().'images/medaille.png" alt="' . _('Best choice') . '"></td>'."\n";
2011-05-15 03:56:54 +02:00
} else {
echo '<td class="somme"></td>'."\n";
}
}
echo '<td class="somme"></td>'."\n";
2011-05-15 03:56:54 +02:00
echo '</tr>'."\n";
echo '</tfoot>'."\n";
2011-05-15 03:56:54 +02:00
echo '</table>'."\n";
echo '</div>'."\n";
2011-05-15 01:32:47 +02:00
// reformatage des données de la base pour les sujets
2011-05-15 03:56:54 +02:00
$toutsujet=explode(",",$dsondage->sujet);
$toutsujet=str_replace("°","'",$toutsujet);
2011-05-15 01:32:47 +02:00
// On compare le nombre de résultat avec le meilleur et si le résultat est égal
// on concatene le resultat dans $meilleursujet
2011-05-15 03:56:54 +02:00
$compteursujet=0;
2011-05-21 18:46:44 +02:00
$meilleursujet = '';
for ($i = 0; $i < $nbcolonnes; $i++) {
if (isset($somme[$i]) && isset($meilleurecolonne) && $somme[$i] == $meilleurecolonne) {
2011-05-15 03:56:54 +02:00
$meilleursujet.=", ";
if ($dsondage->format=="D"||$dsondage->format=="D+") {
2011-05-21 18:46:44 +02:00
$meilleursujetexport = $toutsujet[$i];
2011-05-15 03:56:54 +02:00
if (strpos($toutsujet[$i],'@') !== false) {
$toutsujetdate=explode("@",$toutsujet[$i]);
if ($_SESSION["langue"]=="EN") {
$meilleursujet.=date("l, F jS Y",$toutsujetdate[0])." " . _("for") ." ".$toutsujetdate[1];
} else {
$meilleursujet.=strftime(_("%A, den %e. %B %Y"),$toutsujetdate[0]). ' ' . _("for") . ' ' . $toutsujetdate[1];
}
} else {
if ($_SESSION["langue"]=="EN") {
$meilleursujet.=date("l, F jS Y",$toutsujet[$i]);
} else {
$meilleursujet.=strftime(_("%A, den %e. %B %Y"),$toutsujet[$i]);
}
}
} else {
2011-05-21 18:46:44 +02:00
$meilleursujet .= $toutsujet[$i];
2011-05-15 03:56:54 +02:00
}
$compteursujet++;
}
}
2011-05-15 01:32:47 +02:00
2011-05-21 18:46:44 +02:00
$meilleursujet=substr("$meilleursujet", 1);
2011-05-15 01:32:47 +02:00
$vote_str = _('vote');
2011-05-15 03:56:54 +02:00
2011-05-21 18:46:44 +02:00
if (isset($meilleurecolonne) && $meilleurecolonne > 1) {
2011-05-15 01:32:47 +02:00
$vote_str = _('votes');
2011-05-15 03:56:54 +02:00
}
echo '<p class="affichageresultats">'."\n";
// Affichage du meilleur choix
2011-05-21 18:46:44 +02:00
if ($compteursujet == "1" && isset($meilleurecolonne)) {
print '<img src="'.get_server_name().'images/medaille.png" alt=""> ' . _('The best choice at this time is:') . "<b>".stripslashes($meilleursujet)."</b> " . _('with') . " <b>$meilleurecolonne </b>" . $vote_str . ".\n";
2011-05-21 18:46:44 +02:00
} elseif (isset($meilleurecolonne)) {
print '<img src="'.get_server_name().'images/medaille.png" alt=""> ' . _('The bests choices at this time are:') . " <b>".stripslashes($meilleursujet)."</b> " . _('with') . " <b>$meilleurecolonne </b>" . $vote_str . ".\n";
2011-05-15 03:56:54 +02:00
}
echo '</p>';
//affichage des commentaires des utilisateurs existants
2011-05-21 18:46:44 +02:00
$sql = 'select * from comments where id_sondage='.$connect->Param('numsondage').' order by id_comment';
$sql = $connect->Prepare($sql);
$comment_user=$connect->Execute($sql, array($numsondage));
2011-05-15 03:56:54 +02:00
if ($comment_user->RecordCount() != 0) {
print "<br /><b>" . _("Comments of polled people") . " :</b><br />\n";
2011-05-21 18:46:44 +02:00
while($dcomment = $comment_user->FetchNextObject(false)) {
print '<div class="comment"><span class="usercomment">'.stripslashes($dcomment->usercomment). ' :</span> <span class="comment">' . stripslashes(nl2br($dcomment->comment)) . '</span></div>';
2011-05-15 03:56:54 +02:00
}
}
2011-05-15 01:32:47 +02:00
2011-05-15 03:56:54 +02:00
//affichage de la case permettant de rajouter un commentaire par les utilisateurs
print '<div class="addcomment">' .'<fieldset><legend>' ._("Add a comment in the poll:") . '</legend>' . "\n";
2011-05-15 01:32:47 +02:00
2011-05-21 18:46:44 +02:00
if (isset($_SESSION['nom']) === false) {
$nom = '';
} else {
$nom = stripslashes($_SESSION['nom']);
}
echo '<p><label for="commentator">'. _("Name") .'</label> : ';
echo '<input type="text" name="commentuser" maxlength="64" id="commentator" value="'.$nom.'" /></p>'."\n";
echo '<p><label for="comment">'. _("Your comment: ") .'</label><br />';
echo '<textarea id="comment" title="'. _("Write your comment") .'" name="comment" rows="2" cols="40"></textarea></p>'."\n";
echo '<p class="txt-center"><input type="submit" name="ajoutcomment" value="'. _("Send your comment") .'" class="button green"></p>'."\n";
echo '</fieldset></div></form>'."\n";
2011-05-15 01:32:47 +02:00
echo '</div>'."\n";
/* Export CSV / ICS
* echo '<ul class="exports">';
echo '<li><img alt="' . _('Export to CSV') . '" src="'.get_server_name().'images/csv.png"/>'.'<a class="affichageexport" href="'.get_server_name().'exportcsv.php?numsondage=' . $numsondage . '">'._("Export: Spreadsheet") .' (.CSV)' . '</a></li>';
2011-05-15 01:32:47 +02:00
if ( ($dsondage->format == 'D' || $dsondage->format == 'D+') && $compteursujet=="1" && $meilleurecolonne && file_exists('iCalcreator/iCalcreator.class.php') && false) {
echo '<li><img alt="' . _('Export iCal') . '" src="'.get_server_name().'images/ical.png">' .'<a class="affichageexport" href="'.get_server_name().'exportics.php?numsondage=' . $numsondage . '">'._("Agenda") .' (.ICS)' . '</a></li>';
2011-05-15 03:56:54 +02:00
}
2011-05-15 01:32:47 +02:00
2011-05-15 03:56:54 +02:00
echo '</ul>';
*/
echo '<a id="bas"></a>'."\n";
//echo '</div>'; // ajout pyg cohérence graphique
2011-05-15 03:56:54 +02:00
bandeau_pied_mobile();
// Affichage du bandeau de pied
echo '</body>'."\n";
2011-07-04 22:08:39 +02:00
echo '</html>'."\n";