X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=edithelp.pl;h=b4e75c9b3e88373411c4dd8f463ddf4702d69144;hb=90c49a01fee1bddac41a6563ae1ef4c5db657545;hp=28586b39101324c89601693e361f1efe65b089d8;hpb=ccb4517b1c05a036886df4b3cde20ac1dbef1bc4;p=koha.git diff --git a/edithelp.pl b/edithelp.pl index 28586b3910..b4e75c9b3e 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); @@ -65,7 +64,9 @@ 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, $availablethemes) = C4::Templates::themelanguage( $htdocs, $from, "intranet", $input ); $debug and print STDERR "help filepath: $htdocs/$theme/$lang/modules/$from"; @@ -75,7 +76,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,14 +97,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 (my $fh, '<', $file) or die "Cannot read file '$file'"; # unlikely death, since we just checked - my $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 ); + } + close $fh; + $template->param( 'help' => $help ); $type = 'save'; } }