--- loncom/xml/lonxml.pm	2003/09/21 21:40:06	1.280
+++ loncom/xml/lonxml.pm	2003/09/27 04:08:56	1.281
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # XML Parser Module 
 #
-# $Id: lonxml.pm,v 1.280 2003/09/21 21:40:06 www Exp $
+# $Id: lonxml.pm,v 1.281 2003/09/27 04:08:56 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -160,6 +160,9 @@ $Apache::lonxml::usestyle=1;
 $Apache::lonxml::style_values='';
 $Apache::lonxml::style_end_values='';
 
+#array of ssi calls that need to occur after we are done parsing
+@Apache::lonxml::ssi_info=();
+
 sub xmlbegin {
   my $output='';
   if ($ENV{'browser.mathml'}) {
@@ -353,6 +356,7 @@ sub xmlparse {
  if ($ENV{'request.uri'}) {
     &writeallows($ENV{'request.uri'});
  }
+ &do_registered_ssi();
  if ($Apache::lonxml::counter_changed) { &store_counter() }
  return $finaloutput;
 }
@@ -603,6 +607,7 @@ sub setup_globals {
   &init_counter();
   @Apache::lonxml::pwd=();
   @Apache::lonxml::extlinks=();
+  @Apache::lonxml::ssi_info=();
   if ($target eq 'meta') {
     $Apache::lonxml::redirection = 0;
     $Apache::lonxml::metamode = 1;
@@ -998,6 +1003,19 @@ sub writeallows {
     &Apache::lonnet::appenv(%httpref);
 }
 
+sub register_ssi {
+    my ($url,%form)=@_;
+    push (@Apache::lonxml::ssi_info,{'url'=>$url,'form'=>\%form});
+    return '';
+}
+
+sub do_registered_ssi {
+    foreach my $info (@Apache::lonxml::ssi_info) {
+	my %form=%{ $info->{'form'}};
+	my $url=$info->{'url'};
+	&Apache::lonnet::ssi($url,%form);
+    }
+}
 #
 # Afterburner handles anchors, highlights and links
 #