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