support depriciated CGI::Base as well as CGI.pm (for now)
[freeside.git] / site_perl / CGI.pm
1 package FS::CGI;
2
3 use strict;
4 use vars qw(@EXPORT_OK @ISA);
5 use Exporter;
6 use CGI;
7 use CGI::Carp qw(fatalsToBrowser);
8 use FS::UID;
9
10 @ISA = qw(Exporter);
11 @EXPORT_OK = qw(header menubar idiot eidiot);
12
13 =head1 NAME
14
15 FS::CGI - Subroutines for the web interface
16
17 =head1 SYNOPSIS
18
19   use FS::CGI qw(header menubar idiot eidiot);
20
21   print header( 'Title', '' );
22   print header( 'Title', menubar('item', 'URL', ... ) );
23
24   idiot "error message"; 
25   eidiot "error message";
26
27 =head1 DESCRIPTION
28
29 Provides a few common subroutines for the web interface.
30
31 =head1 SUBROUTINES
32
33 =over 4
34
35 =item header TITLE, MENUBAR
36
37 Returns an HTML header.
38
39 =cut
40
41 sub header {
42   my($title,$menubar)=@_;
43
44   <<END;
45     <HTML>
46       <HEAD>
47         <TITLE>
48           $title
49         </TITLE>
50       </HEAD>
51       <BODY BGCOLOR="#ffffff">
52           <FONT COLOR="#FF0000" SIZE=7>
53             $title
54           </FONT>
55           <BR><BR>
56           $menubar
57       <BR><BR>
58 END
59 }
60
61 =item menubar ITEM, URL, ...
62
63 Returns an HTML menubar.
64
65 =cut
66
67 sub menubar { #$menubar=menubar('Main Menu', '../', 'Item', 'url', ... );
68   my($item,$url,@html);
69   while (@_) {
70     ($item,$url)=splice(@_,0,2);
71     push @html, qq!<A HREF="$url">$item</A>!;
72   }
73   join(' | ',@html);
74 }
75
76 =item idiot ERROR
77
78 Sends headers and an HTML error message.
79
80 =cut
81
82 sub idiot {
83   my($error)=@_;
84   my($cgi)=FS::UID::cgi;
85   if ( $cgi->isa('CGI::Base') ) {
86     CGI::Base::SendHeaders;
87   } else {
88     print $cgi->header;
89   }
90   print <<END;
91 <HTML>
92   <HEAD>
93     <TITLE>Error processing your request</TITLE>
94   </HEAD>
95   <BODY>
96     <CENTER>
97     <H4>Error processing your request</H4>
98     </CENTER>
99     Your request could not be processed because of the following error:
100     <P><B>$error</B>
101     <P>Hit the <I>Back</I> button in your web browser, correct this mistake, and try again.
102   </BODY>
103 </HTML>
104 END
105
106 }
107
108 =item eidiot ERROR
109
110 Sends headers and an HTML error message, then exits.
111
112 =cut
113
114 sub eidiot {
115   idiot(@_);
116   exit;
117 }
118
119 =back
120
121 =head1 BUGS
122
123 Not OO.
124
125 Not complete.
126
127 =head1 SEE ALSO
128
129 L<CGI>, L<CGI::Base>
130
131 =head1 HISTORY
132
133 subroutines for the HTML/CGI GUI, not properly OO. :(
134
135 ivan@sisd.com 98-apr-16
136 ivan@sisd.com 98-jun-22
137
138 lose the background, eidiot ivan@sisd.com 98-sep-2
139
140 pod ivan@sisd.com 98-sep-12
141
142 $Log: CGI.pm,v $
143 Revision 1.4  1998-11-09 04:55:42  ivan
144 support depriciated CGI::Base as well as CGI.pm (for now)
145
146 Revision 1.3  1998/11/08 10:50:19  ivan
147 s/CGI::Base/CGI/; etc.
148
149
150 =cut
151
152 1;
153
154