date.chapril.org-framadate/studs.php

657 lines
23 KiB
PHP

<?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)
*/
session_start();
if (file_exists('bandeaux_local.php')) {
include_once('bandeaux_local.php');
} else {
include_once('bandeaux.php');
}
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.
if(issetAndNoEmpty('sondage', $_GET) === true) {
$numsondage = $_GET["sondage"];
$_SESSION["numsondage"] = $numsondage;
}
if(issetAndNoEmpty('sondage') === true) {
$numsondage = $_POST["sondage"];
$_SESSION["numsondage"] = $numsondage;
} elseif(issetAndNoEmpty('sondage', $_COOKIE) === true) {
$numsondage = $_COOKIE["sondage"];
} elseif(issetAndNoEmpty('numsondage', $_SESSION) === true) {
$numsondage = $_SESSION["numsondage"];
}
if ($numsondage !== false) {
$dsondage = get_sondage_from_id($numsondage);
if($dsondage === false) {
$err |= NO_POLL;
}
} else {
$err |= NO_POLL_ID;
}
//output a CSV and die()
if(issetAndNoEmpty('export', $_GET) && $dsondage !== false) {
if($_GET['export'] == 'csv') {
require_once('exportcsv.php');
}
if($_GET['export'] == 'ics' && $dsondage->is_date) {
require_once('exportics.php');
}
die();
}
// quand on ajoute un commentaire utilisateur
if(isset($_POST['ajoutcomment']) || isset($_POST['ajoutcomment_x'])) {
if (isset($_SESSION['nom']) && issetAndNoEmpty('commentuser') === false) {
// 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"];
} elseif(isset($_POST["commentuser"])) {
$err |= COMMENT_USER_EMPTY;
} else {
$comment_user = _('anonyme');
}
if(issetAndNoEmpty('comment') === false) {
$err |= COMMENT_EMPTY;
}
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) {
$err |= COMMENT_INSERT_FAILED;
}
}
}
// Action quand on clique le bouton participer
$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"]))) {
//Si le nom est bien entré
if (issetAndNoEmpty('nom') === false) {
$err |= NAME_EMPTY;
}
if(!is_error(NAME_EMPTY) && (! ( USE_REMOTE_USER && isset($_SERVER['REMOTE_USER']) ) || $_POST["nom"] == $_SESSION["nom"])) {
$nouveauchoix = '';
for ($i=0;$i<$nbcolonnes;$i++) {
// Si la checkbox est enclenchée alors la valeur est 1
if (isset($_POST["choix$i"]) && $_POST["choix$i"] == '1') {
$nouveauchoix.="1";
} else { // sinon c'est 0
$nouveauchoix.="0";
}
}
$nom=substr($_POST["nom"],0,64);
// protection contre les XSS : htmlentities
$nom = htmlentities($nom, ENT_QUOTES, 'UTF-8');
while($user = $user_studs->FetchNextObject(false)) {
if ($nom == $user->nom) {
$err |= NAME_TAKEN;
}
}
// Ecriture des choix de l'utilisateur dans la base
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));
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').
_("has filled a line.\nYou can find your poll at the link") . " :\n\n".
getUrlSondage($numsondage)." \n\n" .
_("Thanks for your confidence.") . "\n". NOMAPPLICATION );
}
}
} else {
$err |= NAME_EMPTY;
}
}
if($err != 0) {
print_header(true, _("Error!").' - '.$dsondage->titre, $lang);
} else {
print_header(true, $dsondage->titre, $lang);
}
echo '<body>'."\n";
framanav();
logo();
bandeau_tete();
bandeau_titre(_("Make your polls"));
sous_bandeau();
#print_r($_SESSION);
if($err != 0) {
bandeau_titre(_("Error!"));
echo '<div class="error"><ul>'."\n";
if(is_error(NAME_EMPTY)) {
echo '<li class="error">' . _("Enter a name !") . "</li>\n";
}
if(is_error(NAME_TAKEN)) {
echo '<li class="error">' .
_("The name you've chosen already exist in this poll!") .
"</li>\n";
}
if(is_error(COMMENT_EMPTY) || is_error(COMMENT_USER_EMPTY)) {
echo '<li class="error">' .
_("Enter a name and a comment!") .
"</li>\n";
}
if(is_error(COMMENT_INSERT_FAILED) ) {
echo '<li class="error">' .
_("Failed to insert the comment!") .
"</li>\n";
}
echo '</ul></div>';
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";
echo '</div>'."\n";
bandeau_pied();
echo '</body>'."\n";
echo '</html>'."\n";
die();
}
}
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>';
echo '<div class="presentationdate"> '."\n";
//affichage du titre du sondage
$titre=str_replace("\\","",$dsondage->titre);
echo '<h2>'.stripslashes($titre).'</h2>'."\n";
//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";
//affichage de la description du sondage
if ($dsondage->commentaires) {
echo '<div class="admin_comment"><span class="mlabel">'._("Description: ") .'</span><br />'."\n";
$commentaires = $dsondage->commentaires;
$commentaires=nl2br(str_replace("\\","",$commentaires));
echo '<span class="mcontent">'. $commentaires .'</span>';
echo '</div>'."\n";
}
echo '</div>'."\n";
echo '<form name="formulaire" action="'.getUrlSondage($dsondage->id_sondage).'#bas" method="POST" onkeypress="javascript:process_keypress(event)">'."\n";
echo '<input type="hidden" name="sondage" value="' . $numsondage . '"/>';
// 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";
// Debut de l'affichage des resultats du sondage
echo '<table class="resultats">'."\n".'<thead>';
//On récupere les données et les sujets du sondage
$nblignes = $user_studs->RecordCount();
//on teste pour voir si une ligne doit etre modifiée
$testmodifier = false;
$ligneamodifier = -1;
for ($i=0;$i<$nblignes;$i++) {
if (isset($_POST["modifierligne$i"]) || isset($_POST['modifierligne'.$i.'_x'])) {
$ligneamodifier = $i;
}
//test pour voir si une ligne est a modifier
if (isset($_POST['validermodifier'.$i]) || isset($_POST['validermodifier'.$i.'_x'])) {
$modifier = $i;
$testmodifier = true;
}
}
//si le test est valide alors on affiche des checkbox pour entrer de nouvelles valeurs
if ($testmodifier) {
$nouveauchoix = '';
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;
while ($data = $user_studs->FetchNextObject(false) ) {
//mise a jour des données de l'utilisateur dans la base SQL
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));
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 );
}
}
$compteur++;
}
}
//recuperation des utilisateurs du sondage
$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));
//reformatage des données des sujets du sondage
$toutsujet = explode(",",$dsondage->sujet);
//patch pyg pour réordonner les dates ajoutees a posteriori
//sort($toutsujet, SORT_NUMERIC);
//si le sondage est un sondage de date
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++) {
if (isset($toutsujet[$i+1]) && date('Y', intval($toutsujet[$i])) == date('Y', intval($toutsujet[$i+1]))) {
$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]);
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)) {
$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]);
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)) {
$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";
for ($i=0; isset($toutsujet[$i]); $i++) {
$heures=explode("@",$toutsujet[$i]);
if (isset($heures[1]) === true) {
echo '<td class="heure">'.stripslashes($heures[1]).'</td>'."\n";
} else {
echo '<td scope="col" class="heure"></td>'."\n";
}
}
echo '</tr>'."\n";
}
} else {
$toutsujet=str_replace("°","'",$toutsujet);
//affichage des sujets du sondage
echo '<tr>'."\n";
echo '<th role="presentation"></th>'."\n";
for ($i=0; isset($toutsujet[$i]); $i++) {
echo '<th scope="col" class="sujet">'.stripslashes($toutsujet[$i]).'</th>'."\n";
}
echo '<th></th>'."\n";
echo '</tr>'."\n";
}
echo '</thead>'."\n".'<tbody>'."\n";
//Usager pré-authentifié dans la liste?
$user_mod = false;
//affichage des resultats actuels
$somme = array();
$compteur = 0;
while ($data = $user_studs->FetchNextObject(false)) {
echo '<tr>'."\n";
echo '<td class="nom">';
// Le nom de l'utilisateur
$nombase=str_replace("°","'",$data->nom);
echo stripslashes($nombase).'</td>'."\n";
// Les réponses qu'il a choisies
$ensemblereponses = $data->reponses;
// ligne d'un usager pré-authentifié
$mod_ok = !( USE_REMOTE_USER && isset($_SERVER['REMOTE_USER']) ) || ($nombase == $_SESSION['nom']);
$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" ';
if(substr($ensemblereponses,$k,1) == '1') {
echo 'checked="checked"';
}
echo ' /></td>'."\n";
} else {
$car = substr($ensemblereponses, $k, 1);
if ($car == "1") {
echo '<td class="ok">OK</td>'."\n";
if (isset($somme[$k]) === false) {
$somme[$k] = 0;
}
$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";
}
//demande de confirmation pour modification de ligne
for ($i=0;$i<$nblignes;$i++) {
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";
}
}
}
$compteur++;
echo '</tr>'."\n";
}
// 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";
echo '<td class="nom">'."\n";
if (isset($_SESSION['nom'])) {
$nom = stripslashes($_SESSION['nom']);
} else {
$nom = 'Votre nom';
}
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";
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"';
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";
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";
}
//determination de la meilleure date
// On cherche la meilleure colonne
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];
}
}
}
echo '</tbody>'."\n".'<tfoot>'."\n";
// Affichage des différentes sommes des colonnes existantes
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";
for ($i=0; $i < $nbcolonnes; $i++) {
if (isset($somme[$i]) === true) {
$affichesomme = $somme[$i];
if ($affichesomme == "") {
$affichesomme = '0';
}
} else {
$affichesomme = '0';
}
echo '<td class="somme">'.$affichesomme.'</td>'."\n";
}
echo '<td class="somme"></td>'."\n";
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td class="somme"></td>'."\n";
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";
} else {
echo '<td class="somme"></td>'."\n";
}
}
echo '<td class="somme"></td>'."\n";
echo '</tr>'."\n";
echo '</tfoot>'."\n";
echo '</table>'."\n";
echo '</div>'."\n";
// reformatage des données de la base pour les sujets
$toutsujet=explode(",",$dsondage->sujet);
$toutsujet=str_replace("°","'",$toutsujet);
// On compare le nombre de résultat avec le meilleur et si le résultat est égal
// on concatene le resultat dans $meilleursujet
$compteursujet=0;
$meilleursujet = '';
for ($i = 0; $i < $nbcolonnes; $i++) {
if (isset($somme[$i]) && isset($meilleurecolonne) && $somme[$i] == $meilleurecolonne) {
$meilleursujet.=", ";
if ($dsondage->format=="D"||$dsondage->format=="D+") {
$meilleursujetexport = $toutsujet[$i];
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 {
$meilleursujet .= $toutsujet[$i];
}
$compteursujet++;
}
}
$meilleursujet=substr("$meilleursujet", 1);
$vote_str = _('vote');
if (isset($meilleurecolonne) && $meilleurecolonne > 1) {
$vote_str = _('votes');
}
echo '<p class="affichageresultats">'."\n";
// Affichage du meilleur choix
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";
} 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";
}
echo '</p>';
//affichage des commentaires des utilisateurs existants
$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));
if ($comment_user->RecordCount() != 0) {
print "<br /><b>" . _("Comments of polled people") . " :</b><br />\n";
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>';
}
}
//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";
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";
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>';
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>';
}
echo '</ul>';
*/
echo '<a id="bas"></a>'."\n";
//echo '</div>'; // ajout pyg cohérence graphique
bandeau_pied_mobile();
// Affichage du bandeau de pied
echo '</body>'."\n";
echo '</html>'."\n";