--- loncom/xml/lonxml.pm	2001/07/12 15:26:03	1.101
+++ loncom/xml/lonxml.pm	2001/08/06 19:44:54	1.105
@@ -12,6 +12,7 @@
 # 6/2,6/3,6/8,6/9 Gerd Kortemeyer
 # 6/12,6/13 H. K. Ng
 # 6/16 Gerd Kortemeyer
+# 7/27 H. K. Ng
 
 package Apache::lonxml; 
 use vars 
@@ -92,7 +93,31 @@ sub xmlbegin {
 }
 
 sub xmlend {
-    return '</html>';
+    my $discussion='';
+    if ($ENV{'request.course.id'}) {
+       my $symb=&Apache::lonnet::symbread();
+       if ($symb) {
+          my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},
+                     $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+		     $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+          if ($contrib{'version'}) {
+              $discussion.=
+                  '<address><hr /><h2>Course Discussion of Resource</h2>';
+              my $idx;
+              for ($idx=1;$idx<=$contrib{'version'};$idx++) {
+                  my $message=$contrib{$idx.':message'};
+                  $message=~s/\n/\<br \/\>/g;
+		  $discussion.='<p><b>'.$contrib{$idx.':sendername'}.' at '.
+		      $contrib{$idx.':senderdomain'}.'</b> ('.
+                      localtime($contrib{$idx.':timestamp'}).
+                      '):<blockquote>'.$message.
+                      '</blockquote></p>'; 
+              }
+              $discussion.='</address>';
+          }
+       }
+    }
+    return $discussion.'</html>';
 }
 
 sub fontsettings() {
@@ -107,6 +132,7 @@ sub fontsettings() {
 sub registerurl {
     my $forcereg=shift;
     if ($Apache::lonxml::registered) { return ''; }
+    $Apache::lonxml::registered=1;
     if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) {
         my $hwkadd='';
         if ($ENV{'REQUEST_URI'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {
@@ -513,6 +539,7 @@ sub init_safespace {
   $safeeval->permit(":base_math");
   $safeeval->permit("sort");
   $safeeval->deny(":base_io");
+  $safehole->wrap(\&Apache::scripttag::xmlparse,$safeeval,'&xmlparse');
   $safehole->wrap(\&Apache::lonnet::EXT,$safeeval,'&EXT');
   
   $safehole->wrap(\&Math::Cephes::asin,$safeeval,'&asin');