From b6d52898ae54b10aa05dd3ae268f63d5098d6bb0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Barrois?= Date: Fri, 6 May 2011 00:08:45 +0200 Subject: [PATCH] Minor fix to newsletters: handle X.net 'ns' properly, don't explode when there is no 'last' issue. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Raphaël Barrois --- include/newsletter.inc.php | 22 +++++++++++++++++----- modules/newsletter.php | 8 ++++---- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/include/newsletter.inc.php b/include/newsletter.inc.php index 2faf993..b7e00ca 100644 --- a/include/newsletter.inc.php +++ b/include/newsletter.inc.php @@ -501,10 +501,14 @@ class NewsLetter /** Get the prefix leading to the page for this NL * Only X.org / AX / X groups may be seen on X.org. */ - public function prefix($enforce_xnet=true) + public function prefix($enforce_xnet=true, $with_group=true) { if (!empty($GLOBALS['IS_XNET_SITE'])) { - return $this->group . '/nl'; + if ($with_group) { + return $this->group . '/nl'; + } else { + return 'nl'; + } } switch ($this->group) { case self::GROUP_XORG: @@ -521,10 +525,14 @@ class NewsLetter /** Get the prefix to use for all 'admin' pages of this NL. */ - public function adminPrefix($enforce_xnet=true) + public function adminPrefix($enforce_xnet=true, $with_group=true) { if (!empty($GLOBALS['IS_XNET_SITE'])) { - return $this->group . '/admin/nl'; + if ($with_group) { + return $this->group . '/admin/nl'; + } else { + return 'admin/nl'; + } } switch ($this->group) { case self::GROUP_XORG: @@ -825,7 +833,11 @@ class NLIssue public function last() { if (is_null($this->id_last)) { - $this->id_last = $this->nl->getIssue('last')->id; + try { + $this->id_last = $this->nl->getIssue('last')->id; + } catch (MailNotFound $e) { + $this->id_last = null; + } } return $this->id_last; } diff --git a/modules/newsletter.php b/modules/newsletter.php index 02efc32..0f57706 100644 --- a/modules/newsletter.php +++ b/modules/newsletter.php @@ -103,7 +103,7 @@ class NewsletterModule extends PLModule } if (!Post::has('nl_search')) { - pl_redirect($nl->prefix()); + pl_redirect($nl->prefix(true, false)); } $nl_search = Post::t('nl_search'); @@ -199,7 +199,7 @@ class NewsletterModule extends PLModule S::logger()->log('nl_issue_create', $nid); $id = $nl->createPending(); - pl_redirect($nl->adminPrefix() . '/edit/' . $id); + pl_redirect($nl->adminPrefix(true, false) . '/edit/' . $id); } $page->assign_by_ref('nl', $nl); @@ -273,7 +273,7 @@ class NewsletterModule extends PLModule // Delete an article if($action == 'delete') { $issue->delArticle($aid); - pl_redirect($nl->adminPrefix() . "/edit/$nid"); + pl_redirect($nl->adminPrefix(true, false) . "/edit/$nid"); } // Save an article @@ -281,7 +281,7 @@ class NewsletterModule extends PLModule $art = new NLArticle(Post::v('title'), Post::v('body'), Post::v('append'), $aid, Post::v('cid'), Post::v('pos')); $issue->saveArticle($art); - pl_redirect($nl->adminPrefix() . "/edit/$nid"); + pl_redirect($nl->adminPrefix(true, false) . "/edit/$nid"); } // Edit an article -- 2.1.4