--- rat/lonratedt.pm 2002/05/10 15:42:16 1.7 +++ rat/lonratedt.pm 2002/05/10 19:46:52 1.9 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Edit Handler for RAT Maps # -# $Id: lonratedt.pm,v 1.7 2002/05/10 15:42:16 www Exp $ +# $Id: lonratedt.pm,v 1.9 2002/05/10 19:46:52 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -37,6 +37,56 @@ use Apache::Constants qw(:common); use Apache::lonnet; use Apache::lonratsrv; +my @links=(); +my @resources=(); + + +# Mapread read maps into global arrays @links and @resources, determines status + +sub mapread { + my $fn=shift; + + undef @links; + undef @resources; + + my ($outtext,$errtext)=&Apache::lonratsrv::loadmap($fn,''); + if ($errtext) { return ($errtext,2); } + +# -------------------------------------------------------------------- Read map + foreach (split(/\<\&\>/,$outtext)) { + my ($command,$number,$content)=split(/\<\:\>/,$_); + if ($command eq 'objcont') { + $resources[$number]=$content; + } + if ($command eq 'objlinks') { + $links[$number]=$content; + } + } +# ------------------------------------------------------- Is this a linear map? + my @starters=(); + my @endings=(); + undef @starters; + undef @endings; + + foreach (@links) { + if (defined($_)) { + my ($start,$end,$cond)=split(/\:/,$_); + if ((defined($starters[$start])) || (defined($endings[$end]))) { + return + ('Map too complex, has branchings. Use advanced editor.',1); + } + $starters[$start]=1; + $endings[$end]=1; + if ($cond) { + return + ('Map too complex, has conditions. Use advanced editor.',1); + } + } + + } + return $errtext; +} + # --------------------------------------------------------- Build up RAT screen sub ratedt { my ($r,$url)=@_; @@ -58,11 +108,26 @@ sub ratedt { ENDDOCUMENT } +# ---------------------------------------------------------------- Make buttons + +sub buttons { + my $adv=shift; + my $output='