459c6fd49021d3260942a0c9564aa36e4a2a7522
[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     no strict 'subs';
87     CGI::Base::SendHeaders;
88   } else {
89     print $cgi->header;
90   }
91   print <<END;
92 <HTML>
93   <HEAD>
94     <TITLE>Error processing your request</TITLE>
95   </HEAD>
96   <BODY>
97     <CENTER>
98     <H4>Error processing your request</H4>
99     </CENTER>
100     Your request could not be processed because of the following error:
101     <P><B>$error</B>
102     <P>Hit the <I>Back</I> button in your web browser, correct this mistake, and try again.
103   </BODY>
104 </HTML>
105 END
106
107 }
108
109 =item eidiot ERROR
110
111 Sends headers and an HTML error message, then exits.
112
113 =cut
114
115 sub eidiot {
116   idiot(@_);
117   exit;
118 }
119
120 =back
121
122 =head1 BUGS
123
124 Not OO.
125
126 Not complete.
127
128 =head1 SEE ALSO
129
130 L<CGI>, L<CGI::Base>
131
132 =head1 HISTORY
133
134 subroutines for the HTML/CGI GUI, not properly OO. :(
135
136 ivan@sisd.com 98-apr-16
137 ivan@sisd.com 98-jun-22
138
139 lose the background, eidiot ivan@sisd.com 98-sep-2
140
141 pod ivan@sisd.com 98-sep-12
142
143 $Log: CGI.pm,v $
144 Revision 1.5  1998-11-09 05:23:55  ivan
145 *** empty log message ***
146
147 Revision 1.4  1998/11/09 04:55:42  ivan
148 support depriciated CGI::Base as well as CGI.pm (for now)
149
150 Revision 1.3  1998/11/08 10:50:19  ivan
151 s/CGI::Base/CGI/; etc.
152
153
154 =cut
155
156 1;
157
158