Param('numsondageadmin'); $sql = $connect->Prepare($sql); $sondage = $connect->Execute($sql, array($numsondageadmin)); if ($sondage !== false) { $sql = 'SELECT * FROM sujet_studs WHERE id_sondage = '.$connect->Param('numsondage'); $sql = $connect->Prepare($sql); $sujets = $connect->Execute($sql, array($numsondage)); $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)); } } //verification de l'existence du sondage, s'il n'existe pas on met une page d'erreur if (!$sondage || $sondage->RecordCount() != 1){ Utils::print_header( _("Error!")); bandeau_titre(_("Error!")); echo '

' . _("This poll doesn't exist !") . '

' . _('Back to the homepage of ') . ' ' . NOMAPPLICATION . '

'."\n"; bandeau_pied(); die(); } $dsujet=$sujets->FetchObject(false); $dsondage=$sondage->FetchObject(false); //si la valeur du nouveau titre est valide et que le bouton est activé $adresseadmin = $dsondage->mail_admin; if (isset($_POST["boutonnouveautitre"])) { if (Utils::issetAndNoEmpty('nouveautitre') === false) { $err |= TITLE_EMPTY; } else { //modification de la base SQL avec le nouveau titre $nouveautitre = htmlentities(html_entity_decode($_POST['nouveautitre'], ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8'); $sql = 'UPDATE sondage SET titre = '.$connect->Param('nouveautitre').' WHERE id_sondage = '.$connect->Param('numsondage'); $sql = $connect->Prepare($sql); //envoi du mail pour prevenir l'admin de sondage if ($connect->Execute($sql, array($nouveautitre, $numsondage))) { Utils::sendEmail( $adresseadmin, _("[ADMINISTRATOR] New title for your poll") . ' ' . NOMAPPLICATION, _("You have changed the title of your poll. \nYou can modify this poll with this link") . " :\n\n" . Utils::getUrlSondage($numsondageadmin, true) . "\n\n" . _("Thanks for your confidence.") . "\n" . NOMAPPLICATION ); } } } // si le bouton est activé, quelque soit la valeur du champ textarea if (isset($_POST["boutonnouveauxcommentaires"])) { if (Utils::issetAndNoEmpty('nouveautitre') === false) { $err |= COMMENT_EMPTY; } else { $commentaires = htmlentities(html_entity_decode($_POST['nouveauxcommentaires'], ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8'); //modification de la base SQL avec les nouveaux commentaires $sql = 'UPDATE sondage SET commentaires = '.$connect->Param('commentaires').' WHERE id_sondage = '.$connect->Param('numsondage'); $sql = $connect->Prepare($sql); if ($connect->Execute($sql, array($commentaires, $numsondage))) { //envoi du mail pour prevenir l'admin de sondage Utils::sendEmail( $adresseadmin, _("[ADMINISTRATOR] New description of your poll") . ' ' . NOMAPPLICATION, _("You have changed the description of your poll. \nYou can modify this poll with this link") . " :\n\n" . Utils::getUrlSondage($numsondageadmin, true) . " \n\n" . _("Thanks for your confidence.") . "\n" . NOMAPPLICATION ); } } } //si la valeur de la nouvelle adresse est valide et que le bouton est activé if (isset($_POST["boutonnouvelleadresse"])) { if (Utils::issetAndNoEmpty('nouvelleadresse') === false || Utils::isValidEmail($_POST["nouvelleadresse"]) === false) { $err |= INVALID_EMAIL; } else { $nouvelleadresse = htmlentities(html_entity_decode($_POST['nouvelleadresse'], ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8'); //modification de la base SQL avec la nouvelle adresse $sql = 'UPDATE sondage SET mail_admin = '.$connect->Param('nouvelleadresse').' WHERE id_sondage = '.$connect->Param('numsondage'); $sql = $connect->Prepare($sql); if ($connect->Execute($sql, array($nouvelleadresse, $numsondage))) { //envoi du mail pour prevenir l'admin de sondage Utils::sendEmail( $_POST['nouvelleadresse'], _("[ADMINISTRATOR] New email address for your poll") . ' ' . NOMAPPLICATION, _("You have changed your email address in your poll. \nYou can modify this poll with this link") . " :\n\n" . Utils::getUrlSondage($numsondageadmin, true) . "\n\n" . _("Thanks for your confidence.") . "\n" . NOMAPPLICATION ); } } } // reload $dsujet=$sujets->FetchObject(false); $dsondage=$sondage->FetchObject(false); if (isset($_POST["ajoutsujet"])) { Utils::print_header(''); bandeau_titre(_("Make your polls")); //on recupere les données et les sujets du sondage echo '

