From: intrigeri <intrigeri@boum.org>
Date: Wed, 3 Jun 2009 16:30:00 +0000 (+0200)
Subject: po: better discussion link logic
X-Git-Tag: 3.15~185
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/091f11be76991c3975c74d261ab4a065845ba8aa?hp=-c

po: better discussion link logic

Signed-off-by: intrigeri <intrigeri@boum.org>
---

091f11be76991c3975c74d261ab4a065845ba8aa
diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm
index d26c4ab4e..cdb9271e4 100644
--- a/IkiWiki/Plugin/po.pm
+++ b/IkiWiki/Plugin/po.pm
@@ -260,22 +260,20 @@ sub pagetemplate (@) {
 		$template->param(otherlanguages => [otherlanguagesloop($page)]);
 		map add_depends($page, $_), (values %{otherlanguages($page)});
 	}
-	# Rely on IkiWiki::Render's genpage() to decide wether
-	# a discussion link should appear on $page; this is not
-	# totally accurate, though: some broken links may be generated
-	# when cgiurl is disabled.
-	# This compromise avoids some code duplication, and will probably
-	# prevent future breakage when ikiwiki internals change.
-	# Known limitations are preferred to future random bugs.
-	if ($template->param('discussionlink') && istranslation($page)) {
-		$template->param('discussionlink' => htmllink(
-			$page,
-			$destpage,
-			$masterpage . '/' . gettext("Discussion"),
-			noimageinline => 1,
-			forcesubpage => 0,
-			linktext => gettext("Discussion"),
+	if ($config{discussion} && istranslation($page)) {
+		my $discussionlink=gettext("discussion");
+		if ($page !~ /.*\/\Q$discussionlink\E$/i &&
+		   (length $config{cgiurl} ||
+		    exists $links{$masterpage."/".$discussionlink})) {
+			$template->param('discussionlink' => htmllink(
+				$page,
+				$destpage,
+				$masterpage . '/' . gettext("Discussion"),
+				noimageinline => 1,
+				forcesubpage => 0,
+				linktext => gettext("Discussion"),
 		));
+		}
 	}
 	# Remove broken parentlink to ./index.html on home page's translations.
 	# It works because this hook has the "last" parameter set, to ensure it