#
# This file is part of Koha.
#
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
#
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA 02111-1307 USA
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
use strict;
-use HTML::Template::Pro;
use warnings;
-use C4::Output; # contains gettemplate
+use C4::Templates;
+use C4::Output;
# use C4::Auth;
use C4::Context;
-use CGI;
+use CGI qw ( -utf8 );
+
+sub _help_template_file_of_url {
+ my $url = shift;
+ my $file;
+ if ($url =~ /koha\/(.*)\.pl/) {
+ $file = $1;
+ } else {
+ $file = 'mainpage';
+ }
+ $file =~ s/[^a-zA-Z0-9_\-\/]*//g;
+ return "help/$file.tt";
+}
my $query = new CGI;
+# Init the interface to get the correct language.
+# This is usually set by get_template_and_user
+C4::Context->interface('intranet');
+
# find the script that called the online help using the CGI referer()
-our $refer = $query->referer();
+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');
-# workaround for popup not functioning correctly in IE
-my $referurl = $query->param('url');
-if ($referurl) {
- $refer = $query->param('url');
+#
+# 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 );
}
-$refer =~ /.*koha\/(.*)\.pl.*/;
-my $from = "modules/help/$1.tmpl";
+my $template = C4::Templates::gettemplate($from, 'intranet', $query);
+$template->param(
+ referer => $refer,
+ intranetstylesheet => C4::Context->preference("intranetstylesheet"),
+ intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
+);
-my $template = gethelptemplate( $from, "intranet" );
+my $help_version = C4::Context->preference("Version");
+if ( $help_version =~ m|^(\d+)\.(\d{2}).*$| ) {
+ my $version = $1;
+ my $major = $2;
+ unless ( $major % 2 ) { $major-- };
+ $major = sprintf("%02d", $major);
+ $help_version = "$version.$major";
+}
+$template->param( helpVersion => $help_version );
-# my $template
output_html_with_http_headers $query, "", $template->output;
-
-sub gethelptemplate {
- my ($tmplbase) = @_;
-
- my $htdocs;
- $htdocs = C4::Context->config('intrahtdocs');
- my ( $theme, $lang ) = themelanguage( $htdocs, $tmplbase, "intranet", $query );
- unless ( -e "$htdocs/$theme/$lang/$tmplbase" ) {
- $tmplbase = "modules/help/nohelp.tmpl";
- ( $theme, $lang ) = themelanguage( $htdocs, $tmplbase, "intranet", $query );
- }
- my $template = HTML::Template::Pro->new(
- filename => "$htdocs/$theme/$lang/$tmplbase",
- die_on_bad_params => 0,
- global_vars => 1,
- path => ["$htdocs/$theme/$lang/includes"]
- );
-
- # XXX temporary patch for Bug 182 for themelang
- $template->param(
- themelang => '/intranet-tmpl' . "/$theme/$lang",
- interface => '/intranet-tmpl',
- theme => $theme,
- lang => $lang,
- intranetcolorstylesheet =>
- C4::Context->preference("intranetcolorstylesheet"),
- intranetstylesheet => C4::Context->preference("intranetstylesheet"),
- IntranetNav => C4::Context->preference("IntranetNav"),
- yuipath => (C4::Context->preference("yuipath") eq "local"?"/intranet-tmpl/$theme/$lang/lib/yui":C4::Context->preference("yuipath")),
- referer => $refer,
- );
- return $template;
-}