' . _("Column's adding") . '

'."\n"; if ($dsondage->format=="A"||$dsondage->format=="A+"){ echo '
'."\n"; } else { //ajout d'une date avec creneau horaire echo '

'. _("You can add a new scheduling date to your poll.").'
'._("If you just want to add a new hour to an existant date, put the same date and choose a new hour.") .'

'. _("(dd/mm/yyyy)") .'
'; } echo '

'; bandeau_pied(); die(); } if (isset($_POST["suppressionsondage"])) { Utils::print_header(''); bandeau_titre(_("Confirm removal of your poll")); echo '

' . _("Confirm removal of your poll") . '

'; bandeau_pied(); die(); } //action si bouton confirmation de suppression est activé if (isset($_POST["confirmesuppression"])) { $nbuser=$user_studs->RecordCount(); $date=date('H:i:s d/m/Y:'); if (Utils::remove_sondage($connect, $numsondage)) { // on ecrit dans le fichier de logs la suppression du sondage error_log($date . " SUPPRESSION: $dsondage->id_sondage\t$dsondage->format\t$dsondage->nom_admin\t$dsondage->mail_admin\n", 3, 'admin/logs_studs.txt'); //envoi du mail a l'administrateur du sondage Utils::sendEmail( $adresseadmin, _("[ADMINISTRATOR] Removing of your poll") . ' ' . NOMAPPLICATION, _("You have removed your poll. \nYou can make new polls with this link") . " :\n\n" . Utils::get_server_name() . "index.php \n\n" . _("Thanks for your confidence.") . "\n" . NOMAPPLICATION ); //affichage de l'ecran de confirmation de suppression de sondage Utils::print_header(''); bandeau_titre(_("Make your polls")); echo '

' . _("Your poll has been removed!") . '

' . _('Back to the homepage of ') . ' ' . NOMAPPLICATION . '

