--- rat/lonratedt.pm	2004/01/15 03:18:20	1.53
+++ rat/lonratedt.pm	2004/04/24 15:37:30	1.56
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Edit Handler for RAT Maps
 #
-# $Id: lonratedt.pm,v 1.53 2004/01/15 03:18:20 www Exp $
+# $Id: lonratedt.pm,v 1.56 2004/04/24 15:37:30 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);
 
 
 # Mapread read maps into global arrays @links and @resources, determines status
@@ -206,7 +203,11 @@ sub mapread {
             $links[$number]=$content;
         }
         if ($command eq 'objparms') {
-	    return(&mt('Map has resource parameters. Use advanced editor.'),1);
+	    if ($resparms[$number]) {
+		$resparms[$number].='&&&'.$content;
+	    } else {
+		$resparms[$number]=$content;
+	    }
         }
     }
 # ------------------------------------------------------- Is this a linear map?
@@ -514,6 +515,13 @@ sub storemap {
         if (defined($resources[$order[$i]])) {
 	    $output.='<&>objcont<:>'.$order[$i].'<:>'.$resources[$order[$i]];
         }
+	if (defined($resparms[$order[$i]])) {
+	    foreach (split('&&&',$resparms[$order[$i]])) {
+		if ($_) {
+		    $output.='<&>objparms<:>'.$order[$i].'<:>'.$_;
+		}
+	    }
+	}
         if (defined($order[$i+1])) {
 	    if (defined($resources[$order[$i+1]])) {
                $output.='<&>objlinks<:>'.$k.'<:>'.
@@ -528,6 +536,43 @@ sub storemap {
      &Apache::lonratsrv::loadmap($fn,&Apache::lonratsrv::savemap($fn,''));
 }
 
+# ------------------------------------------ Store and get parameters in global
+
+sub storeparameter {
+    my ($to,$name,$value,$ptype)=@_;
+    my $newentry='';
+    my $nametype='';
+    foreach (split('&&&',$resparms[$to])) {
+	my ($thistype,$thisname,$thisvalue)=split('___',$_);
+	if ($thisname) {
+	    unless ($thisname eq $name) {
+		$newentry.=$_.'&&&';
+	    } else {
+		$nametype=$thistype;
+	    }
+	}
+    }
+    unless ($ptype) { $ptype=$nametype; }
+    unless ($ptype) { $ptype='string'; }
+    $newentry.=$ptype.'___'.$name.'___'.$value;
+    $resparms[$to]=$newentry;
+}
+
+sub getparameter {
+    my ($to,$name);
+    my $value=undef;
+    my $ptype=undef;
+    foreach (split('&&&',$resparms[$to])) {
+	my ($thistype,$thisname,$thisvalue)=split('___',$_);
+	if ($thisname eq $name) {
+	    $value=$thisvalue;
+	    $ptype=$thistype;
+	}
+    }
+    return ($value,$ptype);
+}
+
+# ----------------------------------------------------------------- Edit script
 sub editscript {
     my $mode=shift;
     my $resurl=&Apache::loncommon::lastresurl();