--- loncom/homework/structuretags.pm 2001/06/02 03:59:59 1.40
+++ loncom/homework/structuretags.pm 2001/06/26 21:43:30 1.45
@@ -1,6 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
# 2/19 Guy
+# 6/26/2001 fixed extra web display at end of tags
package Apache::structuretags;
use strict;
@@ -21,6 +22,7 @@ sub start_web {
}
sub end_web {
+ return '';
}
sub start_tex {
@@ -33,6 +35,7 @@ sub start_tex {
}
sub end_tex {
+ return '';
}
sub start_problem {
@@ -41,15 +44,24 @@ sub start_problem {
#intialize globals
$Apache::inputtags::part='0';
@Apache::inputtags::responselist = ();
-
+ $Apache::lonhomework::type=&Apache::lonnet::EXT('resource.0.type');
+ &Apache::lonxml::debug("Found this to be of type :$Apache::lonhomework::type:");
+ if ($Apache::lonhomework::type eq '') {
+ $Apache::lonhomework::type='homework';
+ }
#adeed vars to the scripting enviroment
my $expression='$external::part='.$Apache::inputtags::part.';';
&Apache::run::run($expression,$safeeval);
my $status;
my $datemsg;
+ #should get back a or the neccesary stuff to start XML/MathML
my $result=&Apache::londefdef::start_html($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);
@@ -59,9 +71,11 @@ sub start_problem {
if ( $status eq 'CLOSED' ) {
my $bodytext=&Apache::lonxml::get_all_text("/problem",$$parser[$#$parser]);
if ( $target eq "web" ) {
- return $result."
Problem is not open to be viewed. The problem $datemsg
";
+ $result.= $head_tag_start.'';
+ return $result . $body_tag_start .
+ "
Problem is not open to be viewed. The problem $datemsg
";
}
- }
+ }
}
if ($target eq 'web') {
my $name= &Apache::lonxml::get_param('name',$parstack,$safeeval);
@@ -72,8 +86,8 @@ sub start_problem {
$Apache::lonhomework::name=$name;
if ($status eq 'CAN_ANSWER') {
# create a page header and exit
- $result.="$name\n
- \n
+ $result.="$head_tag_start$name\n
+ $body_tag_start\n
\n";
} elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER') {
- $result.="\n";
- }
+ $result.="\n";
+ }
}
- }
+ }
if ($target eq 'meta') {
if ($Apache::inputtags::part eq '0') {
$result=&Apache::response::mandatory_part_meta;
@@ -357,9 +371,15 @@ sub end_startouttext {
if ($target eq 'edit') {
$text=&Apache::lonxml::get_all_text("endouttext",$$parser[$#$parser]);
- $result=
- &Apache::edit::tag_start($target,$token).
- &Apache::edit::editfield($token->[1],$text,"Text Block",50,5);
+ $result.=&Apache::edit::start_table($token)."Text Block |
+Delete:".
+ &Apache::edit::deletelist($target,$token)
+ ." |
+".
+ &Apache::edit::insertlist($target,$token).
+ " |
+
\n".
+ &Apache::edit::editfield($token->[1],$text,"",50,4);
}
if ($target eq 'modified') {
$text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']);
@@ -370,7 +390,7 @@ sub end_startouttext {
sub start_endouttext {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
my $result='';
- if ($target eq "edit" ) { $result=&Apache::edit::tag_end($target,$token); }
+ if ($target eq "edit" ) { $result=" |
".&Apache::edit::end_table()."\n"; }
if ($target eq "modified") { $result=''; }
return $result;
}
@@ -380,7 +400,19 @@ sub end_endouttext {
if ($target eq "edit" || $target eq 'modified') { @result=('','no'); }
return (@result);
}
-
+sub delete_startouttext {
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
+# my $text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']);
+ my $text=$$parser['-1']->get_text("/endouttext");
+ my $token=$$parser['-1']->get_token();
+ &Apache::lonxml::debug("Deleting :$text: and :$token->[0]:$token->[1]:$token->[2]: for startouttext");
+ &Apache::lonxml::end_tag($tagstack,$parstack,$token);
+ # Deleting 2 parallel tag pairs, but we need the numbers later to look like
+ # they did the last time round
+ &Apache::lonxml::increasedepth($token);
+ &Apache::lonxml::decreasedepth($token);
+ return 1;
+}
1;
__END__