X-Git-Url: https://git.p6c8.net/devedit.git/blobdiff_plain/03d83644ce2d958fe3e0466fa272c67f0566f4ab..a4e44c04a05eb1b2778ab23790e6b86551d976c4:/modules/Output.pm diff --git a/modules/Output.pm b/modules/Output.pm index 449731f..30d60b4 100644 --- a/modules/Output.pm +++ b/modules/Output.pm @@ -5,19 +5,27 @@ package Output; # # HTML generating routines # -# Author: Patrick Canterino -# Last modified: 2004-02-06 +# Author: Patrick Canterino +# Last modified: 2005-05-09 +# +# Copyright (C) 1999-2000 Roland Bluethgen, Frank Schoenmann +# Copyright (C) 2003-2009 Patrick Canterino +# All Rights Reserved. +# +# This file can be distributed and/or modified under the terms of +# of the Artistic License 1.0 (see also the LICENSE file found at +# the top level of the Dev-Editor distribution). # use strict; use vars qw(@EXPORT); -use CGI qw(header); -use Tool; +use CGI qw(header + escape); -use HTML::Entities; use Template; +use Tool; ### Export ### @@ -25,14 +33,13 @@ use base qw(Exporter); @EXPORT = qw(error_template error - abort - error_in_use); + abort); my $tpl_error; # error_template() # -# Set the path to the template file using for error messages +# Set the path to the template file used for error messages # (I'm lazy...) # # Params: Template file @@ -47,7 +54,8 @@ sub error_template($) # Format an error message # # Params: 1. Error message -# 2. Virtual path to which a link should be displayed (optional) +# 2. Display a link to this path at the bottom of the page (optional) +# Please use the unencoded form of the string! # 3. Hash reference: Template variables (optional) # # Return: Formatted message (Scalar Reference) @@ -59,21 +67,24 @@ sub error($;$$) my $tpl = new Template; $tpl->read_file($tpl_error); - $tpl->fillin("ERROR",$message); - $tpl->fillin("DIR",$path); - $tpl->fillin("SCRIPT",encode_entities($ENV{'SCRIPT_NAME'})); + $tpl->set_var('ERROR',$message); + $tpl->set_var('BACK',encode_html($path)); + $tpl->set_var('BACK_URL',escape($path)); + $tpl->set_var('SCRIPT',encode_html($ENV{'SCRIPT_NAME'})); - $tpl->parse_if_block("dir",defined $path); + $tpl->parse_if_block('dir',defined $path); - if(ref($vars) eq "HASH") + if(ref($vars) eq 'HASH') { while(my ($key,$value) = each(%$vars)) { - $tpl->fillin($key,$value); + $tpl->set_var($key,$value); } } - my $output = header(-type => "text/html"); + $tpl->parse(); + + my $output = header(-type => 'text/html'); $output .= $tpl->get_template; return \$output; @@ -84,31 +95,17 @@ sub error($;$$) # Print an error message and exit script # ^^^^^ # -# Params: Error message +# Params: 1. Error message +# 2. Display a link to this path at the bottom of the page (optional) +# 3. Hash reference: Template variables (optional) -sub abort($) +sub abort($;$$) { - my $output = error(shift); + my $output = error(shift,shift,shift); print $$output; exit; } -# error_in_use() -# -# Create a message, which shows, that a -# file is currently in use -# -# Params: File, which is in use -# -# Return: Formatted message (Scalar Reference) - -sub error_in_use($) -{ - my $file = shift; - - return error("The file '".encode_entities($file)."' is currently edited by someone else.",upper_path($file)); -} - # it's true, baby ;-) 1;