d2ed521222c6d366d67a3b35a3d8bc7a04b876be
[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>
51         <CENTER>
52           <H1>
53             $title
54           </H1>
55           $menubar
56         </CENTER>
57       <HR>
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   CGI::Base::SendHeaders();
85   print <<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 =cut
140
141 1;
142
143