X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Faxletter.php;h=0839734e59c49279b48c52e2622694d3109300ab;hb=22f043e40dbab2dccdc909151402c1ff53baf925;hp=d093bd3bf8f1fc9200a4aa0abd4ee8f663b193d9;hpb=fde3e90eec52076baad7ee2a202388ff95931c45;p=platal.git diff --git a/modules/axletter.php b/modules/axletter.php index d093bd3..0839734 100644 --- a/modules/axletter.php +++ b/modules/axletter.php @@ -43,17 +43,17 @@ class AXLetterModule extends PLModule return $this->handler_index($page, 'out'); } } - require_once dirname(__FILE__) . '/axletter/axletter.inc.php'; + $this->load('axletter.inc.php'); $page->changeTpl('axletter/unsubscribe.tpl'); $page->assign('success', AXLetter::unsubscribe($hash, true)); } function handler_index(&$page, $action = null) { - require_once dirname(__FILE__) . '/axletter/axletter.inc.php'; + $this->load('axletter.inc.php'); $page->changeTpl('axletter/index.tpl'); - $page->assign('xorg_title','Polytechnique.org - Envois de l\'AX'); + $page->setTitle('Envois de l\'AX'); switch ($action) { case 'in': AXLetter::subscribe(); break; @@ -73,7 +73,7 @@ class AXLetterModule extends PLModule function handler_submit(&$page, $action = null) { - require_once dirname(__FILE__) . '/axletter/axletter.inc.php'; + $this->load('axletter.inc.php'); if (!AXLetter::hasPerms()) { return PL_FORBIDDEN; } @@ -109,7 +109,9 @@ class AXLetterModule extends PLModule $saved = false; $new = true; } - } elseif (Post::has('valid') && S::has_xsrf_token()) { + } elseif (Post::has('valid')) { + S::assert_xsrf_token(); + if (!$subject && $title) { $subject = $title; } @@ -117,27 +119,27 @@ class AXLetterModule extends PLModule $title = $subject; } if (!$subject || !$title || !$body) { - $page->trig("L'article doit avoir un sujet et un contenu"); + $page->trigError("L'article doit avoir un sujet et un contenu"); Post::kill('valid'); } if (($promo_min > $promo_max && $promo_max != 0)|| ($promo_min != 0 && ($promo_min <= 1900 || $promo_min >= 2020)) || ($promo_max != 0 && ($promo_max <= 1900 || $promo_max >= 2020))) { - $page->trig("L'intervalle de promotions n'est pas valide"); + $page->trigError("L'intervalle de promotions n'est pas valide"); Post::kill('valid'); } if (empty($short_name)) { - $page->trig("L'annonce doit avoir un nom raccourci pour simplifier la navigation dans les archives"); + $page->trigError("L'annonce doit avoir un nom raccourci pour simplifier la navigation dans les archives"); Post::kill('valid'); } elseif (!preg_match('/^[a-z][-a-z0-9]*[a-z0-9]$/', $short_name)) { - $page->trig("Le nom raccourci n'est pas valide, il doit comporter au moins 2 caractères et n'être composé " + $page->trigError("Le nom raccourci n'est pas valide, il doit comporter au moins 2 caractères et n'être composé " . "que de chiffres, lettres et tirets"); Post::kill('valid'); } elseif ($short_name != Post::v('old_short_name')) { $res = XDB::query("SELECT id FROM axletter WHERE short_name = {?}", $short_name); if ($res->numRows() && $res->fetchOneCell() != $id) { - $page->trig("Le nom $short_name est déjà utilisé, merci d'en choisir un autre"); + $page->trigError("Le nom $short_name est déjà utilisé, merci d'en choisir un autre"); $short_name = Post::v('old_short_name'); if (empty($short_name)) { Post::kill('valid'); @@ -147,7 +149,7 @@ class AXLetterModule extends PLModule switch (@Post::v('valid')) { case 'Aperçu': - require_once dirname(__FILE__) . '/axletter/axletter.inc.php'; + $this->load('axletter.inc.php'); $al = new AXLetter(array($id, $short_name, $subject, $title, $body, $signature, $promo_min, $promo_max, $echeance, 0, 'new')); $al->toHtml($page, S::v('prenom'), S::v('nom'), S::v('femme')); @@ -162,14 +164,14 @@ class AXLetterModule extends PLModule global $globals; $mailer = new PlMailer(); $mailer->setFrom("support@" . $globals->mail->domain); - $mailer->setSubject("Un nouveau projet de mail de l'AX vient d'être proposé"); - $mailer->setTxtBody("Un nouveau mail vient d'être rédigé en prévision d'un envoi prochain. Vous pouvez " + $mailer->setSubject("Un nouveau projet d'email de l'AX vient d'être proposé"); + $mailer->setTxtBody("Un nouvel email vient d'être rédigé en prévision d'un envoi prochain. Vous pouvez " . "le modifier jusqu'à ce qu'il soit verrouillé pour l'envoi\n\n" - . "Le sujet du mail : $subject\n" + . "Le sujet de l'email : $subject\n" . "L'échéance d'envoi est fixée à $echeance.\n" - . "Le mail pourra néanmoins partir avant cette échéance si un administrateur de " + . "L'email pourra néanmoins partir avant cette échéance si un administrateur de " . "Polytechnique.org le valide.\n\n" - . "Pour modifier, valider ou annuler le mail :\n" + . "Pour modifier, valider ou annuler l'email :\n" . "https://www.polytechnique.org/ax/edit\n" . "-- \n" . "Association Polytechnique.org\n"); @@ -190,8 +192,6 @@ class AXLetterModule extends PLModule pl_redirect('ax'); break; } - } elseif (Post::has('valid')) { - $page->trig("L'opération a échouée, merci de réessayer."); } $page->assign('id', $id); $page->assign('short_name', $short_name); @@ -225,7 +225,7 @@ class AXLetterModule extends PLModule function handler_cancel(&$page, $force = null) { - require_once dirname(__FILE__) . '/axletter/axletter.inc.php'; + $this->load('axletter.inc.php'); if (!AXLetter::hasPerms() || !S::has_xsrf_token()) { return PL_FORBIDDEN; } @@ -245,7 +245,7 @@ class AXLetterModule extends PLModule function handler_valid(&$page, $force = null) { - require_once dirname(__FILE__) . '/axletter/axletter.inc.php'; + $this->load('axletter.inc.php'); if (!AXLetter::hasPerms() || !S::has_xsrf_token()) { return PL_FORBIDDEN; } @@ -265,7 +265,7 @@ class AXLetterModule extends PLModule function handler_show(&$page, $nid = 'last') { - require_once dirname(__FILE__) . '/axletter/axletter.inc.php'; + $this->load('axletter.inc.php'); $page->changeTpl('axletter/show.tpl'); $nl = new AXLetter($nid); @@ -283,12 +283,14 @@ class AXLetterModule extends PLModule function handler_admin(&$page, $action = null, $uid = null) { - require_once dirname(__FILE__) . '/axletter/axletter.inc.php'; + $this->load('axletter.inc.php'); if (Post::has('action')) { $action = Post::v('action'); $uid = Post::v('uid'); } - if ($uid && S::has_xsrf_token()) { + if ($uid) { + S::assert_xsrf_token(); + $uids = preg_split('/ *[,;\: ] */', $uid); foreach ($uids as $uid) { switch ($action) { @@ -300,11 +302,9 @@ class AXLetterModule extends PLModule break; } if (!$res) { - $page->trig("Personne ne correspond à l'identifiant '$uid'"); + $page->trigError("Personne ne correspond à l'identifiant '$uid'"); } } - } elseif ($uid) { - $page->trig("L'opération sur la liste des administrateurs AX a échouée, merci de réessayer."); } $page->changeTpl('axletter/admin.tpl');