From: Nicolas Iooss Date: Wed, 5 Mar 2014 19:23:23 +0000 (+0100) Subject: Merge branch 'xorg/maint' X-Git-Tag: xorg/1.1.12~17 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=5f317a8d97f36d3a201149039b6996586b57826d;hp=-c;p=platal.git Merge branch 'xorg/maint' Conflicts: include/newsletter.inc.php --- 5f317a8d97f36d3a201149039b6996586b57826d diff --combined include/newsletter.inc.php index ded8520,5ceabc0..313d98d --- a/include/newsletter.inc.php +++ b/include/newsletter.inc.php @@@ -1,6 -1,6 +1,6 @@@ group_id = $data['group_id']; $this->group = $data['group_name']; $this->name = $data['nl_name']; - $this->custom_css = $data['custom_css']; $this->criteria = new PlFlagSet($data['criteria']); // Load the categories @@@ -106,7 -109,7 +106,7 @@@ */ public static function getAll($sort = 'id', $order = 'ASC') { - $res = XDB::fetchAllAssoc('SELECT n.id, g.nom AS group_name, n.name, n.custom_css, n.criteria, g.diminutif AS group_link + $res = XDB::fetchAllAssoc('SELECT n.id, g.nom AS group_name, n.name, n.criteria, g.diminutif AS group_link FROM newsletters AS n INNER JOIN groups AS g ON (n.group_id = g.id) ORDER BY ' . $sort . ' ' . $order); @@@ -514,7 -517,7 +514,7 @@@ */ public function cssFile() { - if ($this->custom_css) { + if ($this->hasCustomCss()) { $base = $this->group; } else { $base = self::FORMAT_DEFAULT_GROUP; @@@ -526,7 -529,7 +526,7 @@@ */ public function tplFile() { - if ($this->custom_css) { + if ($this->hasCustomCss()) { $base = $this->group; } else { $base = self::FORMAT_DEFAULT_GROUP; @@@ -619,6 -622,26 +619,26 @@@ } } + /** Get a full URL to a newsletter + */ + public function fullUrl() + { + switch ($this->group) { + case self::GROUP_XORG: + return 'https://www.polytechnique.org/nl'; + case self::GROUP_COMMUNITY: + return 'https://www.polytechnique.org/comletter'; + case self::GROUP_AX: + return 'https://www.polytechnique.org/ax'; + case self::GROUP_EP: + return 'https://www.polytechnique.org/epletter'; + case self::GROUP_FX: + return 'https://www.polytechnique.org/fxletter'; + default: + return 'http://www.polytechnique.net/' . $this->group . '/nl'; + } + } + /** Get links for nl pages. */ public function adminLinks() @@@ -647,16 -670,7 +667,16 @@@ public function hasCustomCss() { - return $this->custom_css; + switch ($this->group) { + case self::GROUP_XORG: + case self::GROUP_COMMUNITY: + case self::GROUP_AX: + case self::GROUP_EP: + case self::GROUP_FX: + return true; + default: + return false; + } } public function canSyncWithGroup() @@@ -1231,12 -1245,7 +1251,14 @@@ class NLIssu */ public function sendTo($user, $hash = null) { + global $globals; ++ + // Don't send email to users without an address + // Note: this would never happen when using sendToAll + if (!$user->bestEmail()) { + return; + } + $this->fetchArticles(); if (is_null($hash)) { @@@ -1264,6 -1273,21 +1286,21 @@@ if (!empty($this->reply_to)) { $mailer->addHeader('Reply-To', $this->reply_to); } + + // Add mailing list headers + // Note: "Precedence: bulk" is known to cause issues on some clients + $mailer->addHeader('Precedence', 'list'); + // RFC 2919 header + $mailer->addHeader('List-Id', $this->nl->group . + ' <' . $this->nl->group . '.newsletter.' . $globals->mail->domain . '>'); + // RFC 2369 headers + $listurl = $this->nl->fullUrl(); + $mailer->addHeader('List-Unsubscribe', '<' . $listurl . '/out/nohash/' . $this->id . '>'); + $mailer->addHeader('List-Subscribe', '<' . $listurl. '/in/nohash/' . $this->id . '>'); + $mailer->addHeader('List-Archive', '<' . $listurl . '>'); + $mailer->addHeader('List-Help', '<' . $listurl . '>'); + $mailer->addHeader('List-Owner', 'mail->domain . '>'); + $mailer->sendTo($user); } @@@ -1524,5 -1548,5 +1561,5 @@@ function format_text($input, $format, $ // }}} -// vim:set et sw=4 sts=4 sws=4 enc=utf-8: +// vim:set et sw=4 sts=4 sws=4 fenc=utf-8: ?>