--- loncom/homework/structuretags.pm 2001/07/12 12:27:15 1.46 +++ loncom/homework/structuretags.pm 2001/08/03 22:12:07 1.51 @@ -8,7 +8,7 @@ use strict; use Apache::lonnet; sub BEGIN { - &Apache::lonxml::register('Apache::structuretags',('block','while','randomlist','problem','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext')); + &Apache::lonxml::register('Apache::structuretags',('block','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext')); # &Apache::lonxml::register_insert('problem','',('part','postanswerdate','preduedate')) } @@ -38,12 +38,36 @@ sub end_tex { return ''; } +sub page_start { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; + my $result=&Apache::londefdef::start_html($target,$token,$tagstack,$parstack,$parser,$safeeval); + my $head_tag_start=''.&Apache::lonxml::registerurl(); + my $body_tag_start=' or the neccesary stuff to start XML/MathML - my $result=&Apache::londefdef::start_html($target,$token,$tagstack,$parstack,$parser,$safeeval); + my ($result,$head_tag_start,$body_tag_start)= + &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); - my $head_tag_start=''.&Apache::lonxml::registerurl(); - my $body_tag_start=''; if ($target eq 'web' || $target eq 'grade') { ($status,$datemsg) = &Apache::lonhomework::check_date('0'); push (@Apache::inputtags::status,$status); @@ -106,6 +127,7 @@ sub start_problem {
+
'; my $temp=&Apache::edit::insertlist($target,$token); $result.=$temp; @@ -139,6 +161,7 @@ sub end_problem { } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER') { $result.="\n"; } + $result.=&Apache::lonxml::xmlend(); } } if ($target eq 'meta') { @@ -153,6 +176,39 @@ sub end_problem { return $result; } +sub start_library { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; + my ($result,$head_tag_start,$body_tag_start)= + &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); + if ($target eq 'edit') { + $result.=$head_tag_start."".$body_tag_start. + '
+ + + +
+ '; + my $temp=&Apache::edit::insertlist($target,$token); + $result.=$temp; + return $result; + } + if ($target eq 'modified') { + $result=$token->[4]; + $result.=&Apache::edit::handle_insert(); + return $result; + } + return ''; +} + +sub end_library { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; + my $result=''; + if ($target eq 'edit') { + $result='
'; + } + return $result; +} + sub start_block { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; @@ -263,12 +319,14 @@ sub end_randomlist { sub start_part { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval); + if ($id eq '') { $id = $Apache::lonxml::curdepth; } $Apache::inputtags::part=$id; @Apache::inputtags::responselist = (); + @Apache::inputtags::previous=(); if ($target eq 'meta') { return &Apache::response::mandatory_part_meta; } elsif ($target eq 'web' || $target eq 'grade') { - my ($status,$datemsg) = &Apache::lonhomework::check_date("OPEN_DATE",$id); + my ($status,$datemsg) = &Apache::lonhomework::check_date($id); push (@Apache::inputtags::status,$status); my $expression='$external::datestatus="'.$status.'";'; $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.$id.solved"}.'";';