--- rat/lonratedt.pm 2003/10/21 20:40:10 1.48 +++ rat/lonratedt.pm 2005/06/08 17:42:01 1.70 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Edit Handler for RAT Maps # -# $Id: lonratedt.pm,v 1.48 2003/10/21 20:40:10 albertel Exp $ +# $Id: lonratedt.pm,v 1.70 2005/06/08 17:42:01 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,10 +25,7 @@ # # http://www.lon-capa.org/ # -# (TeX Content Handler -# -# 05/29/00,05/30 Gerd Kortemeyer) -# 7/1,6/30 Gerd Kortemeyer + package Apache::lonratedt; @@ -176,7 +173,7 @@ use Apache::loncommon; use Apache::lonlocal; use File::Copy; -use vars qw(@order @resources); +use vars qw(@order @resources @resparms @zombies); # Mapread read maps into global arrays @links and @resources, determines status @@ -190,8 +187,13 @@ sub mapread { undef @links; undef @resources; undef @order; + undef @resparms; + undef @zombies; + @resources=(''); @order=(); + @resparms=(); + @zombies=(); my ($outtext,$errtext)=&Apache::lonratsrv::loadmap($fn,''); if ($errtext) { return ($errtext,2); } @@ -200,13 +202,23 @@ sub mapread { foreach (split(/\<\&\>/,$outtext)) { my ($command,$number,$content)=split(/\<\:\>/,$_); if ($command eq 'objcont') { - $resources[$number]=$content; + my ($title,$src,$ext,$type)=split(/\:/,$content); + if ($ext eq 'cond') { next; } + if ($type ne 'zombie') { + $resources[$number]=$content; + } else { + $zombies[$number]=$content; + } } if ($command eq 'objlinks') { $links[$number]=$content; } if ($command eq 'objparms') { - return('Map has resource parameters. Use advanced editor.',1); + if ($resparms[$number]) { + $resparms[$number].='&&&'.$content; + } else { + $resparms[$number]=$content; + } } } # ------------------------------------------------------- Is this a linear map? @@ -220,13 +232,13 @@ sub mapread { my ($start,$end,$cond)=split(/\:/,$_); if ((defined($starters[$start])) || (defined($endings[$end]))) { return - ('Map has branchings. Use advanced editor.',1); + (&mt('Map has branchings. Use advanced editor.'),1); } $starters[$start]=1; $endings[$end]=1; if ($cond) { return - ('Map has conditions. Use advanced editor.',1); + (&mt('Map has conditions. Use advanced editor.'),1); } } @@ -235,7 +247,7 @@ sub mapread { if (defined($resources[$i])) { unless (($starters[$i]) || ($endings[$i])) { return - ('Map has unconnected resources. Use advanced editor.',1); + (&mt('Map has unconnected resources. Use advanced editor.'),1); } } } @@ -293,7 +305,10 @@ sub attemptread { foreach (split(/\<\&\>/,$outtext)) { my ($command,$number,$content)=split(/\<\:\>/,$_); if ($command eq 'objcont') { - $theseres[$number]=$content; + my ($title,$src,$ext,$type)=split(/\:/,$content); + unless ($type eq 'zombie') { + $theseres[$number]=$content; + } } if ($command eq 'objlinks') { $links[$number]=$content; @@ -390,6 +405,10 @@ sub attemptread { # --------------------------------------------------------- Build up RAT screen sub ratedt { my ($r,$url)=@_; + my $frameset = '