Bug 8949: Trying to view help on a page without any help results in a nasty error
authorPaul Poulain <paul.poulain@biblibre.com>
Fri, 2 Nov 2012 10:19:23 +0000 (11:19 +0100)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Mon, 5 Nov 2012 13:39:23 +0000 (08:39 -0500)
The problem was probably a side effect of bug 7038

I've checked that things are OK in translated languages.

Test plan:
 * open help on a page with help in english (mainpage.pl)
 * open help on a page with help in another language (mainpage.pl)
=> you'll see the online help, as usual
 * open help on a page without help in english (acqui/addorderiso2709.pl)
 * open help on a page without help in another language (acqui/addorderiso2709.pl)
=> you'll get the "oops, no help available, sorry", no more the Perl error

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Passed-QA-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
help.pl

diff --git a/help.pl b/help.pl
index 78f225b..f641fe6 100755 (executable)
--- a/help.pl
+++ b/help.pl
@@ -43,6 +43,16 @@ my $query = new CGI;
 our $refer = $query->param('url');
 $refer = $query->referer()  if !$refer || $refer eq 'undefined';
 my $from = _help_template_file_of_url($refer);
+my $htdocs = C4::Context->config('intrahtdocs');
+
+#
+# checking that the help file exist, otherwise, display nohelp.tt page
+#
+my ( $theme, $lang ) = C4::Templates::themelanguage( $htdocs, $from, "intranet", $query );
+unless ( -e "$htdocs/$theme/$lang/modules/$from" ) {
+    $from = "help/nohelp.tt";
+    ( $theme, $lang ) = C4::Templates::themelanguage( $htdocs, $from, "intranet", $query );
+}
 
 my $template = C4::Templates::gettemplate($from, 'intranet', $query);
 $template->param( referer => $refer );