* Core:
- #1523: Rename AUTH_MDP to AUTH_PASSWD -JAC
+ * Email:
+ - #1529: Stores and uses preferences for sending emails from site -JAC
+
* Payments:
- #1512: Allows payments for unlogged users -JAC
- #1537: Replaces payments page on main site by a donation page -JAC
foreach ($files as $name=>&$upload) {
$mymail->addUploadAttachment($upload, $name);
}
- if (Env::v('nowiki')) {
+ if (Env::v('wiki') == 'text') {
$mymail->setTxtBody(wordwrap($txt, 78, "\n"));
} else {
$mymail->setWikiBody($txt);
$page->assign('contacts', $contacts);
$page->assign('maxsize', ini_get('upload_max_filesize') . 'o');
$page->assign('user', S::user());
+ $preferences = XDB::fetchOneAssoc('SELECT from_email, from_format
+ FROM accounts
+ WHERE uid = {?}',
+ S::user()->id());
+ if ($preferences['from_email'] == '') {
+ $preferences['from_email'] = '"' . S::user()->fullName() . '" <' . S::user()->bestEmail() . '>';
+ }
+ $page->assign('preferences', $preferences);
}
function handler_test($page, $hruid = null)
'prefs/rss' => $this->make_hook('prefs_rss', AUTH_COOKIE, 'user'),
'prefs/webredirect' => $this->make_hook('webredir', AUTH_PASSWD, 'mail'),
'prefs/skin' => $this->make_hook('skin', AUTH_COOKIE, 'user'),
+ 'prefs/email' => $this->make_hook('prefs_email', AUTH_COOKIE, 'mail'),
// password related thingies
'password' => $this->make_hook('password', AUTH_PASSWD, 'user,groups'),
}
}
+ function handler_prefs_email($page)
+ {
+ $page->changeTpl('platal/email_preferences.tpl');
+
+ if (Post::has('submit')) {
+ S::assert_xsrf_token();
+
+ $from_email = Post::t('from_email');
+ $from_format = Post::v('from_format');
+
+ // Checks email.
+ $email_regex = '/^[a-z0-9.\-+_\$]+@([\-.+_]?[a-z0-9])+$/i';
+ if (!preg_match($email_regex, $from_email)) {
+ $full_regex = '/^[^<]*<[a-z0-9.\-+_\$]+@([\-.+_]?[a-z0-9])+>$/i';
+ if (!preg_match($full_regex, $from_email)) {
+ $page->trigError("L'adresse email est erronée.");
+ $error = true;
+ $page->assign('from_email', $from_email);
+ $page->assign('from_format', $from_format);
+ $page->assign('error', true);
+ return;
+ }
+ }
+
+ // Saves data.
+ XDB::execute('UPDATE accounts
+ SET from_email = {?}, from_format = {?}
+ WHERE uid = {?}',
+ $from_email, ($from_format == 'html' ? 'html' : 'text'), S::user()->id());
+ $page->trigSuccess('Données enregistrées.');
+ }
+
+ $data = XDB::fetchOneAssoc('SELECT from_email, from_format
+ FROM accounts
+ WHERE uid = {?}',
+ S::user()->id());
+ $page->assign('from_email', $data['from_email']);
+ $page->assign('from_format', $data['from_format']);
+ $page->assign('error', false);
+ }
+
function handler_password($page)
{
global $globals;
}
}
+ function toggleWiki()
+ {
+ if ($('[name="wiki"]').val() == 'text') {
+ $('[name="wiki"]').val('wiki');
+ } else {
+ $('[name="wiki"]').val('text');
+ }
+ }
+
$(window).unload(
function() {
if (sent) {
<td class="titre">de :</td>
<td>
<input type='hidden' name='signature' value='1' />
- <input type='text' name='from' size='60' value='{if $smarty.request.from}
-{$smarty.request.from}
-{else}
-"{$user->fullName()}" <{$user->bestEmail()}>
-{/if}' />
+ <input type='text' name='from' size='60'
+ value="{if $smarty.request.from}{$smarty.request.from}{else}{$preferences.from_email}{/if}" />
</td>
</tr>
<tr>
<legend>Sujet : <input type='text' name='sujet' size='60' value="{$smarty.request.sujet}" /></legend>
<div class="center">
Tu peux utiliser des <a href="wiki_help" class="popup3">{icon name=information title="Syntaxe wiki"} marqueurs wiki</a> pour formatter ton texte.<br />
- <small><label><input type="checkbox" name="nowiki" value="1" {if $smarty.request.nowiki}checked="checked"{/if} onchange="updateWikiView(this);" />
- coche cette case pour envoyer l'email en texte brut, sans formattage</label></small>
+ <small><label>
+ <input type="hidden" name="wiki" value="{$smarty.request.wiki|default:$preferences.from_format}" />
+ <input type="checkbox" {if $smarty.request.wiki eq "text" || (!$smarty.request.wiki && $preferences.from_format eq "text")}checked="checked"{/if}
+ onchange="updateWikiView(this); toggleWiki();" />
+ coche cette case pour envoyer l'email en texte brut, sans formattage
+ </label></small>
</div>
<div id="preview">
<div id="preview_pv" style="display: none">
http://www.carva.org/{$smarty.session.user->hruid} vers la page de ton choix.<br />
<a href="prefs/webredirect">Gérer ta redirection Web</a>
</dd>
+ <dt>Paramètres d'envois d'emails depuis le site</dt>
+ <dd>
+ Tu peux faire retenir au site les paramètres d'envoi par défaut des emails depuis <a href="emails/send">le site</a>.<br />
+ <a href="prefs/email">Gérer tes envois d'emails depuis le site</a>
+ </dd>
</dl>
</fieldset>
{/if}