unused global
[freeside.git] / FS / FS / CGI.pm
index 4093214..28b3a06 100644 (file)
@@ -1,20 +1,16 @@
 package FS::CGI;
 
 use strict;
-use vars qw(@EXPORT_OK @ISA @header);
+use vars qw(@EXPORT_OK @ISA);
 use Exporter;
 use CGI;
 use URI::URL;
-use CGI::Carp qw(fatalsToBrowser);
+#use CGI::Carp qw(fatalsToBrowser);
 use FS::UID;
 
 @ISA = qw(Exporter);
 @EXPORT_OK = qw(header menubar idiot eidiot popurl table itable ntable
-                small_custview);
-
-@header = ( '-Expires' => '-1',
-            '-Pragma' => 'no-cache',
-            '-Cache-Control' => 'no-cache' );
+                small_custview myexit);
 
 =head1 NAME
 
@@ -49,7 +45,7 @@ Returns an HTML header.
 
 sub header {
   my($title,$menubar,$etc)=@_; #$etc is for things like onLoad= etc.
-  use Carp;
+  #use Carp;
   $etc = '' unless defined $etc;
 
   my $x =  <<END;
@@ -58,6 +54,9 @@ sub header {
         <TITLE>
           $title
         </TITLE>
+        <META HTTP-Equiv="Cache-Control" Content="no-cache">
+        <META HTTP-Equiv="Pragma" Content="no-cache">
+        <META HTTP-Equiv="Expires" Content="0"> 
       </HEAD>
       <BODY BGCOLOR="#e8e8e8"$etc>
           <FONT SIZE=7>
@@ -88,24 +87,27 @@ sub menubar { #$menubar=menubar('Main Menu', '../', 'Item', 'url', ... );
 
 This is depriciated.  Don't use it.
 
-Sends headers and an HTML error message.
+Sends an HTML error message.
 
 =cut
 
 sub idiot {
   #warn "idiot depriciated";
   my($error)=@_;
-  my $cgi = &FS::UID::cgi();
+#  my $cgi = &FS::UID::cgi();
 #  if ( $cgi->isa('CGI::Base') ) {
 #    no strict 'subs';
 #    &CGI::Base::SendHeaders;
 #  } else {
-    print $cgi->header( @FS::CGI::header );
+#    print $cgi->header( @FS::CGI::header );
 #  }
   print <<END;
 <HTML>
   <HEAD>
     <TITLE>Error processing your request</TITLE>
+    <META HTTP-Equiv="Cache-Control" Content="no-cache">
+    <META HTTP-Equiv="Pragma" Content="no-cache">
+    <META HTTP-Equiv="Expires" Content="0"> 
   </HEAD>
   <BODY>
     <CENTER>
@@ -123,19 +125,44 @@ END
 
 This is depriciated.  Don't use it.
 
-Sends headers and an HTML error message, then exits.
+Sends an HTML error message, then exits.
 
 =cut
 
 sub eidiot {
   warn "eidiot depriciated";
+  $HTML::Mason::Commands::r->send_http_header
+    if defined $HTML::Mason::Commands::r;
   idiot(@_);
+  &myexit();
+}
+
+=item myexit
+
+You probably shouldn't use this; but if you must:
+
+If running under mod_perl, calles Apache::exit, otherwise, calls exit.
+
+=cut
+
+sub myexit {
   if (exists $ENV{MOD_PERL}) {
-    $main::Response->End()
-      if defined $main::Response
-         && $main::Response->isa('Apache::ASP::Response');
-    require Apache;
-    Apache::exit();
+
+    if ( defined $main::Response
+         && $main::Response->isa('Apache::ASP::Response') ) {  #Apache::ASP
+      $main::Response->End();
+      require Apache;
+      Apache::exit();
+    } elsif ( defined $HTML::Mason::Commands::m  ) { #Mason
+      #$HTML::Mason::Commands::m->flush_buffer();
+      $HTML::Mason::Commands::m->abort();
+      die "shouldn't fall through to here (mason \$m->abort didn't)";
+    } else {
+      #??? well, it is $ENV{MOD_PERL}
+      warn "running under unknown mod_perl environment; trying Apache::exit()";
+      require Apache;
+      Apache::exit();
+    }
   } else {
     exit;
   }