X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=edithelp.pl;h=dca61b108a7ab3c4f220e5d0448cb2b5cb32c50b;hb=7db41b379ff2fbf9827a8b752897bf6ee4409026;hp=32db0622915cd56b101fa9ef0e2aee663c0cf46a;hpb=ed328807c37c452bc700295e823170721905053c;p=koha.git diff --git a/edithelp.pl b/edithelp.pl index 32db062291..dca61b108a 100755 --- a/edithelp.pl +++ b/edithelp.pl @@ -4,25 +4,24 @@ # # 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., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . -use strict; +use Modern::Perl; use C4::Output; use C4::Templates; use C4::Auth; -use CGI; -use warnings; +use CGI qw ( -utf8 ); use vars qw($debug); @@ -53,7 +52,6 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( borrowers => 1, permissions => 1, reserveforothers => 1, - borrow => 1, reserveforself => 1, editcatalogue => 1, updatecharges => 1, @@ -65,9 +63,11 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( sub _get_filepath ($;$) { my $referer = shift; $referer =~ /koha\/(.*)\.pl/; - my $from = "help/$1.tt"; + my $file = $1; + $file =~ s/[^0-9a-zA-Z_\-\/]*//g; + my $from = "help/$file.tt"; my $htdocs = C4::Context->config('intrahtdocs'); - my ($theme, $lang) = C4::Templates::themelanguage( $htdocs, $from, "intranet", $input ); + my ($theme, $lang, $availablethemes) = C4::Templates::themelanguage( $htdocs, $from, "intranet", $input ); $debug and print STDERR "help filepath: $htdocs/$theme/$lang/modules/$from"; return "$htdocs/$theme/$lang/modules/$from"; } @@ -75,7 +75,7 @@ sub _get_filepath ($;$) { $type = 'create' if $type eq 'addnew'; if ( $type eq 'create' || $type eq 'save' ) { my $file = _get_filepath($referer); - open my $fh, ">", $file; + open my $fh, ">:encoding(utf-8)", $file; if ( $fh ) { # file is open write to it print $fh @@ -96,16 +96,14 @@ elsif ( $type eq 'modify' ) { $error = "Cannot read file: '$file'."; } else { (-w $file) or $error = - "WARNING: You will not be able save, because your webserver cannot write to '$file'. Contact your admin about help file permissions."; - open (INFILE, $file) or die "Cannot read file '$file'"; # unlikely death, since we just checked - my $help = ''; - while ( my $inp = ) { - unless ( $inp =~ /INCLUDE/ ) { - $help .= $inp; - } - } - close INFILE; - $template->param( 'help' => $help ); + "WARNING: You will not be able to save, because your webserver cannot write to '$file'. Contact your admin about help file permissions."; + open (my $fh, '<:encoding(utf-8)', $file) or die "Cannot read file '$file'"; # unlikely death, since we just checked + my $help = ''; + while ( <$fh> ) { + $help .= /\[% INCLUDE .* %\](.*)$/ ? $1 : $_; + } + close $fh; + $template->param( 'help' => $help ); $type = 'save'; } }