--- loncom/homework/outputtags.pm 2003/05/02 19:10:43 1.27
+++ loncom/homework/outputtags.pm 2003/08/13 18:50:43 1.31
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# tags that create controlled output
#
-# $Id: outputtags.pm,v 1.27 2003/05/02 19:10:43 albertel Exp $
+# $Id: outputtags.pm,v 1.31 2003/08/13 18:50:43 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -88,16 +88,16 @@ sub start_displaytitle {
} else {
$Apache::outputtags::showonce{'displayduetitle'}=1;
}
+ my $name=&Apache::structuretags::get_resource_name();
if ($target eq 'web') {
- $result="
$Apache::lonhomework::name
";
+ $result="$name
";
} elsif ($target eq 'edit') {
$result=&Apache::edit::tag_start($target,$token);
$result.='';
$result.=&Apache::edit::end_table();
} elsif ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') {
- $Apache::lonhomework::name=~s/%/\%/g;
- $Apache::lonhomework::name=~s/&/\&/g;
- $result='\vskip 0 mm\noindent\textbf{'.$Apache::lonhomework::name.'}\vskip 0 mm';
+ $name=&Apache::lonxml::latex_special_symbols($name);
+ $result='\vskip 0 mm\noindent\textbf{'.$name.'}\vskip 0 mm';
}
return $result;
}
@@ -109,6 +109,20 @@ sub end_displaytitle {
return @result;
}
+sub multipart {
+ my ($uri)=@_;
+ if (!defined($uri)) { $uri=$ENV{'request.uri'}; }
+ my @parts;
+ my $metadata = &Apache::lonnet::metadata($uri,'packages');
+ foreach (split(/\,/,$metadata)) {
+ if ($_ =~ /^part_(.*)$/) {
+ my $part = $1;
+ if ($part ne '0') { push(@parts,$part); }
+ }
+ }
+ return @parts;
+}
+
sub start_displayweight {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
my $result;
@@ -128,17 +142,17 @@ sub start_displayweight {
if (!defined($weight) || ($weight eq '')) { $weight=1; }
$result.=$weight;
} else {
- my $metadata = &Apache::lonnet::metadata($ENV{'request.uri'},
- 'packages');
- &Apache::lonxml::debug("metadata for $ENV{'request.uri'} is $metadata");
+ my @parts=&multipart($ENV{'request.uri'});
my $weight;
- foreach (split(/\,/,$metadata)) {
- if ($_ =~ /^part_(.*)$/) {
- my $part = $1;
+ if (@parts) {
+ foreach my $part (@parts) {
my $pweight=&Apache::lonnet::EXT("resource.$part.weight");
if (!defined($pweight) || ($pweight eq '')) { $pweight=1; }
$weight+=$pweight;
- }
+ }
+ } else {
+ $weight = &Apache::lonnet::EXT("resource.$id.weight");
+ if (!defined($weight) || ($weight eq '')) { $weight=1; }
}
$result=$weight;
}