fix replacement in edge case with NULL integer fields in a table without a primary key
[freeside.git] / htetc / global.asa
index 612f6f4..482572a 100644 (file)
@@ -29,6 +29,7 @@ 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;
@@ -206,9 +207,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;
 }