diff options
Diffstat (limited to 'site_perl/CGI.pm')
-rw-r--r-- | site_perl/CGI.pm | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/site_perl/CGI.pm b/site_perl/CGI.pm new file mode 100644 index 000000000..d2ed52122 --- /dev/null +++ b/site_perl/CGI.pm @@ -0,0 +1,143 @@ +package FS::CGI; + +use strict; +use vars qw(@EXPORT_OK @ISA); +use Exporter; +use CGI::Base; +use CGI::Carp qw(fatalsToBrowser); + +@ISA = qw(Exporter); +@EXPORT_OK = qw(header menubar idiot eidiot); + +=head1 NAME + +FS::CGI - Subroutines for the web interface + +=head1 SYNOPSIS + + use FS::CGI qw(header menubar idiot eidiot); + + print header( 'Title', '' ); + print header( 'Title', menubar('item', 'URL', ... ) ); + + idiot "error message"; + eidiot "error message"; + +=head1 DESCRIPTION + +Provides a few common subroutines for the web interface. + +=head1 SUBROUTINES + +=over 4 + +=item header TITLE, MENUBAR + +Returns an HTML header. + +=cut + +sub header { + my($title,$menubar)=@_; + + <<END; + <HTML> + <HEAD> + <TITLE> + $title + </TITLE> + </HEAD> + <BODY> + <CENTER> + <H1> + $title + </H1> + $menubar + </CENTER> + <HR> +END +} + +=item menubar ITEM, URL, ... + +Returns an HTML menubar. + +=cut + +sub menubar { #$menubar=menubar('Main Menu', '../', 'Item', 'url', ... ); + my($item,$url,@html); + while (@_) { + ($item,$url)=splice(@_,0,2); + push @html, qq!<A HREF="$url">$item</A>!; + } + join(' | ',@html); +} + +=item idiot ERROR + +Sends headers and an HTML error message. + +=cut + +sub idiot { + my($error)=@_; + CGI::Base::SendHeaders(); + print <<END; +<HTML> + <HEAD> + <TITLE>Error processing your request</TITLE> + </HEAD> + <BODY> + <CENTER> + <H4>Error processing your request</H4> + </CENTER> + Your request could not be processed because of the following error: + <P><B>$error</B> + <P>Hit the <I>Back</I> button in your web browser, correct this mistake, and try again. + </BODY> +</HTML> +END + +} + +=item eidiot ERROR + +Sends headers and an HTML error message, then exits. + +=cut + +sub eidiot { + idiot(@_); + exit; +} + +=back + +=head1 BUGS + +Not OO. + +Not complete. + +Uses CGI-modules instead of CGI.pm + +=head1 SEE ALSO + +L<CGI::Base> + +=head1 HISTORY + +subroutines for the HTML/CGI GUI, not properly OO. :( + +ivan@sisd.com 98-apr-16 +ivan@sisd.com 98-jun-22 + +lose the background, eidiot ivan@sisd.com 98-sep-2 + +pod ivan@sisd.com 98-sep-12 + +=cut + +1; + + |