Commit | Line | Data |
54310121 |
1 | package CGI::Apache; |
2 | use Apache (); |
3 | use vars qw(@ISA $VERSION); |
4 | require CGI; |
5 | @ISA = qw(CGI); |
6 | |
12c5d27a |
7 | $VERSION = (qw$Revision: 1.01 $)[1]; |
54310121 |
8 | $CGI::DefaultClass = 'CGI::Apache'; |
9 | $CGI::Apache::AutoloadClass = 'CGI'; |
10 | |
12c5d27a |
11 | sub import { |
12 | my $self = shift; |
13 | my ($callpack, $callfile, $callline) = caller; |
14 | ${"${callpack}::AutoloadClass"} = 'CGI'; |
15 | } |
16 | |
54310121 |
17 | sub new { |
18 | my($class) = shift; |
19 | my($r) = Apache->request; |
20 | %ENV = $r->cgi_env unless defined $ENV{GATEWAY_INTERFACE}; #PerlSetupEnv On |
21 | my $self = $class->SUPER::new(@_); |
22 | $self->{'.req'} = $r; |
23 | $self; |
24 | } |
25 | |
26 | sub header { |
27 | my ($self,@rest) = CGI::self_or_default(@_); |
28 | my $r = $self->{'.req'}; |
29 | $r->basic_http_header; |
30 | return CGI::header($self,@rest); |
31 | } |
32 | |
33 | sub print { |
34 | my($self,@rest) = CGI::self_or_default(@_); |
35 | $self->{'.req'}->print(@rest); |
36 | } |
37 | |
38 | sub read_from_client { |
39 | my($self, $fh, $buff, $len, $offset) = @_; |
40 | my $r = $self->{'.req'} || Apache->request; |
41 | return $r->read($$buff, $len, $offset); |
42 | } |
43 | |
44 | sub new_MultipartBuffer { |
45 | my $self = shift; |
46 | my $new = CGI::Apache::MultipartBuffer->new($self, @_); |
47 | $new->{'.req'} = $self->{'.req'} || Apache->request; |
48 | return $new; |
49 | } |
50 | |
51 | package CGI::Apache::MultipartBuffer; |
52 | use vars qw(@ISA); |
53 | @ISA = qw(MultipartBuffer); |
54 | |
55 | $CGI::Apache::MultipartBuffer::AutoloadClass = 'MultipartBuffer'; |
56 | *CGI::Apache::MultipartBuffer::read_from_client = |
57 | \&CGI::Apache::read_from_client; |
58 | |
59 | |
60 | 1; |
61 | |
62 | __END__ |
63 | |
64 | =head1 NAME |
65 | |
66 | CGI::Apache - Make things work with CGI.pm against Perl-Apache API |
67 | |
68 | =head1 SYNOPSIS |
69 | |
70 | require CGI::Apache; |
71 | |
72 | my $q = new Apache::CGI; |
73 | |
74 | $q->print($q->header); |
75 | |
76 | #do things just like you do with CGI.pm |
77 | |
78 | =head1 DESCRIPTION |
79 | |
80 | When using the Perl-Apache API, your applications are faster, but the |
81 | enviroment is different than CGI. |
82 | This module attempts to set-up that environment as best it can. |
83 | |
12c5d27a |
84 | =head1 NOTE 1 |
54310121 |
85 | |
86 | This module used to be named Apache::CGI. Sorry for the confusion. |
87 | |
12c5d27a |
88 | =head1 NOTE 2 |
89 | |
90 | If you're going to inherit from this class, make sure to "use" it |
91 | after your package declaration rather than "require" it. This is |
92 | because CGI.pm does a little magic during the import() step in order |
93 | to make autoloading work correctly. |
94 | |
54310121 |
95 | =head1 SEE ALSO |
96 | |
97 | perl(1), Apache(3), CGI(3) |
98 | |
99 | =head1 AUTHOR |
100 | |
101 | Doug MacEachern E<lt>dougm@osf.orgE<gt>, hacked over by Andreas König E<lt>a.koenig@mind.deE<gt>, modified by Lincoln Stein <lt>lstein@genome.wi.mit.edu<gt> |
102 | |
103 | =cut |