X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=edithelp.pl;h=dca61b108a7ab3c4f220e5d0448cb2b5cb32c50b;hb=c6e488f4af72a2629fd86ee040a6973e2a6c73f4;hp=d1975ba6707c9b61910a3da4de38546222d2caff;hpb=214deb76586bf41256da51d7ad9bcce4f526f283;p=koha.git diff --git a/edithelp.pl b/edithelp.pl index d1975ba670..dca61b108a 100755 --- a/edithelp.pl +++ b/edithelp.pl @@ -4,24 +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); @@ -41,7 +41,7 @@ my $error; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { - template_name => "help/edithelp.tmpl", + template_name => "help/edithelp.tt", query => $input, type => "intranet", authnotrequired => 0, @@ -52,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, @@ -63,29 +62,32 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( sub _get_filepath ($;$) { my $referer = shift; - $referer =~ /.*koha\/(.+)\.pl.*/; - my $from = "help/$1.tmpl"; + $referer =~ /koha\/(.*)\.pl/; + my $file = $1; + $file =~ s/[^0-9a-zA-Z_\-\/]*//g; + my $from = "help/$file.tt"; my $htdocs = C4::Context->config('intrahtdocs'); - my ($theme, $lang) = 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"; } -if ( $type eq 'addnew' ) { - $type = 'create'; -} -elsif ( $type eq 'create' || $type eq 'save' ) { +$type = 'create' if $type eq 'addnew'; +if ( $type eq 'create' || $type eq 'save' ) { my $file = _get_filepath($referer); - unless (open (OUTFILE, ">$file")) {$error = "Cannot write file: '$file'";} else { - #open (OUTFILE, ">$file") or die "Cannot write file: '$file'"; # unlikely death, since we just checked + open my $fh, ">:encoding(utf-8)", $file; + if ( $fh ) { # file is open write to it - print OUTFILE "\n"; - print OUTFILE ($type eq 'create') ? "
\n$help\n
" : $help; - print OUTFILE "\n\n"; - close OUTFILE; + print $fh + " [% INCLUDE 'help-top.inc' %]\n", + $type eq 'create' ? "
\n$help\n
" : $help, + "\n[% INCLUDE 'help-bottom.inc' %]\n"; + close $fh; print $input->redirect("/cgi-bin/koha/help.pl?url=$oldreferer"); } - + else { + $error = "Cannot write file: '$file'"; + } } elsif ( $type eq 'modify' ) { # open file load data, kill include calls, pass data to the template @@ -94,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 =~ /TMPL\_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'; } }