--- loncom/homework/structuretags.pm 2000/10/11 21:03:27 1.9
+++ loncom/homework/structuretags.pm 2000/12/19 23:22:22 1.23
@@ -6,21 +6,95 @@ use strict;
use Apache::lonnet;
sub BEGIN {
- &Apache::lonxml::register('Apache::structuretags',('block','while','randomlist','problem'));
+ &Apache::lonxml::register('Apache::structuretags',('block','while','randomlist','problem','web','tex','part'));
+}
+
+sub start_web {
+ my ($target,$token,$parstack,$parser,$safeeval)=@_;
+ my $bodytext=&Apache::lonxml::get_all_text("/web",$$parser[$#$parser]);
+ if ($target eq 'web') {
+ return $bodytext;
+ }
+ return '';
+}
+
+sub end_web {
+}
+
+sub start_tex {
+ my ($target,$token,$parstack,$parser,$safeeval)=@_;
+ my $bodytext=&Apache::lonxml::get_all_text("/tex",$$parser[$#$parser]);
+ if ($target eq 'tex') {
+ return $bodytext
+ }
+ return '';
+}
+
+sub end_tex {
}
sub start_problem {
my ($target,$token,$parstack,$parser,$safeeval)=@_;
- my $args ='';
- if ( $#$parstack > -1 ) {
- $args=$$parstack[$#$parstack];
+
+#intialize globals
+ $Apache::inputtags::part='0';
+ @Apache::inputtags::responselist = ();
+
+#adeed vars to the scripting enviroment
+ my $expression='$external::part='.$Apache::inputtags::part.';';
+ &Apache::run::run($expression,$safeeval);
+ my $status;
+ my $datemsg;
+ if ($target ne 'meta') {
+ ($status,$datemsg) = &Apache::lonhomework::check_date('0');
+ push (@Apache::inputtags::status,$status);
+ if ( $status eq 'CLOSED' ) {
+ my $bodytext=&Apache::lonxml::get_all_text("/problem",$$parser[$#$parser]);
+ if ( $target eq "web" ) {
+ return "
Problem is not open to be viewed. The problem $datemsg
";
+ }
+ }
}
- my $name = &Apache::run::run("{$args;".'return $name}',$safeeval);
- return "