From 87150cc97e0279e0359c8db800d68d26db3a9242 Mon Sep 17 00:00:00 2001 From: Olivier PEREZ <olivier@olivierperez.fr> Date: Sat, 17 Jan 2015 01:22:03 +0100 Subject: [PATCH] Add column receiveNewComments to poll table, to send notification when a user wrote a comment. --- admin/migration.php | 6 +- app/classes/Framadate/Form.php | 5 + .../Migration/From_0_0_to_0_8_Migration.php | 1 - .../Migration/From_0_8_to_0_9_Migration.php | 1 - .../Migration/From_0_9_to_0_9_1_Migration.php | 51 +++++++ .../Framadate/Services/PollService.php | 6 +- app/inc/constants.php.template | 3 +- infos_sondage.php | 124 +++++++++++------- locale/de_DE/LC_MESSAGES/Studs.mo | Bin 18237 -> 18532 bytes locale/de_DE/LC_MESSAGES/Studs.po | 18 ++- locale/en_GB/LC_MESSAGES/Studs.mo | Bin 17771 -> 18057 bytes locale/en_GB/LC_MESSAGES/Studs.po | 18 ++- locale/es_ES/LC_MESSAGES/Studs.mo | Bin 16216 -> 16502 bytes locale/es_ES/LC_MESSAGES/Studs.po | 16 ++- locale/fr_FR/LC_MESSAGES/Studs.mo | Bin 19547 -> 19903 bytes locale/fr_FR/LC_MESSAGES/Studs.po | 18 ++- studs.php | 42 ++++-- 17 files changed, 233 insertions(+), 76 deletions(-) create mode 100644 app/classes/Framadate/Migration/From_0_9_to_0_9_1_Migration.php diff --git a/admin/migration.php b/admin/migration.php index 07ffb2e2..cade588b 100644 --- a/admin/migration.php +++ b/admin/migration.php @@ -1,6 +1,7 @@ <?php use Framadate\Migration\From_0_0_to_0_8_Migration; use Framadate\Migration\From_0_8_to_0_9_Migration; +use Framadate\Migration\From_0_9_to_0_9_1_Migration; use Framadate\Migration\Migration; use Framadate\Utils; @@ -9,7 +10,8 @@ include_once __DIR__ . '/../app/inc/init.php'; // List a Migration sub classes to execute $migrations = [ new From_0_0_to_0_8_Migration(), - new From_0_8_to_0_9_Migration() + new From_0_8_to_0_9_Migration(), + new From_0_9_to_0_9_1_Migration() ]; // --------------------------------------- @@ -28,8 +30,6 @@ CREATE TABLE IF NOT EXISTS `' . $prefixedMigrationTable . '` ( ) ENGINE = MyISAM DEFAULT CHARSET = utf8;'); - - output('Table ' . $prefixedMigrationTable . ' created.'); } $selectStmt = $pdo->prepare('SELECT id FROM ' . $prefixedMigrationTable . ' WHERE name=?'); diff --git a/app/classes/Framadate/Form.php b/app/classes/Framadate/Form.php index c0029977..76a4a4df 100644 --- a/app/classes/Framadate/Form.php +++ b/app/classes/Framadate/Form.php @@ -39,6 +39,11 @@ class Form */ public $receiveNewVotes; + /** + * If true, notify poll administrator when new comment is posted. + */ + public $receiveNewComments; + /** * List of available choices */ diff --git a/app/classes/Framadate/Migration/From_0_0_to_0_8_Migration.php b/app/classes/Framadate/Migration/From_0_0_to_0_8_Migration.php index dbdb59eb..013c6ddb 100644 --- a/app/classes/Framadate/Migration/From_0_0_to_0_8_Migration.php +++ b/app/classes/Framadate/Migration/From_0_0_to_0_8_Migration.php @@ -75,4 +75,3 @@ CREATE TABLE IF NOT EXISTS `user_studs` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;'); } } - \ No newline at end of file diff --git a/app/classes/Framadate/Migration/From_0_8_to_0_9_Migration.php b/app/classes/Framadate/Migration/From_0_8_to_0_9_Migration.php index ea69991f..e6aab474 100644 --- a/app/classes/Framadate/Migration/From_0_8_to_0_9_Migration.php +++ b/app/classes/Framadate/Migration/From_0_8_to_0_9_Migration.php @@ -207,4 +207,3 @@ INSERT INTO `' . Utils::table('vote') . '` } } - \ No newline at end of file diff --git a/app/classes/Framadate/Migration/From_0_9_to_0_9_1_Migration.php b/app/classes/Framadate/Migration/From_0_9_to_0_9_1_Migration.php new file mode 100644 index 00000000..19c9a255 --- /dev/null +++ b/app/classes/Framadate/Migration/From_0_9_to_0_9_1_Migration.php @@ -0,0 +1,51 @@ +<?php +namespace Framadate\Migration; + +use Framadate\Utils; + +/** + * This class executes the aciton in database to migrate data from version 0.9 to 0.9.1. + * + * @package Framadate\Migration + */ +class From_0_9_to_0_9_1_Migration implements Migration { + + function __construct() { + } + + /** + * This method could check if the execute method should be called. + * It is called before the execute method. + * + * @param \PDO $pdo The connection to database + * @return bool true is the Migration should be executed. + */ + function preCondition(\PDO $pdo) { + $stmt = $pdo->query('SHOW TABLES'); + $tables = $stmt->fetchAll(\PDO::FETCH_COLUMN); + + // Check if tables of v0.8 are presents + $diff = array_diff([Utils::table('poll'), Utils::table('slot'), Utils::table('vote'), Utils::table('comment')], $tables); + return count($diff) === 0; + } + + /** + * This methode is called only one time in the migration page. + * + * @param \PDO $pdo The connection to database + * @return bool true is the execution succeeded + */ + function execute(\PDO $pdo) { + $this->alterPollTable($pdo); + + return true; + } + + private function alterPollTable(\PDO $pdo) { + $pdo->exec(' +ALTER TABLE `' . Utils::table('poll') . '` + ADD `receiveNewComments` TINYINT(1) DEFAULT \'0\' + AFTER `receiveNewVotes`'); + } + +} diff --git a/app/classes/Framadate/Services/PollService.php b/app/classes/Framadate/Services/PollService.php index 5193081e..cf327131 100644 --- a/app/classes/Framadate/Services/PollService.php +++ b/app/classes/Framadate/Services/PollService.php @@ -138,10 +138,10 @@ class PollService { // TODO Extract this to FramaDB (or repository layer) $sql = 'INSERT INTO ' . Utils::table('poll') . ' - (id, admin_id, title, description, admin_name, admin_mail, end_date, format, editable, receiveNewVotes) - VALUES (?,?,?,?,?,?,FROM_UNIXTIME(?),?,?,?)'; + (id, admin_id, title, description, admin_name, admin_mail, end_date, format, editable, receiveNewVotes, receiveNewComments) + VALUES (?,?,?,?,?,?,FROM_UNIXTIME(?),?,?,?,?)'; $prepared = $this->connect->prepare($sql); - $prepared->execute(array($poll_id, $admin_poll_id, $form->title, $form->description, $form->admin_name, $form->admin_mail, $form->end_date, $form->format, $form->editable, $form->receiveNewVotes)); + $prepared->execute(array($poll_id, $admin_poll_id, $form->title, $form->description, $form->admin_name, $form->admin_mail, $form->end_date, $form->format, $form->editable, $form->receiveNewVotes, $form->receiveNewComments)); $prepared = $this->connect->prepare('INSERT INTO ' . Utils::table('slot') . ' (poll_id, title, moments) VALUES (?, ?, ?)'); diff --git a/app/inc/constants.php.template b/app/inc/constants.php.template index 21fd6d65..7d733cde 100644 --- a/app/inc/constants.php.template +++ b/app/inc/constants.php.template @@ -18,7 +18,7 @@ */ // FRAMADATE version -const VERSION = 0.9; +const VERSION = '0.9.1'; // Application name const NOMAPPLICATION = '<Application name>'; @@ -59,6 +59,7 @@ $ALLOWED_LANGUAGES = [ const POLL_REGEX = '/^[a-z0-9]+$/'; const CHOICE_REGEX = '/^[012]$/'; const NAME_REGEX = '/^[áà âäãåçéèêëÃìîïñóòôöõúùûüýÿæœa-z0-9_ -]+$/i'; +const BOOLEAN_REGEX = '/^(on|off|true|false|1|0)$/'; // Path to logo const LOGOBANDEAU = '<relative path to the logo file>'; diff --git a/infos_sondage.php b/infos_sondage.php index b98ccd3b..77a9343d 100644 --- a/infos_sondage.php +++ b/infos_sondage.php @@ -42,12 +42,13 @@ if ((isset($_GET['choix_sondage']) && $_GET['choix_sondage'] == 'date') || // We clean the data $poursuivre = filter_input(INPUT_POST, 'poursuivre', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => '/^(creation_sondage_date|creation_sondage_autre)$/']]); -$titre = filter_input(INPUT_POST, 'titre', FILTER_SANITIZE_STRING); -$nom = filter_input(INPUT_POST, 'nom', FILTER_SANITIZE_STRING); -$adresse = filter_input(INPUT_POST, 'adresse', FILTER_VALIDATE_EMAIL); -$commentaires = filter_input(INPUT_POST, 'commentaires', FILTER_SANITIZE_STRING); -$editable = filter_input(INPUT_POST, 'editable', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => '/^(on|off|true|false|1|0)$/']]); -$receiveNewVotes = filter_input(INPUT_POST, 'receiveNewVotes', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => '/^(on|off|true|false|1|0)$/']]); +$title = filter_input(INPUT_POST, 'titre', FILTER_SANITIZE_STRING); +$name = filter_input(INPUT_POST, 'name', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => NAME_REGEX]]); +$address = filter_input(INPUT_POST, 'adresse', FILTER_VALIDATE_EMAIL); +$description = filter_input(INPUT_POST, 'commentaires', FILTER_SANITIZE_STRING); +$editable = filter_input(INPUT_POST, 'editable', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => BOOLEAN_REGEX]]); +$receiveNewVotes = filter_input(INPUT_POST, 'receiveNewVotes', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => BOOLEAN_REGEX]]); +$receiveNewComments = filter_input(INPUT_POST, 'receiveNewComments', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => BOOLEAN_REGEX]]); // On initialise également les autres variables @@ -58,60 +59,61 @@ $erreur_injection_commentaires = false; #tests if (!empty($_POST['poursuivre'])){ - $_SESSION['form']->title = $titre; - $_SESSION['form']->admin_name = $nom; - $_SESSION['form']->admin_mail = $adresse; - $_SESSION['form']->description = $commentaires; + $_SESSION['form']->title = $title; + $_SESSION['form']->admin_name = $name; + $_SESSION['form']->admin_mail = $address; + $_SESSION['form']->description = $description; $_SESSION['form']->editable = ($editable !== null) ? true : false; $_SESSION['form']->receiveNewVotes = ($receiveNewVotes !== null) ? true : false; + $_SESSION['form']->receiveNewComments = ($receiveNewComments !== null) ? true : false; if ($config['use_smtp']==true){ - if (Utils::isValidEmail($adresse) === false) { + if (Utils::isValidEmail($address) === false) { $erreur_adresse = true; } } - if (preg_match(';<|>|";',$titre)) { + if (preg_match(';<|>|";',$title)) { $erreur_injection_titre = true; } - if (preg_match(';<|>|";',$nom)) { + if (preg_match(';<|>|";',$name)) { $erreur_injection_nom = true; } - if (preg_match(';<|>|";',$commentaires)) { + if (preg_match(';<|>|";',$description)) { $erreur_injection_commentaires = true; } // Si pas d'erreur dans l'adresse alors on change de page vers date ou autre if($config['use_smtp'] == true){ - $email_OK = $adresse && !$erreur_adresse; + $email_OK = $address && !$erreur_adresse; } else{ $email_OK = true; } - if ($titre && $nom && $email_OK && ! $erreur_injection_titre && ! $erreur_injection_commentaires && ! $erreur_injection_nom) { + if ($title && $name && $email_OK && ! $erreur_injection_titre && ! $erreur_injection_commentaires && ! $erreur_injection_nom) { - if ( $poursuivre == "creation_sondage_date" ) { - header("Location:choix_date.php"); + if ( $poursuivre == 'creation_sondage_date' ) { + header('Location:choix_date.php'); exit(); } - if ( $poursuivre == "creation_sondage_autre" ) { - header("Location:choix_autre.php"); + if ( $poursuivre == 'creation_sondage_autre' ) { + header('Location:choix_autre.php'); exit(); } } else { // Title Erreur ! - Utils::print_header( _("Error!").' - '._("Poll creation (1 on 3)") ); + Utils::print_header( _('Error!').' - '._('Poll creation (1 on 3)') ); } } else { // Title OK (formulaire pas encore rempli) - Utils::print_header( _("Poll creation (1 on 3)") ); + Utils::print_header( _('Poll creation (1 on 3)') ); } -bandeau_titre( _("Poll creation (1 on 3)") ); +bandeau_titre( _('Poll creation (1 on 3)') ); /* * Préparation des messages d'erreur @@ -141,32 +143,39 @@ $errors = array( ); if (!$_SESSION['form']->title && !empty($_POST['poursuivre'])) { - $errors['title']['aria'] = 'aria-describeby="poll_title_error" '; $errors['title']['class'] = ' has-error'; - $errors['title']['msg'] = '<div class="alert alert-danger" ><p id="poll_title_error">' . _("Enter a title") . '</p></div>'; + $errors['title']['aria'] = 'aria-describeby="poll_title_error" '; + $errors['title']['class'] = ' has-error'; + $errors['title']['msg'] = '<div class="alert alert-danger" ><p id="poll_title_error">' . _('Enter a title') . '</p></div>'; } elseif ($erreur_injection_titre) { - $errors['title']['aria'] = 'aria-describeby="poll_title_error" '; $errors['title']['class'] = ' has-error'; - $errors['title']['inject'] = '<div class="alert alert-danger"><p id="poll_title_error">' . _("Characters < > and \" are not permitted") . '</p></div>'; + $errors['title']['aria'] = 'aria-describeby="poll_title_error" '; + $errors['title']['class'] = ' has-error'; + $errors['title']['inject'] = '<div class="alert alert-danger"><p id="poll_title_error">' . _('Characters < > and " are not permitted') . '</p></div>'; } if ($erreur_injection_commentaires) { - $errors['description']['aria'] = 'aria-describeby="poll_comment_error" '; $errors['description']['class'] = ' has-error'; - $errors['description']['msg'] = '<div class="alert alert-danger"><p id="poll_comment_error">' . _("Characters < > and \" are not permitted") . '</p></div>'; + $errors['description']['aria'] = 'aria-describeby="poll_comment_error" '; + $errors['description']['class'] = ' has-error'; + $errors['description']['msg'] = '<div class="alert alert-danger"><p id="poll_comment_error">' . _('Characters < > and " are not permitted') . '</p></div>'; } if (!$_SESSION['form']->admin_name && !empty($_POST['poursuivre'])) { - $errors['name']['aria'] = 'aria-describeby="poll_name_error" '; $errors['name']['class'] = ' has-error'; - $errors['name']['msg'] = '<div class="alert alert-danger"><p id="poll_name_error">' . _("Enter a name") . '</p></div>'; + $errors['name']['aria'] = 'aria-describeby="poll_name_error" '; + $errors['name']['class'] = ' has-error'; + $errors['name']['msg'] = '<div class="alert alert-danger"><p id="poll_name_error">' . _('Enter a name') . '</p></div>'; } elseif ($erreur_injection_nom) { - $errors['name']['aria'] = 'aria-describeby="poll_name_error" '; $errors['name']['class'] = ' has-error'; - $errors['name']['msg'] = '<div class="alert alert-danger"><p id="poll_name_error">' . _("Characters < > and \" are not permitted") . '</p></div>'; + $errors['name']['aria'] = 'aria-describeby="poll_name_error" '; + $errors['name']['class'] = ' has-error'; + $errors['name']['msg'] = '<div class="alert alert-danger"><p id="poll_name_error">' . _('Characters < > and " are not permitted') . '</p></div>'; } if (!$_SESSION['form']->admin_mail && !empty($_POST['poursuivre'])) { - $errors['email']['aria'] = 'aria-describeby="poll_name_error" '; $errors['email']['class'] = ' has-error'; - $errors['email']['msg'] = '<div class="alert alert-danger"><p id="poll_email_error">' . _("Enter an email address") . '</p></div>'; + $errors['email']['aria'] = 'aria-describeby="poll_name_error" '; + $errors['email']['class'] = ' has-error'; + $errors['email']['msg'] = '<div class="alert alert-danger"><p id="poll_email_error">' . _('Enter an email address') . '</p></div>'; } elseif ($erreur_adresse && !empty($_POST['poursuivre'])) { - $errors['email']['aria'] = 'aria-describeby="poll_email_error" '; $errors['email']['class'] = ' has-error'; - $errors['email']['msg'] = '<div class="alert alert-danger"><p id="poll_email_error">' . _("The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll.") . '</p></div>'; + $errors['email']['aria'] = 'aria-describeby="poll_email_error" '; + $errors['email']['class'] = ' has-error'; + $errors['email']['msg'] = '<div class="alert alert-danger"><p id="poll_email_error">' . _('The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll.') . '</p></div>'; } /* @@ -175,9 +184,9 @@ if (!$_SESSION['form']->admin_mail && !empty($_POST['poursuivre'])) { // REMOTE_USER ? if (USE_REMOTE_USER && isset($_SERVER['REMOTE_USER'])) { - $input_name = '<input type="hidden" name="nom" value="'.$_SESSION['form']->admin_name.'" />'.stripslashes($_SESSION['form']->admin_name); + $input_name = '<input type="hidden" name="name" value="'.$_SESSION['form']->admin_name.'" />'.$_SESSION['form']->admin_name; } else { - $input_name = '<input id="yourname" type="text" name="nom" class="form-control" '.$errors['name']['aria'].' value="'.stripslashes($_SESSION['form']->admin_name).'" />'; + $input_name = '<input id="yourname" type="text" name="name" class="form-control" '.$errors['name']['aria'].' value="'.$_SESSION['form']->admin_name.'" />'; } if (USE_REMOTE_USER && isset($_SERVER['REMOTE_USER'])) { @@ -195,6 +204,10 @@ if ($_SESSION['form']->receiveNewVotes) { $receiveNewVotes = 'checked'; } +if ($_SESSION['form']->receiveNewComments) { + $receiveNewComments = 'checked'; +} + // Display form echo ' <div class="row"> @@ -202,25 +215,25 @@ echo ' <form name="formulaire" id="formulaire" action="' . Utils::get_server_name() . 'infos_sondage.php" method="POST" class="form-horizontal" role="form"> <div class="alert alert-info"> - <p>'. _("You are in the poll creation section.").' <br /> '._("Required fields cannot be left blank.") .'</p> + <p>'. _('You are in the poll creation section.').' <br /> '._('Required fields cannot be left blank.') .'</p> </div> <div class="form-group'.$errors['title']['class'].'"> - <label for="poll_title" class="col-sm-4 control-label">' . _("Poll title") . ' *</label> + <label for="poll_title" class="col-sm-4 control-label">' . _('Poll title') . ' *</label> <div class="col-sm-8"> - <input id="poll_title" type="text" name="titre" class="form-control" '.$errors['title']['aria'].' value="'.stripslashes($_SESSION['form']->title).'" /> + <input id="poll_title" type="text" name="titre" class="form-control" '.$errors['title']['aria'].' value="'.$_SESSION['form']->title.'" /> </div> </div> '.$errors['title']['msg'].' <div class="form-group'.$errors['description']['class'].'"> - <label for="poll_comments" class="col-sm-4 control-label">'. _("Description") .'</label> + <label for="poll_comments" class="col-sm-4 control-label">'. _('Description') .'</label> <div class="col-sm-8"> - <textarea id="poll_comments" name="commentaires" class="form-control" '.$errors['description']['aria'].' rows="5">'.stripslashes($_SESSION['form']->description).'</textarea> + <textarea id="poll_comments" name="commentaires" class="form-control" '.$errors['description']['aria'].' rows="5">'.$_SESSION['form']->description.'</textarea> </div> </div> '.$errors['description']['msg'].' <div class="form-group'.$errors['name']['class'].'"> - <label for="yourname" class="col-sm-4 control-label">'. _("Your name") .' *</label> + <label for="yourname" class="col-sm-4 control-label">'. _('Your name') .' *</label> <div class="col-sm-8"> '.$input_name.' </div> @@ -229,7 +242,7 @@ echo ' if($config['use_smtp']==true){ echo ' <div class="form-group'.$errors['email']['class'].'"> - <label for="email" class="col-sm-4 control-label">'. _("Your email address") .' *<br /><span class="small">'. _("(in the format name@mail.com)") .'</span></label> + <label for="email" class="col-sm-4 control-label">'. _('Your email address') .' *<br /><span class="small">'. _('(in the format name@mail.com)') .'</span></label> <div class="col-sm-8"> '.$input_email.' </div> @@ -238,20 +251,29 @@ if($config['use_smtp']==true){ } echo ' <div class="form-group"> - <div class="col-sm-offset-1 col-sm-11"> + <div class="col-sm-offset-4 col-sm-8"> <div class="checkbox"> <label> - <input type=checkbox name="editable" '.$editable.' id="editable">'. _("Voters can modify their vote themselves.") .' + <input type=checkbox name="editable" '.$editable.' id="editable">'. _('Voters can modify their vote themselves.') .' </label> </div> </div> </div>'; if($config['use_smtp']==true){ echo '<div class="form-group"> - <div class="col-sm-offset-1 col-sm-11"> + <div class="col-sm-offset-4 col-sm-8"> + <div class="checkbox"> + <label> + <input type=checkbox name="receiveNewVotes" '.$receiveNewVotes.' id="receiveNewVotes">'. _('To receive an email for each new vote.') .' + </label> + </div> + </div> + </div>'; + echo '<div class="form-group"> + <div class="col-sm-offset-4 col-sm-8"> <div class="checkbox"> <label> - <input type=checkbox name="receiveNewVotes" '.$receiveNewVotes.' id="receiveNewVotes">'. _("To receive an email for each new vote.") .' + <input type=checkbox name="receiveNewComments" '.$receiveNewComments.' id="receiveNewComments">'. _('To receive an email for each new comment.') .' </label> </div> </div> @@ -263,7 +285,7 @@ echo ' <button name="poursuivre" value="'. $choix_sondage .'" type="submit" class="btn btn-success" title="'. _('Go to step 2') . '">'. _('Next') . '</button> </p> - <script type="text/javascript"> document.formulaire.titre.focus(); </script> + <script type="text/javascript">document.formulaire.title.focus();</script> </form> </div> diff --git a/locale/de_DE/LC_MESSAGES/Studs.mo b/locale/de_DE/LC_MESSAGES/Studs.mo index 1fae2345c1667109f2872927c3b1ccbffd98b39a..6a28a3381a354bb71fbb13c0f4564970b96c6304 100644 GIT binary patch delta 4555 zcmY+`3slzi9mnw>0-_HWA23BU^Z`X~anUrg!f-iMVi=+_wY(&F10fM5yZ9&>nxIo2 z$u_fwq^V@nFr`hJiZRI+JMGk=t!!u8IofrzZJwQucJ}@}{~tT{KYpIq@AvnA`Tf7Y z-~X>2I|Kf{E5Lg>DyYe@y+>{*PxUuuNPsb)glVranUTh{<2YP}Um$<XoG4>-$a0Lu zYII>EhTwh-#Dl2gj#y7&4E;_VXpGl<N@FNHu3#vBj|0#(*x5fA-Skti5bs6CXm;5B zdoYOpL5#qo*0(U4{zcUJe?eXU8fri{u|M}WuG^d^kHiuDMLG__JnLfA1=b_yn5{Sn z_hB-&;#m9;HLx3~iUe|zV2nc@pNM+$EL5cnCHFTKG~%!xHGpHN6S|Q<=3{<T%70)y z{tNXaLn)h%k4GIp8C8h_WDKSVb^Z!eWj3N7V2ABDqgNw5PD3R*g}PuThT~_*AM-Uo zda@wuskskD{e3LzNmFqp&cJeP!%^rN=A4&<8|hEO71)J(;EWjRuNxOq7r78M;xg2e zY{tb{hq}QPd>IReJ8R?`>iF+a19da{@tBCJ$b8gdT!p$`6{<2dw%;&<`l}?n*`bmi zM4foT9&ir((eJ`d*lqXcF@d`9Ow{?sr~#DOel6;4c;4=Bw*7Y006J0U^?GS&3cf<B zX1=w$sH+xLJgU?)P*YHh8sI`y#VTz7Nz@{(M_uPd)QwJ}=Dr&>b-l<7X1+ij@4ZPw z7mOI`9550S=x3rzHWyXm1*j9&pe|gCy3k(hQPd4OY`+Kfgnva1^t$Z_vM_X=Xw206 zpF|^#9rKXtnypxmE$G1ven#U%$n=|P)Ew_bUHBZnf$w7uZf0fG;d$JGGk9fm-uqaJ zS5XgEz(s?(zbT@jk<Y`2u?%(KMbs3ek1^&^oP!#9J8H_hQ6H)vR7HAGrT!XK(HoeA zVU&|1n~A6gEJ9VTQgVM&OG9(qgn`(C{4uZclYzg-Nq7^dU>2j&hi3!M#umH>|BI@~ zor%s3a&RF1BGio^!7SW>`FH}oDKx&Pp%NuC+z@;KwR#`KaX1$>ux-e!m<FVZ<~3wm zO%H0Wzd==^AEVP0MWZT~he5aigK@F#FH5HWce1059e)ep-L?ljlS)<C{~YSI47<a5 zvSFyzoq)P<HV(i7)N#c~)y+~=iMJuk!0baU;tu3fVg87GgUmN~P=B2m!V1)r3`VVm z@wgDDqDI_;da@&^3cZbb-@B}zqAK`rR3#$Po$JP<)<QZC#L37kndzv3R(fe@ZuX!C za2$0)59$d&v;BV}fBXwVQ<lNPP)X;bO1%g*WsRsO-;Wy5aioamUG(5}<l#+prZa`! zsWkM&%TcA-fST()r~_ZXFnkAjA<PHp#_OmXhOj_1B~hq~q@b=h1-0snP{*&q2&_d7 zY&UX!uW7Y^(Tl7fa|KmmH;)yL!%#OGi@X449F|}){tVBcZj{eL>W{1NC0v7*=$_#G zbGr$(2KHOqFjVh<Hw~5YLu|x9;nTQ!qA{27OVr3u-{oAO3w6U!@JINa?Pv3DX)!K9 zU9SYS_*SAGs2-!xhmm*)WAy&F)6mF2K%Mw8K8u%8CzjmpRG=Jnfg04B*^Wc;klo*b z(e(d-nzE~?Dg6)LhVDtu^%78PEe*Z8Kt2tv%B83ix1(0;UetTuj9S$fti3pl{#Vvu zzCP-YL|rcnHRlDW^A_3uTI&|nK%4HN{;VT&j2*h+Wz>bPqDmfcuX8~+YVHy-2D4FX zqZoBuDGtJFyMK%AH=+h|04b(v!>RZs>N=VCQU6Ue^6qoy^b&gLe~!1KE1Rz&CZZ}+ zhDY#moQ?65oi$Q}uhW0vey6nG;$!q9bDWabqP`>BQFFfwpTYxP8dWq#P4WM8Xd1DZ zekbY)OIcxB8*5P?swXfG>rf>;jH=98<aIJ1VKN3XYMEv&Mm_On)PwB9e&{_+V>FFc zWZ|10oR2}&X$~$z-X!xTuE5Wcdze{2w*P3M=C}p5`cGplo<)`XG8W^|T>b^b3LJ&6 zAP?p>7ij4HzJx!)k1z<wOmm(f8TG_Ps1w(rZq$T&@|TcenUkoBTt_Z!BBnc~AA*7O zV^IT-!vNIwqP~rdPTMe0|EB49+O|V5*tSc3*TM&T_tM)%^oh}J7ZYv2BrlK(vVv&q zAYP(+_H74fuvq+)rQv93l-$2<;`d#$%-?hBujV$gloaT4h1$c`K=u(8bq7)HRB*jV zs!JQurf+25R!8GkL|+4KC&?p3D}}O~?L^xV5>HN$5k%Xs$z6J!H)zZt<>c0lcgnxb z<F}Li#_5__*7c}~)%F${OLE9X@*p`&v@Iab<XNJ3a3R@4w5t5&d=JaWCDKI>6K%gE z$4NcWS3%3}adL_@k#v$zPLreLNs>UK$SQJy@ZS5k*ZKXeZEwW=B#n5x`FV}(CffAb znMr<5Sb6?UZ?@ivYNzY}UB~Ze!t3+@jjx<pL*6Dy<W2Gl=})rBBoa!tl0_s^Z^|JW z8DzSaV`D^+_hmZThCBFwN7}Z&#wnzQY$lmR+e&hb+)th%=ZUsBl1N4oz4hUwl`JO@ zlbyszZrQy4|EcL?S46_d1hSSqL1vTZNHo!xeE_+2i?N+l^pJD5KMwoZw%9-p+WvTJ z4X*aD2pa8V33-S-Pwpmt+dDMQkV=wA#*n`4Q5suF3HfQ?PMmAoui`I=%l6&Um6qmm zop1HzFY#2h-E<F+4qaJZURvT=;#pr=?Mq1-8@Q~p$~QBqA$;9qB}=Mr{Ttt(li~)| zR8>}&a`e*5)vHS@s(q<R32ir$vSNLcatnf%b)Kp6)#Wxs{NUVDUs3J^U(~eJh##Kp Io0U89e|qWUTL1t6 delta 4423 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 diff --git a/locale/de_DE/LC_MESSAGES/Studs.po b/locale/de_DE/LC_MESSAGES/Studs.po index 68fb4da7..b07ca275 100644 --- a/locale/de_DE/LC_MESSAGES/Studs.po +++ b/locale/de_DE/LC_MESSAGES/Studs.po @@ -616,10 +616,24 @@ msgid "Poll's participation" msgstr "Beteiligung an der Umfrage" msgid "" -"has filled a line.\n" +"filled a vote.\n" "You can find your poll at the link" msgstr "" -" hat eine Zeile ausgefüllt.\n" +"hat eine Zeile ausgefüllt.\n" +"Sie finden Ihre Umfrage unter dem folgenden Link:" + +msgid "" +"updated a vote.\n" +"You can find your poll at the link" +msgstr "" +"updated a vote.\n" +"Sie finden Ihre Umfrage unter dem folgenden Link:" + +msgid "" +"wrote a comment.\n" +"You can find your poll at the link" +msgstr "" +"wrote a comment.\n" "Sie finden Ihre Umfrage unter dem folgenden Link:" msgid "Thanks for your confidence." diff --git a/locale/en_GB/LC_MESSAGES/Studs.mo b/locale/en_GB/LC_MESSAGES/Studs.mo index 1586cb4a772491b97cc925a6cee57ce55cceabd1..5c291f84e9b447c0d8eef1762a2d77299774868d 100644 GIT binary patch delta 4966 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 aotqdN@#A57FpMdfzqsx-*ZTi|sQ&@b2@z!g delta 4835 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 Feg)N_;0OQ! diff --git a/locale/en_GB/LC_MESSAGES/Studs.po b/locale/en_GB/LC_MESSAGES/Studs.po index 042f7a5a..77c12900 100644 --- a/locale/en_GB/LC_MESSAGES/Studs.po +++ b/locale/en_GB/LC_MESSAGES/Studs.po @@ -670,10 +670,24 @@ msgid "Poll's participation" msgstr "Poll's participation" msgid "" -"has filled a line.\n" +"filled a vote.\n" "You can find your poll at the link" msgstr "" -"has filled a line.\n" +"filled a vote.\n" +"You can find your poll at the link" + +msgid "" +"updated a vote.\n" +"You can find your poll at the link" +msgstr "" +"updated a vote.\n" +"You can find your poll at the link" + +msgid "" +"wrote a comment.\n" +"You can find your poll at the link" +msgstr "" +"wrote a comment.\n" "You can find your poll at the link" msgid "Thanks for your confidence." diff --git a/locale/es_ES/LC_MESSAGES/Studs.mo b/locale/es_ES/LC_MESSAGES/Studs.mo index 2339be802a393b6fa9b554c12934e075f5e5ade8..e87839f6f74f461eed02d4b46e54d951ddf4640a 100644 GIT binary patch delta 2934 zcmZYBdrXye9LMqR8OZ&hDdx2RK`v@&UNS`xBy}y7T$0SDNOD9B50_B#dW=+Nr8G}~ zCM_)O;>fa7>dH2;(s{|v6|Lz~SIsPK<SJPjuJ_0D{85XY^Spk)=Xrj&@9+COhi}*2 zSnu*(=pEW<{O#d8nD0Y9%r0Vi6bJsUxXn`WXH3VtV)<ew#^6lkWAixB)XFd%D=-9W zaR9DHb=m0DTd|j!&pxIwhzqAM0)Ikv^c#lZ4V;bLPCdWpord-}GAAp=ez+W?aSN*5 z4(x-i$j3h9z<~BSYC;{D&iK|zA%znIxGHl{9h9Ob<V9|=TBlx*TFFbOi0yPdgj#ur zbNxHi!mgm&hZ43>jKjNe0LC!BjiSKfEDP0O1`fm}*c+cit+WZ%a5riNpI{<(peEdf zn!s)3V_`H_1o~qcj=*wk!gvhfqE8KzD9prRs0+`aX1X26;H&r=p2fac6&GAlJ?g$@ z)C5~lTd>!;egLmiKZcsvAsXxcBaUD6CH_^MIO&|2#PW1wE^4I@b6`wc=+tXak$M5O z!dH;KtqpZwJ8H{1P|0}#l^a)4TM$Bp-LO8WdU8MFua3q#7pCD*>T^-&*P=RVz**RW zTIp3JiuM=YhcW$wTQ(83g$3xvDpW)-;SkimY3q_WDA%%l6h>1hK@T?LChW!yxPe5V zXp!`)&?TXsjx?Nx8P56Ts7S1Gt~cNa>W!#{97QecYkV1RViNiqNZ~vR0aSx7Ou*!O z%$~%lI0xUx+1QQqF#le&DYzFW;;%?BERE%AD{_!AYz{_ZB`T7ua3R(Qulwu@1+6?Z zfy~FHn1%;&7+%7W7)`3DVkT-Oi%=`r?D#I;PyH;0U<mP6a)%>BSgcdeKt48(Lxi6H zLgzy9ofABEs3fdHZOuwl=-aRd?nkZYpmV+*$520pf4B%O7E$j^W`8lC*(zzbpd!$M zT(Wmi`DbS+C~GgH2JS@qurAaKW+0iO2#iOfY^693H=!nW7<*tlhT(Bsf@hrb;|ZIR zH4BwXkD|6}Df*N&brdv#W~7a^qW17ODs<;jS$+#MFrEETt`s_ML_HNBU<4jP4Riwa zKKKC@flk!IZlks?QSV>PY%0GjvJm;$Qyi4Fji?p9g^X?cP!s+Jd1csDBuM5WQO08` zD(Q+GSEIJD8A%H}iDU5^s^7%n#6O%u+VJ4sj6&U*g*&kboA4Hr__mE@>;Cug2|R>~ zP#ob=hhs4hGjSjKP?5|aY?}BK)C*`XDnd(q6twa>)Buf`LJ|c~1D#{zBk_CG0M~FM z{*Dp2a#S$Hb*QA;iYXXCE#w?(f`2>L2lI$%3v!WnlKDy~sH3&m3pb&XqZyTa@1bUT z8nu$ksL<a;O}rQJB{-IZ>Np>JVl_UGb*T1k9+BRdihOJ$2PWV%F9qFDkGpUeD!KC5 zD0N(k`Za7p^2QFLCUyzyup4u6J&(jTJc?Rb!2`hvdQp*EfirQfbN&>L)bsxp1w|l) z45BZKK@E_LMA;VLb=-<X(bhjm!s33%E>wuKCYU{o^RW~!VhK*?_2|VmT!@1*%^1?w z;4sFw0EJY%fZDULNx?l&LpSx&Sco||7<b?rJb)T#3~!mqxD%O+oyQ!E%MLD}0F@IP zQSIAM5j}yv1r&aypjT!dy(m=EF&<~3UMybJ^IC(N&~{XEzKObjpW{b3gZg3AizzZE z*gh7O6LF|<l2Kccmcu_%E(%Q8_V^2;K1<(4X&v8He3kdR`RZ>G-}!e+!QZcDe{S?+ zu2z3z^l;Z3f%fPImutI!w!2?s6F2EWFn^W%5!dU1Pu+j^i7qQI_mm_QC#<Nb@t;mi ziCSDyZHueRN{UzduP2tfmsge)*Zlhi|NJ2Xd)8K0)OcvLsAAbNkGIDEW#Z64?T}vv n`OCA5qAKZOMVZIzdD?$6yCU{KJ$U>tW>5A{m>mDVE;#=WQ3GEy delta 2850 zcmXZddrXye9LMqR@t`7z8sY^IJ)j;%R7g<M6fE(UN-}jY4Fv(=%o8Ze#Y-MaYel(c z$CPq2yx<?1l@nHDNv^eJQ&)4DWnww)O0ALR)aB^?;XG&OJg?vLd!FCz`};o6xm)l0 zZfD?nbl985=P17s{4#o*{fJ8<IPf_aWi}4K#ANKkM=*YXS$~{_d~GHNn%W}li%+8) z^Dq`yqq?ki&g*fIS-{?=5YL4Z7>-|{I{F&>;J28I9nN{`z@COS4VjBAz+t!&Bk@^O zyRA4F>yfYR<G_G+3^k!vOlExhih`Gl`;H#&QU?oA6Usp@S)OxVhFZx+RK&JBHlkME z>RdmATG%;M`&$@>cW@})$Nr3OgNP@KvjkLwi5Q0qF&c|eE3H8_+>KhnK}^I})P%2~ zCU713+AkawfqUq~{&eQY8XSc;F`$NS?plfws0;b1nbu)CK8Nq%DI9{iF`*Teq3)|i zO>hTl3mTm3`>~7j<EV)>(pdL5IW`X={+p<H*Qpr6@^oV&YNg2>7}MrB=POW=+JG#| zwjq7nYpDAUqqeLSm7MLU+&GWgf}2Rx?Y46sHjMbIqZsbe1uu@p>8SbwR7aJVgF8?w zJ&)R&?{O0TiQ2Nb;h`;@iWQvaq9S@0lkg|h*10(-=Mn-GrclVnQmn<7umg8v3B6LZ z-%+7+lOTFJ!f`$hK-I5AMPik6y%HyKUX5DF5!Aw3a35a9(HN*Ch38TTq8eO54~8X} zt;4an0$;{l?7&r+I@0V(Y`~d#5eb5Yvs`V32N}aMupcf%MRFAuVp-^Vz|K+7%5UKk ze9B`s9uMFIJd3H=iQ_Pyl-Ek;qE_H@+=Fh;Poa{!6{q4SNZ0m{Qy<MfXe(klgzNdA zML`Yb^;9qkR1&U4g|+|{@^z?{lsolRc*n(-;ackbW6Wmb1yqtoFiWjC7O65XDng4< zNm`738Q=UA=)<<4UML4pD{eueYPV1;aeG4(nt{DJ&qPf;8_RLAQ{RG0&Nfu;Ttp50 zD=J62Q4@$EoB_&~KtX$!jS5vhDy!>oG9E|e#%0G|?2n#;R8&W^Q3K6KJ^zKM2>4M8 z+m70*L#T;;=6HEL@z<ZqZ&WBtqdDn=W00{d1vTU4$ScCikzm+PoQ}s(Np{Wg9_nd| zA#vDlTYwqpL-l(I`(iU{Yfere{<^V^ii3C!_hVfOQNe*MTMZ`RYMhFS&|XxBr*JNQ zjPK)rs7Rh5e46;DsQ1b@s0jUxia<B2|L6em^^!zssDbj>_<pz+HGmIa#Elq^cTpkk zMkQ5bTIfZRhFVA-YJyu)*WW^IK|Av9u^Xs<9^fDhxE~EAM+_?YCZcA#2(^-8ROo9_ zGv9**$C^+bU%-L*H#T55s(l0dp!<(uI(~$jKqu;Y7?p<^-$qg(YIYXY@n6Wx&SKd( z(!w%O6Dz<Ma2q~>5AhAm;?YpYmrxPxL`Cj4F2x5<{laOXr)n800`-`o=l>N78lc^| z;Ro#EJdz9}O7;-v;pE3cZb5~(4WGxWSccEc;B}3kV+AJjS}epyq)WSxq?e^V9!l=j zn8^6Hi-PvN8Kdw6%*QjRi4C2_9}lLZ2Ko@Qa5!%p#<qN%gL{#*uuJI0UYVix$*73V zN4+77P!TG{z#0mE3R=;5)QhDP^}KeWCNzZ66xz|KhAECyFpTpVsCJpCT*yWZv;tko ze0n}>IMzDlO<2v}&Z`k8lba~-<hPBV0&$d|KE?bBdP<=`t^L8G$mK2zwnnD78c*Md zeBI?b5Zn|sOl^9y{YY?c)MD4+(;ZR&4vwp=vh`KIlA^6vUbNY>-skt1mUxOheqTkf rBhecikhCHAUQ*oY2T6a#M{MNg8eeHe>E__g%)($!Rz<MioKgP+p{F?q diff --git a/locale/es_ES/LC_MESSAGES/Studs.po b/locale/es_ES/LC_MESSAGES/Studs.po index 28f5fd2f..c5547717 100644 --- a/locale/es_ES/LC_MESSAGES/Studs.po +++ b/locale/es_ES/LC_MESSAGES/Studs.po @@ -393,12 +393,26 @@ msgstr "Participación a la encuesta" #: studs.php:171 #: studs.php:211 msgid "" -"has filled a line.\n" +"filled a vote.\n" "You can find your poll at the link" msgstr "" "acaba de llenar una línea.\n" "Usted puede retroceder a su encuesta con el enlace siguiente" +msgid "" +"updated a vote.\n" +"You can find your poll at the link" +msgstr "" +"updated a vote.\n" +"Usted puede retroceder a su encuesta con el enlace siguiente" + +msgid "" +"wrote a comment.\n" +"You can find your poll at the link" +msgstr "" +"wrote a comment.\n" +"Usted puede retroceder a su encuesta con el enlace siguiente" + #: studs.php:246 #: adminstuds.php:567 msgid "Initiator of the poll" diff --git a/locale/fr_FR/LC_MESSAGES/Studs.mo b/locale/fr_FR/LC_MESSAGES/Studs.mo index f3c7d063376b25d0656018a8819ca8818169e5cf..d93851fc1fc52afe555a580d907699086206b099 100644 GIT binary patch delta 4992 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 delta 4841 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 A&;S4c diff --git a/locale/fr_FR/LC_MESSAGES/Studs.po b/locale/fr_FR/LC_MESSAGES/Studs.po index 551705da..09100a6e 100644 --- a/locale/fr_FR/LC_MESSAGES/Studs.po +++ b/locale/fr_FR/LC_MESSAGES/Studs.po @@ -670,10 +670,24 @@ msgid "Poll's participation" msgstr "Participation au sondage" msgid "" -"has filled a line.\n" +"filled a vote.\n" "You can find your poll at the link" msgstr "" -"vient de remplir une ligne.\n" +"vient de voter.\n" +"Vous pouvez retrouver votre sondage avec le lien suivant" + +msgid "" +"updated a vote.\n" +"You can find your poll at the link" +msgstr "" +"vient de mettre à jour un vote.\n" +"Vous pouvez retrouver votre sondage avec le lien suivant" + +msgid "" +"vient de rédiger un commentaire.\n" +"You can find your poll at the link" +msgstr "" +"wrote a comment.\n" "Vous pouvez retrouver votre sondage avec le lien suivant" msgid "Thanks for your confidence." diff --git a/studs.php b/studs.php index 09bddab7..76f36224 100644 --- a/studs.php +++ b/studs.php @@ -25,6 +25,12 @@ use Framadate\Utils; include_once __DIR__ . '/app/inc/init.php'; +/* Constants */ +/* --------- */ +const UPDATE_VOTE = 1; +const ADD_VOTE = 2; +const ADD_COMMENT = 3; + /* Variables */ /* --------- */ @@ -49,19 +55,36 @@ $mailService = new MailService($config['use_smtp']); * * @param $poll stdClass The poll * @param $mailService MailService The mail service + * @param $name string The name user who triggered the notification + * @param $type int cf: Constants on the top of this page */ -function sendUpdateNotification($poll, $mailService) { - if ($poll->receiveNewVotes && !isset($_SESSION['mail_sent'][$poll->id])) { +function sendUpdateNotification($poll, $mailService, $name, $type) { + if (!isset($_SESSION['mail_sent'])) { + $_SESSION['mail_sent'] = []; + } + + if ($poll->receiveNewVotes && (!isset($_SESSION['mail_sent'][$poll->id]) || $_SESSION['mail_sent'][$poll->id] !== true)) { $subject = '[' . NOMAPPLICATION . '] ' . _('Poll\'s participation') . ' : ' . $poll->title; - $message = html_entity_decode('"$nom" ', ENT_QUOTES, 'UTF-8') . - _('has filled a line.\nYou can find your poll at the link') . " :\n\n" . - Utils::getUrlSondage($poll->admin_poll_id, true) . " \n\n" . - _('Thanks for your confidence.') . "\n" . NOMAPPLICATION; + + $message = $name . ' '; + switch ($type) { + case UPDATE_VOTE: + $message .= _('updated a vote.\nYou can find your poll at the link') . " :\n\n"; + break; + case ADD_VOTE: + $message .= _('filled a vote.\nYou can find your poll at the link') . " :\n\n"; + break; + case ADD_COMMENT: + $message .= _('wrote a comment.\nYou can find your poll at the link') . " :\n\n"; + break; + } + $message .= Utils::getUrlSondage($poll->admin_id, true) . "\n\n"; + $message .= _('Thanks for your confidence.') . "\n" . NOMAPPLICATION; $mailService->send($poll->admin_mail, $subject, $message); - $_SESSION["mail_sent"][$poll->id] = true; + $_SESSION['mail_sent'][$poll->id] = true; } } @@ -108,7 +131,7 @@ if (!empty($_POST['save'])) { // Save edition of an old vote $result = $pollService->updateVote($poll_id, $editedVote, $name, $choices); if ($result) { $message = new Message('success', _('Update vote successfully.')); - sendUpdateNotification($poll, $mailService); + sendUpdateNotification($poll, $mailService, $name, UPDATE_VOTE); } else { $message = new Message('danger', _('Update vote failed.')); } @@ -129,7 +152,7 @@ if (!empty($_POST['save'])) { // Save edition of an old vote $result = $pollService->addVote($poll_id, $name, $choices); if ($result) { $message = new Message('success', _('Update vote successfully.')); - sendUpdateNotification($poll, $mailService); + sendUpdateNotification($poll, $mailService, $name, ADD_VOTE); } else { $message = new Message('danger', _('Update vote failed.')); } @@ -153,6 +176,7 @@ if (isset($_POST['add_comment'])) { $result = $pollService->addComment($poll_id, $name, $comment); if ($result) { $message = new Message('success', _('Comment added.')); + sendUpdateNotification($poll, $mailService, $name, ADD_COMMENT); } else { $message = new Message('danger', _('Comment failed.')); } -- GitLab