#
# HTML generating routines
#
-# Author: Patrick Canterino <patshaping@gmx.net>
-# Last modified: 2004-03-12
+# Author: Patrick Canterino <patrick@patshaping.de>
+# Last modified: 2011-02-11
+#
+# Copyright (C) 1999-2000 Roland Bluethgen, Frank Schoenmann
+# Copyright (C) 2003-2011 Patrick Canterino
+# All Rights Reserved.
+#
+# This file can be distributed and/or modified under the terms of
+# of the Artistic License 2.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 ###
# 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)
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->fillin('ERROR',$message);
+ $tpl->fillin('BACK',encode_html($path));
+ $tpl->fillin('BACK_URL',escape($path));
+ $tpl->fillin('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))
{
}
}
- my $output = header(-type => "text/html");
+ my $output = header(-type => 'text/html');
$output .= $tpl->get_template;
return \$output;
# ^^^^^
#
# Params: 1. Error message
-# 2. Hash reference: Template variables (optional)
+# 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,undef,shift);
+ my $output = error(shift,shift,shift);
print $$output;
exit;
}