diff options
| -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; + + | 