'."\n"; bandeau_pied(); die(); } } // quand on ajoute un commentaire utilisateur if (isset($_POST['ajoutcomment'])) { if (Utils::issetAndNoEmpty('commentuser') === false) { $err |= COMMENT_USER_EMPTY; } else { $comment_user = htmlentities(html_entity_decode($_POST["commentuser"], ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8'); } if(Utils::issetAndNoEmpty('comment') === false) { $err |= COMMENT_EMPTY; } if (Utils::issetAndNoEmpty('comment') && !Utils::is_error(COMMENT_EMPTY) && !Utils::is_error(NO_POLL) && !Utils::is_error(COMMENT_USER_EMPTY)) { $comment = htmlentities(html_entity_decode($_POST["comment"], ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8'); // Check for doublons $comment_doublon = false; $req = 'SELECT * FROM comments WHERE id_sondage='.$connect->Param('numsondage').' ORDER BY id_comment'; $sql = $connect->Prepare($req); $comment_user_doublon = $connect->Execute($sql, array($numsondage)); if ($comment_user_doublon->RecordCount() != 0) { while ( $dcomment_user_doublon=$comment_user_doublon->FetchNextObject(false)) { if($dcomment_user_doublon->comment == $comment && $dcomment_user_doublon->usercomment == $comment_user) { $comment_doublon = true; }; } } if(!$comment_doublon) { $req = 'INSERT INTO comments (id_sondage, comment, usercomment) VALUES ('. $connect->Param('id_sondage').','. $connect->Param('comment').','. $connect->Param('comment_user').')'; $sql = $connect->Prepare($req); $comments = $connect->Execute($sql, array($numsondage, $comment, $comment_user)); if ($comments === false) { $err |= COMMENT_INSERT_FAILED; } } } } $nbcolonnes = substr_count($dsujet->sujet, ',') + 1; $nblignes = $user_studs->RecordCount(); //si il n'y a pas suppression alors on peut afficher normalement le tableau //action si le bouton participer est cliqué if (isset($_POST["boutonp"])) { //si on a un nom dans la case texte if (Utils::issetAndNoEmpty('nom')){ $nouveauchoix = ''; $erreur_prenom = false; for ($i=0;$i<$nbcolonnes;$i++){ // radio checked 1 = Yes, 2 = Ifneedbe, 0 = No if (isset($_POST["choix$i"])) { switch ($_POST["choix$i"]) { case 1: $nouveauchoix .= "1";break; case 2: $nouveauchoix .= "2";break; default: $nouveauchoix .= "0";break; } } } $nom = htmlentities(html_entity_decode($_POST["nom"], ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8'); while($user = $user_studs->FetchNextObject(false)) { if ($nom == $user->nom){ $erreur_prenom="yes"; } } // Ecriture des choix de l'utilisateur dans la base if (!$erreur_prenom) { $sql = 'INSERT INTO user_studs (nom, id_sondage, reponses) VALUES ('. $connect->Param('nom').','. $connect->Param('numsondage').','. $connect->Param('nouveauchoix').')'; $sql = $connect->Prepare($sql); $connect->Execute($sql, array($nom, $numsondage, $nouveauchoix)); } } } //action quand on ajoute une colonne au format AUTRE if (isset($_POST["ajoutercolonne"]) && Utils::issetAndNoEmpty('nouvellecolonne') && ($dsondage->format == "A" || $dsondage->format == "A+")) { $nouveauxsujets=$dsujet->sujet; //on rajoute la valeur a la fin de tous les sujets deja entrés $nouveauxsujets.=","; $nouveauxsujets.=str_replace(","," ",$_POST["nouvellecolonne"]); $nouveauxsujets = htmlentities(html_entity_decode($nouveauxsujets, ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8'); //mise a jour avec les nouveaux sujets dans la base $sql = 'UPDATE sujet_studs SET sujet = '.$connect->Param('nouveauxsujets').' WHERE id_sondage = '.$connect->Param('numsondage'); $sql = $connect->Prepare($sql); if ($connect->Execute($sql, array($nouveauxsujets, $numsondage))) { //envoi d'un mail pour prévenir l'administrateur du changement Utils::sendEmail( "$adresseadmin", "" . _("[ADMINISTRATOR] New column for your poll").NOMAPPLICATION, "" . _("You have added a new column in your poll. \nYou can inform the voters of this change with this link") . " : \n\n" . Utils::getUrlSondage($numsondage) . " \n\n " . _("Thanks for your confidence.") . "\n".NOMAPPLICATION ); } } //action quand on ajoute une colonne au format DATE if (isset($_POST["ajoutercolonne"]) && ($dsondage->format == "D" || $dsondage->format == "D+")) { $nouveauxsujets=$dsujet->sujet; if (isset($_POST["newdate"]) && $_POST["newdate"] != "vide") { $nouvelledate=mktime(0, 0, 0, substr($_POST["newdate"],3,2), substr($_POST["newdate"],0,2), substr($_POST["newdate"],6,4)); if (isset($_POST["newhour"]) && $_POST["newhour"]!="vide"){ $nouvelledate.="@"; $nouvelledate.=$_POST["newhour"]; } //on rajoute la valeur dans les valeurs $datesbase = explode(",",$dsujet->sujet); $taillebase = sizeof($datesbase); //recherche de l'endroit de l'insertion de la nouvelle date dans les dates deja entrées dans le tableau if ($nouvelledate < $datesbase[0]) { $cleinsertion = 0; } elseif ($nouvelledate > $datesbase[$taillebase-1]) { $cleinsertion = count($datesbase); } else { for ($i = 0; $i < count($datesbase); $i++) { $j = $i + 1; if ($nouvelledate > $datesbase[$i] && $nouvelledate < $datesbase[$j]) { $cleinsertion = $j; } } } array_splice($datesbase, $cleinsertion, 0, $nouvelledate); $cle = array_search($nouvelledate, $datesbase); $dateinsertion = ''; for ($i = 0; $i < count($datesbase); $i++) { $dateinsertion.=","; $dateinsertion.=$datesbase[$i]; } $dateinsertion = substr("$dateinsertion", 1); //mise a jour avec les nouveaux sujets dans la base //if (isset($erreur_ajout_date) && !$erreur_ajout_date){ $sql = 'UPDATE sujet_studs SET sujet = '.$connect->Param('dateinsertion').' WHERE id_sondage = '.$connect->Param('numsondage'); $sql = $connect->Prepare($sql); $connect->Execute($sql, array($dateinsertion, $numsondage)); if ($nouvelledate > strtotime($dsondage->date_fin)) { $date_fin=$nouvelledate+200000; $sql = 'UPDATE sondage SET date_fin = '.$connect->Param('date_fin').' WHERE id_sondage = '.$connect->Param('numsondage'); $sql = $connect->Prepare($sql); $connect->Execute($sql, array($date_fin, $numsondage)); } //} //mise a jour des reponses actuelles correspondant au sujet ajouté $sql = 'UPDATE user_studs SET reponses = '.$connect->Param('reponses').' WHERE nom = '.$connect->Param('nom').' AND id_users='.$connect->Param('id_users'); $sql = $connect->Prepare($sql); while ($data = $user_studs->FetchNextObject(false)) { $ensemblereponses=$data->reponses; $newcar = ''; //parcours de toutes les réponses actuelles for ($j = 0; $j < $nbcolonnes; $j++) { $car=substr($ensemblereponses,$j,1); //si les reponses ne concerne pas la colonne ajoutée, on concatene if ($j==$cle) { $newcar.="0"; } $newcar.=$car; } //mise a jour des reponses utilisateurs dans la base if (isset($erreur_ajout_date) && !$erreur_ajout_date){ $connect->Execute($sql, array($newcar, $data->nom, $data->id_users)); } } //envoi d'un mail pour prévenir l'administrateur du changement $adresseadmin = $dsondage->mail_admin; Utils::sendEmail( $adresseadmin, _("[ADMINISTRATOR] New column for your poll"), _("You have added a new column in your poll. \nYou can inform the voters of this change with this link"). " : \n\n" . Utils::getUrlSondage($numsondage) . " \n\n " . _("Thanks for your confidence.") . "\n".NOMAPPLICATION ); } else { $erreur_ajout_date="yes"; } } //suppression de ligne dans la base for ($i = 0; $i < $nblignes; $i++) { if (isset($_POST["effaceligne$i"])) { $compteur=0; $sql = 'DELETE FROM user_studs WHERE nom = '.$connect->Param('nom').' AND id_users = '.$connect->Param('id_users'); $sql = $connect->Prepare($sql); while ($data=$user_studs->FetchNextObject(false)) { if ($compteur==$i){ $connect->Execute($sql, array($data->nom, $data->id_users)); } $compteur++; } } } //suppression d'un commentaire utilisateur $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)); $i = 0; while ($dcomment = $comment_user->FetchNextObject(false)) { if (isset($_POST['suppressioncomment'.$i])) { $sql = 'DELETE FROM comments WHERE id_comment = '.$connect->Param('id_comment'); $sql = $connect->Prepare($sql); $connect->Execute($sql, array($dcomment->id_comment)); } $i++; } //on teste pour voir si une ligne doit etre modifiée $testmodifier = false; $testligneamodifier = false; for ($i = 0; $i < $nblignes; $i++) { if (isset($_POST["modifierligne$i"])) { $ligneamodifier=$i; $testligneamodifier="true"; } //test pour voir si une ligne est a modifier if (isset($_POST["validermodifier$i"])) { $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++) { // radio checked 1 = Yes, 2 = Ifneedbe, 0 = No if (isset($_POST["choix$i"])) { switch ($_POST["choix$i"]) { case 1: $nouveauchoix .= "1";break; case 2: $nouveauchoix .= "2";break; default: $nouveauchoix .= "0";break; } } } $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('reponses').' 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)); } $compteur++; } } //suppression de colonnes dans la base for ($i = 0; $i < $nbcolonnes; $i++) { if ((isset($_POST["effacecolonne$i"])) && $nbcolonnes > 1){ $toutsujet = explode(",",$dsujet->sujet); //sort($toutsujet, SORT_NUMERIC); $j = 0; $nouveauxsujets = ''; //parcours de tous les sujets actuels while (isset($toutsujet[$j])) { //si le sujet n'est pas celui qui a été effacé alors on concatene if ($i != $j) { $nouveauxsujets .= ','; $nouveauxsujets .= $toutsujet[$j]; } $j++; } //on enleve la virgule au début $nouveauxsujets = substr("$nouveauxsujets", 1); //nettoyage des reponses actuelles correspondant au sujet effacé $compteur = 0; $sql = 'UPDATE user_studs SET reponses = '.$connect->Param('reponses').' WHERE nom = '.$connect->Param('nom').' AND id_users = '.$connect->Param('id_users'); $sql = $connect->Prepare($sql); while ($data = $user_studs->FetchNextObject(false)) { $newcar = ''; $ensemblereponses = $data->reponses; //parcours de toutes les réponses actuelles for ($j = 0; $j < $nbcolonnes; $j++) { $car=substr($ensemblereponses, $j, 1); //si les reponses ne concerne pas la colonne effacée, on concatene if ($i != $j) { $newcar .= $car; } } $compteur++; //mise a jour des reponses utilisateurs dans la base $connect->Execute($sql, array($newcar, $data->nom, $data->id_users)); } //mise a jour des sujets dans la base $sql = 'UPDATE sujet_studs SET sujet = '.$connect->Param('nouveauxsujets').' WHERE id_sondage = '.$connect->Param('numsondage'); $sql = $connect->Prepare($sql); $connect->Execute($sql, array($nouveauxsujets, $numsondage)); } } //recuperation des donnes de la base $sql = 'SELECT * FROM sondage WHERE id_sondage_admin = '.$connect->Param('numsondageadmin'); $sql = $connect->Prepare($sql); $sondage = $connect->Execute($sql, array($numsondageadmin)); if ($sondage !== false) { $sql = 'SELECT * FROM sujet_studs WHERE id_sondage = '.$connect->Param('numsondage'); $sql = $connect->Prepare($sql); $sujets = $connect->Execute($sql, array($numsondage)); $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)); } else { Utils::print_header(_("Error!")); bandeau_titre(_("Error!")); echo '

' . _("This poll doesn't exist !") . '

' . _('Back to the homepage of ') . ' ' . NOMAPPLICATION . '

'."\n"; bandeau_pied(); die(); } // Errors $errors = ''; if ((isset($_POST["boutonp"])) && $_POST["nom"] == "") { $errors .= '
  • ' . _("Enter a name") . '
  • '; } if (isset($erreur_prenom) && $erreur_prenom) { $errors .= '
  • ' . _("The name you've chosen already exist in this poll!") . '
  • '; } if (isset($erreur_injection) && $erreur_injection) { $errors .= '
  • ' . _("Characters \" ' < et > are not permitted") . '
  • '; } if (isset($erreur_ajout_date) && $erreur_ajout_date) { $errors .= '
  • ' . _("The date is not correct !") . '
  • '; } if ($errors!='') { Utils::print_header(_("Error!")); bandeau_titre(_("Error!")); echo '
    '."\n"; } else { Utils::print_header(''); bandeau_titre(_("Make your polls")); // session_unset(); } //Poll title, description and email values $title = (isset($_POST["boutonnouveautitre"]) && Utils::issetAndNoEmpty('nouveautitre')) ? htmlentities(html_entity_decode($_POST['nouveautitre'], ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8') : stripslashes( $dsondage->titre ); $description = (isset($_POST["nouveauxcommentaires"])) ? stripslashes(htmlentities(html_entity_decode($_POST['nouveauxcommentaires'], ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8')) : stripslashes( $dsondage->commentaires ); $email_admin = (isset($_POST["boutonnouvelleadresse"]) && Utils::issetAndNoEmpty('nouvelleadresse')) ? htmlentities(html_entity_decode($_POST['nouvelleadresse'], ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8') : stripslashes( $dsondage->mail_admin ); echo '

    '.$title.'

    '.stripslashes($dsondage->nom_admin).'

    '.$email_admin.'


    '.$description.'

    '.date("d/m/Y",strtotime($dsondage->date_fin)).'

    '."\n"; // .jumbotron //on recupere les données et les sujets du sondage $dsujet=$sujets->FetchObject(false); $dsondage=$sondage->FetchObject(false); //reformatage des données des sujets du sondage $toutsujet=explode(",",$dsujet->sujet); $toutsujet=str_replace("°","'",$toutsujet); $nbcolonnes=substr_count($dsujet->sujet,',')+1; // Table headers $thead = ''; // Button in the first td to avoid remove col on "Return" keypress) $tr_add_remove_col = ''; $border = array(); // bordure pour distinguer les mois $td_headers = array(); // for a11y, headers="M1 D4 H5" on each td $radio_title = array(); // date for // Dates poll if ($dsondage->format=="D"||$dsondage->format=="D+") { $tr_months = ''; $tr_days = ''; $tr_hours = ''; // Headers $colspan_month = 1; $colspan_day = 1; for ($i = 0; $i < count($toutsujet); $i++) { $border[$i] = false; $radio_title[$i] = strftime("%A %e %B %Y",$current); // Current date $current = $toutsujet[$i]; // Months $td_headers[$i] = 'M'.($i+1-$colspan_month); if (isset($toutsujet[$i+1]) && strftime("%B", $current) == strftime("%B", $toutsujet[$i+1]) && strftime("%Y", $current) == strftime("%Y", $toutsujet[$i+1])){ $colspan_month++; } else { $border[$i] = true; $tr_months .= ''.strftime("%B",$current).' '.strftime("%Y", $current).''; $colspan_month=1; } // Days $td_headers[$i] .= ' D'.($i+1-$colspan_day); if (isset($toutsujet[$i+1]) && strftime("%a %e",$current)==strftime("%a %e",$toutsujet[$i+1]) && strftime("%B",$current)==strftime("%B",$toutsujet[$i+1])){ $colspan_day++; } else { $rbd = ($border[$i]) ? ' rbd' : ''; $tr_days .= ''.strftime("%a %e",$current).''; $colspan_day=1; } // Hours if (strpos($dsujet->sujet,'@') !== false) { $rbd = ($border[$i]) ? ' rbd' : ''; $hour = substr($toutsujet[$i], strpos($toutsujet[$i], '@')-count($toutsujet[$i])+2); if ($hour != "") { $tr_hours .= ''.$hour.''; $radio_title[$i] .= ' - '.$hour; $td_headers[$i] .= ' H'.$i; } else { $tr_hours .= ''; } } // Remove col $tr_add_remove_col .= ''; } $border[count($border)-1] = false; // suppression de la bordure droite du dernier mois $tr_months .= ''; $tr_days .= ''; $tr_hours .= ''; // Add col $tr_add_remove_col .= ''; $thead = "\n".$tr_add_remove_col."\n".$tr_months."\n".$tr_days."\n".$tr_hours."\n"; // Subjects poll } else { $toutsujet=str_replace("@","
    ",$toutsujet); $tr_subjects = ''; for ($i = 0; isset($toutsujet[$i]); $i++) { $td_headers[$i]='';$radio_title[$i]=''; // init before concatenate // Subjects $tr_subjects .= ''.stripslashes($toutsujet[$i]).''; $border[$i] = false; $td_headers[$i] .= stripslashes($toutsujet[$i]); $radio_title[$i] .= stripslashes($toutsujet[$i]); // Remove col $tr_add_remove_col .= ''; } // Add col $tr_add_remove_col .= ''; $thead = $tr_add_remove_col.$tr_subjects.''; } // Print headers echo '

    ' . _('As poll administrator, you can change all the lines of this poll with this button ').'' . _('Edit') . ', ' . _(' remove a column or a line with ') . '' . _('Remove') . ' ' . _('and add a new column with '). ''. _('Add a column') . '

    ' . _('Finally, you can change the informations of this poll like the title, the comments or your email address.') . '

    '. $thead . ''; // Print poll results $somme[] = 0; $compteur = 0; while ($data = $user_studs->FetchNextObject(false)) { $ensemblereponses = $data->reponses; // Print name $nombase=str_replace("°","'",$data->nom); echo ''."\n"; // si la ligne n'est pas a changer, on affiche les données if (!$testligneamodifier) { for ($k = 0; $k < $nbcolonnes; $k++) { $rbd = ($border[$k]) ? ' rbd' : ''; $car = substr($ensemblereponses, $k, 1); switch ($car) { case "1": echo ''."\n"; if (isset($somme[$k]) === false) { $somme[$k] = 0; } $somme[$k]++; break; case "2": echo ''."\n"; break; default: echo ''."\n";break; } } } else { // sinon on remplace les choix de l'utilisateur par une ligne de radio pour recuperer de nouvelles valeurs // si c'est bien la ligne a modifier on met les radios if ($compteur == "$ligneamodifier") { for ($j = 0; $j < $nbcolonnes; $j++) { $car = substr($ensemblereponses, $j, 1); // variable pour afficher la valeur cochée $car_html[0]='value="0"';$car_html[1]='value="1"';$car_html[2]='value="2"'; switch ($car) { case "1": $car_html[1]='value="1" checked';break; case "2": $car_html[2]='value="2" checked';break; default: $car_html[0]='value="0" checked';break; } echo ' '."\n"; } } else { //sinon on affiche les lignes normales for ($k = 0; $k < $nbcolonnes; $k++) { $rbd = ($border[$k]) ? ' rbd' : ''; $car = substr($ensemblereponses, $k, 1); switch ($car) { case "1": echo ''."\n"; if (isset($somme[$k]) === false) { $somme[$k] = 0; } $somme[$k]++; break; case "2": echo ''."\n"; break; default: echo ''."\n";break; } } } } //a la fin de chaque ligne se trouve les boutons modifier if (!$testligneamodifier=="true") { echo ''."\n"; } //demande de confirmation pour modification de ligne for ($i = 0; $i < $nblignes; $i++) { if (isset($_POST["modifierligne$i"])) { if ($compteur == $i) { echo ''."\n"; } } } $compteur++; echo ''."\n"; } if (!$testligneamodifier=="true") { //affichage de la case vide de texte pour un nouvel utilisateur echo ''."\n"; //une ligne de checkbox pour le choix du nouvel utilisateur for ($i = 0; $i < $nbcolonnes; $i++) { echo ' '."\n"; } // Affichage du bouton de formulaire pour inscrire un nouvel utilisateur dans la base echo ''."\n"; } // Addition and Best choice //affichage de la ligne contenant les sommes de chaque colonne $tr_addition = ''; $tr_bestchoice = ''; $meilleurecolonne = 0; for ($i = 0; $i < $nbcolonnes; $i++) { if (isset($somme[$i]) && $somme[$i] > 0 ) { if (isset($somme[$i]) && $somme[$i] > $meilleurecolonne){ $meilleurecolonne = $somme[$i]; } $tr_addition .= ''; } else { $tr_addition .= ''; } } $tr_addition .= ''; //recuperation des valeurs des sujets et adaptation pour affichage $toutsujet = explode(",", $dsujet->sujet); $compteursujet = 0; $meilleursujet = ''; for ($i = 0; $i < $nbcolonnes; $i++) { if (isset($somme[$i]) && $somme[$i] > 0 && $somme[$i] == $meilleurecolonne){ $tr_bestchoice .= ''; $meilleursujet .= ', '; if ($dsondage->format == "D" || $dsondage->format == "D+") { $meilleursujetexport = $toutsujet[$i]; if (strpos($toutsujet[$i], '@') !== false) { $toutsujetdate = explode("@", $toutsujet[$i]); $meilleursujet .= strftime(_("%A, den %e. %B %Y"),$toutsujetdate[0]). ' - ' . $toutsujetdate[1]; } else { $meilleursujet .= strftime(_("%A, den %e. %B %Y"),$toutsujet[$i]); } } else { $meilleursujet.=$toutsujet[$i]; } $compteursujet++; } else { $tr_bestchoice .= ''; } } $tr_bestchoice .= ''; $meilleursujet = str_replace("°", "'", substr("$meilleursujet", 1)); $vote_str = ($meilleurecolonne > 1) ? $vote_str = _('votes') : _('vote'); // Print Addition and Best choice echo $tr_addition."\n".$tr_bestchoice.'
    '.stripslashes($nombase).' ' . _('Yes') . '() ' . _('Yes') . _(', ifneedbe') . '' . _('No') . '
    ' . _('Yes') . '() ' . _('Yes') . _(', ifneedbe') . '' . _('No') . '
    '. _("Addition") .'
    '.$somme[$i].'

    '."\n"; if ($compteursujet == 1) { echo ' ' . _("The best choice at this time is:") . ' ' . $meilleursujet . ' ' . _("with") . ' ' . $meilleurecolonne . ' ' . $vote_str . ".\n"; } elseif ($compteursujet > 1) { echo ' ' . _("The bests choices at this time are:") . ' ' . $meilleursujet . ' ' . _("with") . ' ' . $meilleurecolonne . ' ' . $vote_str . ".\n"; } echo '


    '."\n"; // Commments $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) { echo '

    ' . _("Comments of polled people") . '

    '."\n"; $i = 0; while ( $dcomment=$comment_user->FetchNextObject(false)) { echo '
    '.stripslashes($dcomment->usercomment). ' : ' . stripslashes(nl2br($dcomment->comment)) . '
    '; $i++; } echo '
    '; } echo '
    ' . _("Add a comment in the poll") . '


    '; bandeau_pied();