--- loncom/homework/structuretags.pm 2002/02/08 20:58:39 1.81
+++ loncom/homework/structuretags.pm 2002/05/03 19:32:57 1.93
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.81 2002/02/08 20:58:39 albertel Exp $
+# $Id: structuretags.pm,v 1.93 2002/05/03 19:32:57 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -79,7 +79,7 @@ sub page_start {
if (!defined($found{'html'})) {
$result=&Apache::londefdef::start_html($target,$token,$tagstack,$parstack,
$parser,$safeeval);
- $head_tag_start='
'.&Apache::lonxml::registerurl();
+ $head_tag_start=''.&Apache::lonxml::registerurl(undef,$target);
}
my $body_tag_start;
if (!defined($found{'body'})) {
@@ -150,11 +150,10 @@ permanent record is left in the system.<
Checking out resources is subject to course policies, and may exclude future
credit even if done erroneously.
-
-
ENDCHECKOUT
}
@@ -174,12 +173,14 @@ sub start_problem {
$Apache::inputtags::part='0';
@Apache::inputtags::responselist = ();
@Apache::inputtags::previous=();
- &initialize_storage();
- if ($target eq 'web') {
- &Apache::lonhomework::showhash(%Apache::lonhomework::history);
+ if ($target ne 'analyze') {
+ &initialize_storage();
+ if ($target eq 'web') {
+ &Apache::lonhomework::showhash(%Apache::lonhomework::history);
+ }
+ $Apache::lonhomework::type=&Apache::lonnet::EXT('resource.0.type');
+ &Apache::lonxml::debug("Found this to be of type :$Apache::lonhomework::type:");
}
- $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 '') {
my $uri=$ENV{'request.uri'};
if ($uri=~/\.(\w+)$/) {
@@ -265,6 +266,9 @@ sub start_problem {
$rndseed.'" />
+ Show All Foils
';
}
# if we are viewing someone else preserve that info
@@ -297,7 +301,7 @@ sub start_problem {
$result=$token->[4];
$result.=&Apache::edit::handle_insert();
} elsif ($target eq 'tex') {
- $result .= '\begin{document}\noindent\textbf{Problem.}\newline';
+ $result .= '\begin{document} ';
} else {
# page_start returned a starting result, delete it if we don't need it
$result = '';
@@ -310,11 +314,11 @@ sub end_problem {
my $result='';
my $status=$Apache::inputtags::status['-1'];
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ) {
- if ( $target eq 'grade' && $Apache::inputtags::part eq '0' &&
- $status eq 'CAN_ANSWER') {
+ if ( $target eq 'grade' && $Apache::inputtags::part eq '0') {
# if part is zero, no s existed, so we need to the grading
&Apache::inputtags::grade;
- } elsif ( $target eq 'web' && $Apache::inputtags::part eq '0') {
+ } elsif ( $target eq 'web' && $Apache::inputtags::part eq '0' &&
+ $status ne 'UNCHECKEDOUT') {
# if part is zero, no s existed, so we need show the current
# grading status
$result.= &Apache::inputtags::gradestatus($Apache::inputtags::part);
@@ -325,7 +329,8 @@ sub end_problem {
) {
if ($status eq 'CAN_ANSWER') {
$result.="\n";
- } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER') {
+ } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' ||
+ $status eq 'UNCHECKEDOUT' ) {
$result.="\n";
}
$result.=&Apache::lonxml::xmlend();
@@ -342,7 +347,7 @@ sub end_problem {
&Apache::lonxml::debug("in end_problem with $target, edit");
$result='
';
} elsif ($target eq 'tex') {
- $result .= '\end{document}';
+ $result .= '\vskip 0.5mm\noindent\makebox[9.0cm][b]{\hrulefill}\end{document}';
}
return $result;
}
@@ -438,6 +443,7 @@ sub end_while {
#
sub start_randomlist {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
+ my $result;
if ($target eq 'answer' || $target eq 'grade' || $target eq 'web') {
my $body= &Apache::lonxml::get_all_text("/randomlist",$$parser[$#$parser]);
my $b_parser= HTML::TokeParser->new(\$body);
@@ -462,16 +468,27 @@ sub start_randomlist {
# print "END-TAG $b_tok->[1]
";
# }
}
-
my @idx_arr = (0 .. $#randomlist);
&Apache::structuretags::shuffle(\@idx_arr);
my $bodytext = '';
- for(0 .. $#randomlist) {
+ my $show=$#randomlist;
+ my $showarg=&Apache::lonxml::get_param('show',$parstack,$safeeval);
+ $showarg--;
+ if ( ($showarg >= 0) && ($showarg < $show) ) { $show = $showarg; }
+ for(0 .. $show) {
$bodytext .= "$randomlist[ $idx_arr[$_] ]";
}
&Apache::lonxml::newparser($parser,\$bodytext);
+ } elsif ($target eq 'edit' ) {
+ $result .= &Apache::edit::tag_start($target,$token);
+ $result .= &Apache::edit::text_arg('Maximum Tags to Show:','show',$token,5);
+ $result .= &Apache::edit::end_row().&Apache::edit::start_spanning_row();
+ } elsif ($target eq 'modified' ) {
+ my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,
+ 'show');
+ if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }
}
- return "";
+ return $result;
}
sub shuffle {
@@ -488,7 +505,12 @@ sub shuffle {
}
sub end_randomlist {
- return '';
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
+ my $result;
+ if ($target eq 'edit' ) {
+ $result=&Apache::edit::tag_end($target,$token,'End Randomly Parsed Block');
+ }
+ return $result;
}
sub start_part {
@@ -513,7 +535,11 @@ sub start_part {
}
}
}
- return '';
+ if ($target eq 'tex') {
+ return '\\\\';
+ } else {
+ return '';
+ }
}
sub end_part {
@@ -608,17 +634,19 @@ sub end_startouttext {
$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);
+ &Apache::edit::end_row().&Apache::edit::start_spanning_row()."\n".
+ &Apache::edit::editfield($token->[1],$text,"",50,4);
}
if ($target eq 'modified') {
$text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']);
$result=''.&Apache::edit::modifiedfield();
}
+ if ($target eq 'tex') {
+ $result .= '\noindent ';
+ }
return $result;
}
sub start_endouttext {
|