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