--- rat/lonratedt.pm 2002/05/18 18:24:34 1.21 +++ rat/lonratedt.pm 2002/05/20 18:54:55 1.22 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Edit Handler for RAT Maps # -# $Id: lonratedt.pm,v 1.21 2002/05/18 18:24:34 www Exp $ +# $Id: lonratedt.pm,v 1.22 2002/05/20 18:54:55 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -305,6 +305,7 @@ sub pastetarget { sub startfinish { foreach (@order) { my ($name,$url,$ext)=split(/\:/,$resources[$_]); + if ($url=~/http\&colon\:\/\//) { $ext='true'; } $resources[$_]=$name.':'.$url.':'.$ext.':normal:res'; } my ($name,$url,$ext)=split(/\:/,$resources[0]); @@ -313,10 +314,35 @@ sub startfinish { $resources[$order[$#order]]=$name.':'.$url.':'.$ext.':finish:res'; } +# ------------------------------------------------------------------- Store map + +sub storemap { + my $fn=shift; + &startfinish(); + my $output='graphdef<:>no'; + my $k=1; + for (my $i=0; $i<=$#order; $i++) { + if (defined($resources[$order[$i]])) { + $output.='<&>objcont<:>'.$order[$i].'<:>'.$resources[$order[$i]]; + } + if (defined($order[$i+1])) { + if (defined($resources[$order[$i+1]])) { + $output.='<&>objlinks<:>'.$k.'<:>'. + $order[$i].':'.$order[$i+1].':0'; + $k++; + } + } + } + $output=~s/http\&colon\:\/\///g; + $ENV{'form.output'}=$output; + return + &Apache::lonratsrv::loadmap($fn,&Apache::lonratsrv::savemap($fn,'')); +} + # ------------------------------------------------------- Simple edit processor sub smpedt { - my ($r,$errtext)=@_; + my ($r,$url,$errtext)=@_; my $buttons=&buttons(2); # ---------------------------------------------------------- Process form input @@ -440,7 +466,7 @@ sub smpedt { $lastsel=$#order; } &pastetarget($lastsel,split(/\&/,$ENV{'form.importdetail'})); - &startfinish(); + &storemap(&Apache::lonnet::filelocation('',$url)); # ------------------------------------------------------------------------- Cut } elsif ($ENV{'form.cut'}) { # ----------------------------------------------------------------------- Paste @@ -738,7 +764,7 @@ sub handler { if ($ENV{'form.forceadv'}) { &ratedt($r,$url); } elsif ($ENV{'form.forcesmp'}) { - &smpedt($r,$errtext); + &smpedt($r,$url,$errtext); } else { &viewmap($r,$url,$adv,$errtext); }