Commit 9ce72330 authored by theo lem's avatar theo lem
Browse files

Various email changes

parent e071aac5
......@@ -16,6 +16,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
* Views : /suspicious, displays unpublished forms from above.
* Views : /quarantine, displays forms in quarantine.
* Number of forms / user limit
* Additional filter/check on user email
* Variables can now be reset from the adminstration pannel
### Changed
* the notification email is now loaded from an external template.
### Fixed
* Empty "Share" tab on forms (#106)
......
......@@ -47,19 +47,54 @@ function framaforms_schema(){
* Implements hook_install
*/
function framaforms_install () {
framaforms_set_default_variables();
}
/**
* Implements hook_uninstall
*/
function framaforms_uninstall () {
db_delete('variable')->condition('name', db_like('framaforms_') . '%', 'LIKE')->execute();
cache_clear_all('framaforms', 'cache', TRUE);
}
/**
* Set persistent variables regarding mails sent by Framaforms
* @return void
*/
function framaforms_set_variables_mail () {
// sprintf-ready mail for notifying a user of his⋅her form expiration.
$file_path = drupal_get_path('module', 'framaforms'). '/includes/templates/notification_email_fr.txt';
$framaforms_mail_user_notification_body = t("file_get_contents($file_path)");
$framaforms_mail_user_notification_subject = t("Framaforms : Votre formulaire « [form_title] » expirera dans deux semaines.");
variable_set('framaforms_mail_user_notification_subject', $framaforms_mail_user_notification_subject);
variable_set('framaforms_mail_user_notification_body', $framaforms_mail_user_notification_body);
}
function framaforms_set_variables_pages () {
$expiration_page_content = "<p>Le formulaire que vous essayez de voir a expiré.</p><p>Si vous êtes l'auteur de ce formulaire, vous pouvez peut-être le réactiver en vous identifiant, puis <strong>en éditant sa date d'expiration</strong> (en cliquant sur <b>Modifier</b> > <b>Autres options</b>) après avoir cliqué sur le lien <a href='[my_forms_url]'>Mes formulaires.</a></p><p>Si vous n'êtes pas l'auteur, contactez-le, en utilisant le moyen que l'auteur a utilisé pour vous enjoindre à remplir son formulaire (mail, réseau social, autres) et signalez-lui que son formulaire est expiré.</p>";
variable_set('framaforms_expiration_page_content', $expiration_page_content);
}
/**
* Sets global variables to default value
*
* @return
*/
function framaforms_set_default_variables () {
module_load_include('inc', 'framaforms', 'includes/framaforms.pages');
framaforms_set_variables_mail();
framaforms_set_variables_pages();
framaforms_set_variables_mail();
$now = date('Y/m/d/ h:m:s', time());
variable_set('framaforms_cron_last', new DateTime()); // the last framforms cron run
variable_set('framaforms_cron_frequency', '1 hour');
variable_set('framaforms_expiration_period_default_value', 26); // default creation-expiration time interval
variable_set('framaforms_deletion_period_value', 9); // default expiration-deletion time interval
variable_set('framaforms_notification_period_value', 2); // default notification-expiration time interval
variable_set('site_contact_url', 'https://contact.framasoft.org/#framaforms');
if(variable_get('framaforms_forms_per_user_limit') == NULL){
variable_set('framaforms_forms_per_user_limit', 200);
}
variable_set('framaforms_site_contact_url', 'https://contact.framasoft.org/#framaforms');
variable_set('framaforms_forms_per_user_limit', 200);
/* various other custom manipulation */
/* Hide Drupal default banner */
$theme_settings = variable_get('theme_settings');
......@@ -88,49 +123,8 @@ function framaforms_install () {
}
}
/**
* Implements hook_uninstall
*/
function framaforms_uninstall () {
variable_del('framaforms_cron_last');
variable_del('framaforms_mail_user_notification_subject');
variable_del('framaforms_mail_user_notification_body');
variable_del('framaforms_expiration_default_value');
variable_del('framaforms_deletion_period_value');
variable_del('framaforms_notification_period_value');
variable_del('site_contact_url');
}
/**
* Set persistent variables regarding mails sent by Framaforms
* @return void
*/
function framaforms_set_variables_mail () {
// sprintf-ready mail for notifying a user of his⋅her form expiration.
$framaforms_mail_user_notification_body = t("
Bonjour,
Votre formulaire intitulé « [form_title] » expirera dans deux semaines, soit en date du [form_expires_on].
Les utilisateurs ne pourront plus répondre à votre formulaire, mais vous aurez toujours accès aux résultats jusqu'au [form_delete_on]. Ensuite, les données seront définitivement supprimées de notre base de données.
Si vous souhaitez repousser l'expiration de votre formulaire, c'est possible.
: il suffit de vous identifier sur Framaforms, puis de vous rendre sur la page d'administration de votre formulaire [form_url] et de modifier la date d'expiration comme indiqué ici : https://framaforms.org/limitations.
Ce message est un message automatique, il est inutile d'utiliser la fonctionnalité « Répondre ». Si vous avez des questions concernant l'usage de Framaforms, notre forum d'entraide <Framacolibri> est à votre disposition. Pour toute autre question, vous pouvez aussi nous contacter en passant par notre espace de support : https://contact.framasoft.org.
Nous en profitons pour vous rappeler que Framasoft est une petite association à but non-lucratif, dédiée aux enjeux du numérique, qui ne vit que de vos dons. Si Framaforms vous est utile, merci d'envisager de faire un don (défiscalisable) à l'association : https://soutenir.framasoft.org
Librement,
Framasoft
« La route est longue, mais la voie est libre. »
");
$framaforms_mail_user_notification_subject = t("Framaforms : Votre formulaire « [form_title] » expirera dans deux semaines.");
variable_set('framaforms_mail_user_notification_subject', $framaforms_mail_user_notification_subject);
function framaforms_update_7110 (&$sandbox) {
$file_path = drupal_get_path('module', 'framaforms'). '/includes/templates/notification_email_fr.txt';
$framaforms_mail_user_notification_body = file_get_contents($file_path);
variable_set('framaforms_mail_user_notification_body', $framaforms_mail_user_notification_body);
}
function framaforms_set_variables_pages () {
$expiration_page_content = "<p>Le formulaire que vous essayez de voir a expiré.</p><p>Si vous êtes l'auteur de ce formulaire, vous pouvez peut-être le réactiver en vous identifiant, puis <strong>en éditant sa date d'expiration</strong> (en cliquant sur <b>Modifier</b> > <b>Autres options</b>) après avoir cliqué sur le lien <a href='[my_forms_url]'>Mes formulaires.</a></p><p>Si vous n'êtes pas l'auteur, contactez-le, en utilisant le moyen que l'auteur a utilisé pour vous enjoindre à remplir son formulaire (mail, réseau social, autres) et signalez-lui que son formulaire est expiré.</p>";
variable_set('framaforms_expiration_page_content', $expiration_page_content);
}
}
\ No newline at end of file
......@@ -88,7 +88,7 @@ function get_dashboard_content () {
LIMIT 10;";
$results = db_query($query, array());
foreach($results as $result){
$content .= "<li> <a href='/user/{$result->uid}'> {$result->name} </a> (#{$result->uid})
$content .= "<li> <a href='/user/{$result->uid}'> {$result->name} </a> (#{$result->uid})
- <a href='/form-search?status=1&nid=&title=&uid={$result->name}&mail='>{$result->c} forms</a> </li>";
}
$content .= "</ul>";
......@@ -201,6 +201,13 @@ function framaforms_config_form ($form, &$form_state) {
'#submit' => array('admin_menu_create_pages_callback'),
'#executes_submit_callback' => TRUE,
);
$form['reset-variables'] = array(
'#type' => 'button',
'#value' => t('Reset all'),
'#description' => t("Reset all global variables to their initial value."),
'#submit' => array('framaforms_admin_menu_reset_variables_callback'),
'#executes_submit_callback' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
......@@ -239,7 +246,7 @@ function framaforms_config_form_validate ($form, &$form_state) {
drupal_set_message(t("Erreur dans les valeurs administratives de Framaforms."));
form_set_error('framaforms_forms_per_user_limit', t("The number of form per user must be numeric."));
}
}
/**
......@@ -248,4 +255,15 @@ function framaforms_config_form_validate ($form, &$form_state) {
*/
function framaforms_config_form_submit ($form, &$form_state) {
drupal_set_message('form submitted !');
}
/**
* Callback calling
*
* @return void
*/
function framaforms_admin_menu_reset_variables_callback () {
module_load_include('install', 'framaforms', 'framaforms');
framaforms_set_default_variables();
drupal_set_message(t("All global variables for Framaforms were reset."),'status', FALSE);
}
\ No newline at end of file
......@@ -43,7 +43,7 @@
/* Get all the webforms that are about to expire and whose owner wasn't yet notified */
try{
$results = db_query("
SELECT fex.nid, u.mail, n.title
SELECT fex.nid, u.mail, u.uid, n.title
FROM framaforms_expired fex
INNER JOIN node n
ON fex.nid = n.nid
......@@ -66,7 +66,9 @@
))
->condition('nid', $record->nid, '=')
->execute();
continue;
}
watchdog('framaforms', t("Error while trying to notify the user : the user's email could be badly configured."), array(), WATCHDOG_WARNING);
}
watchdog('framaforms', "Notified all users of their expired forms.");
}
......@@ -88,6 +90,13 @@
*/
function notify_user_of_expiration ($record) {
global $base_url; //use the global variable of Drupal for the site's URL
// First check if the user has a correct email
if(!filter_var($record->mail, FILTER_VALIDATE_EMAIL)) {
watchdog('framaforms', t("Invalid email for user ") .$record->uid, array(), WATCHDOG_WARNING);
return FALSE;
}
$expiration_period = variable_get('framaforms_notification_period_value') .' weeks';
$deletion_period = variable_get('framaforms_deletion_period_value') .' weeks';
......@@ -112,9 +121,9 @@ function notify_user_of_expiration ($record) {
'subject' => $mail_subject,
'headers' => array(),
);
$message = drupal_mail('framaforms', 'expired_webform', (string)$record->mail, user_preferred_language($user), $mail_params);
return $message['send'];
return TRUE;
}
/**
......
Bonjour,
Votre formulaire intitulé « [form_title] » expirera dans deux semaines, soit en date du [form_expires_on]. Les utilisateurs ne pourront plus répondre à votre formulaire, mais vous aurez toujours accès aux résultats jusqu'au [form_delete_on]. Ensuite, les données seront définitivement supprimées de notre base de données.
Si vous souhaitez repousser l'expiration de votre formulaire, c'est possible : il suffit de vous identifier sur Framaforms, puis de vous rendre sur la page d'administration de votre formulaire ([form_url]/edit) et de modifier la date d'expiration comme indiqué ici : https://framaforms.org/limitations.
Ce message est un message automatique, il est inutile d'y répondre. Si vous avez des questions concernant l'usage de Framaforms, notre forum d'entraide Framacolibri est à votre disposition (https://framacolibri.org/). Pour toute autre question, vous pouvez aussi nous contacter en passant par notre espace de support : https://contact.framasoft.org.
Nous en profitons pour vous rappeler que Framasoft est une petite association à but non-lucratif, dédiée aux enjeux du numérique, qui ne vit que de vos dons. Si Framaforms vous est utile, merci d'envisager de faire un don (défiscalisable) à l'association : https://soutenir.framasoft.org
Librement,
Framasoft
« La route est longue, mais la voie est libre. »
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment