so Search.tsf and Search.rdf work
[freeside.git] / htetc / global.asa
index 5cfcca6..3781f94 100644 (file)
@@ -10,15 +10,19 @@ use CGI 2.47;
 use Date::Format;
 use Date::Parse;
 use Time::Local;
+use Time::Duration;
 use Tie::IxHash;
 use HTML::Entities;
 use IO::Handle;
 use IO::File;
+use IO::Scalar;
 use Net::Whois::Raw qw(whois);
 if ( $] < 5.006 ) {
   eval "use Net::Whois::Raw 0.32 qw(whois)";
   die $@ if $@;
 }
+use Text::CSV_XS;
+use Spreadsheet::WriteExcel;
 use Business::CreditCard;
 use String::Approx qw(amatch);
 use Chart::LinesPoints;
@@ -29,9 +33,11 @@ use FS::Record qw(qsearch qsearchs fields dbdef);
 use FS::Conf;
 use FS::CGI qw(header menubar popurl table itable ntable idiot eidiot
                small_custview myexit http_header);
+use FS::UI::Web;
 use FS::Msgcat qw(gettext geterror);
 use FS::Misc qw( send_email );
 use FS::Report::Table::Monthly;
+use FS::TicketSystem;
 
 use FS::agent;
 use FS::agent_type;
@@ -205,9 +211,16 @@ sub sprintAutoProfile {
 }
 
 sub include {
-  ( my $file = shift ) =~ s(^/)(%%%FREESIDE_DOCUMENT_ROOT%%%/);
+  my $file = shift;
+  my $shift = 0;
+  if ( $file =~ m(^([^/].*)/[^/]+) ) {
+    unshift @{$Response->{asp}{includes_dir}}, "./$1";
+    $shift = 1;
+  }
+  $file =~ s(^/)(%%%FREESIDE_DOCUMENT_ROOT%%%/);
   #broken in 5.005# ${$Response->TrapInclude($file, @_)};
   my $ref = $Response->TrapInclude($file, @_);
+  shift @{$Response->{asp}{includes_dir}} if $shift;
   $$ref;
 }