version 1.23, 2002/04/12 13:47:21
|
version 1.29, 2002/08/18 21:45:41
|
Line 53 my %hash;
|
Line 53 my %hash;
|
sub addrid { |
sub addrid { |
my ($current,$new,$condid)=@_; |
my ($current,$new,$condid)=@_; |
unless ($condid) { $condid=0; } |
unless ($condid) { $condid=0; } |
if (&Apache::lonnet::allowed('bre',$hash{'src_'.$new})) { |
|
if ($current) { |
if ($current) { |
$current.=','.$new; |
$current.=','.$new; |
} else { |
} else { |
$current=''.$new; |
$current=''.$new; |
} |
} |
} |
|
return $current; |
return $current; |
} |
} |
|
|
|
sub fullmove { |
|
my ($rid,$mapurl,$direction)=@_; |
|
if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'.db', |
|
&GDBM_READER(),0640)) { |
|
($rid,$mapurl)=&move($rid,$mapurl,$direction); |
|
untie(%hash); |
|
} |
|
return($rid,$mapurl); |
|
} |
|
|
sub move { |
sub move { |
my ($rid,$mapurl,$direction)=@_; |
my ($rid,$mapurl,$direction)=@_; |
my $startoutrid=$rid; |
my $startoutrid=$rid; |
Line 74 sub move {
|
Line 84 sub move {
|
if ($direction eq 'forward') { |
if ($direction eq 'forward') { |
# --------------------------------------------------------------------- Forward |
# --------------------------------------------------------------------- Forward |
if ($hash{'type_'.$rid} eq 'finish') { |
if ($hash{'type_'.$rid} eq 'finish') { |
$rid=$hash{'ids_/res/'.$mapurl}; |
$rid=$hash{'ids_'.&Apache::lonnet::clutter($mapurl)}; |
} |
} |
map { |
map { |
my $thiscond= |
my $thiscond= |
Line 110 sub move {
|
Line 120 sub move {
|
} elsif ($direction eq 'back') { |
} elsif ($direction eq 'back') { |
# ------------------------------------------------------------------- Backwards |
# ------------------------------------------------------------------- Backwards |
if ($hash{'type_'.$rid} eq 'start') { |
if ($hash{'type_'.$rid} eq 'start') { |
$rid=$hash{'ids_/res/'.$mapurl}; |
$rid=$hash{'ids_'.&Apache::lonnet::clutter($mapurl)}; |
} |
} |
map { |
map { |
my $thiscond= |
my $thiscond= |
Line 132 sub move {
|
Line 142 sub move {
|
} |
} |
} split(/\,/,$posnext); |
} split(/\,/,$posnext); |
if ($hash{'is_map_'.$next}) { |
if ($hash{'is_map_'.$next}) { |
|
# This jumps to the end of a new map (going down one level) |
if ( |
if ( |
$hash{'map_type_'.$hash{'map_pc_'.$hash{'src_'.$next}}} eq 'sequence') { |
$hash{'map_type_'.$hash{'map_pc_'.$hash{'src_'.$next}}} eq 'sequence') { |
$mapurl=$hash{'src_'.$next}; |
$mapurl=$hash{'src_'.$next}; |
$next=$hash{'map_finish_'.$hash{'src_'.$next}}; |
$next=$hash{'map_finish_'.$hash{'src_'.$next}}; |
} |
} |
|
} elsif |
|
((split(/\./,$startoutrid))[0]!=(split(/\./,$next))[0]) { |
|
# This comes back up from a map (going up one level); |
|
$mapurl=$hash{'map_id_'.(split(/\./,$next))[0]}; |
} |
} |
} |
} |
return ($next,$mapurl); |
return ($next,$mapurl); |
Line 169 sub handler {
|
Line 184 sub handler {
|
# -------------------------------------------------------- Return to last known |
# -------------------------------------------------------- Return to last known |
my $last; |
my $last; |
if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db', |
if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db', |
&GDBM_READER,0640)) { |
&GDBM_READER(),0640)) { |
$last=$hash{'last_known'}; |
$last=$hash{'last_known'}; |
untie(%hash); |
untie(%hash); |
} |
} |
my $newloc; |
my $newloc; |
if ($last) { |
if ($last) { |
$newloc='/res/'.(split(/\_\_\_/,$last))[1]; |
$newloc=&Apache::lonnet::clutter((split(/\_\_\_/,$last))[1]); |
} else { |
} else { |
$newloc='/adm/noidea.html'; |
$newloc='/adm/noidea.html'; |
} |
} |
Line 191 sub handler {
|
Line 206 sub handler {
|
($currenturl=~/^\/adm\/wrapper\//)) { |
($currenturl=~/^\/adm\/wrapper\//)) { |
my $last; |
my $last; |
if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db', |
if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db', |
&GDBM_READER,0640)) { |
&GDBM_READER(),0640)) { |
$last=$hash{'last_known'}; |
$last=$hash{'last_known'}; |
untie(%hash); |
untie(%hash); |
} |
} |
if ($last) { |
if ($last) { |
$currenturl='/res/'.(split(/\_\_\_/,$last))[1]; |
$currenturl=&Apache::lonnet::clutter((split(/\_\_\_/,$last))[1]); |
} else { |
} else { |
$r->content_type('text/html'); |
$r->content_type('text/html'); |
$r->header_out(Location => |
$r->header_out(Location => |
Line 215 sub handler {
|
Line 230 sub handler {
|
|
|
# ============================================================ Tie the big hash |
# ============================================================ Tie the big hash |
if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'.db', |
if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'.db', |
&GDBM_READER,0640)) { |
&GDBM_READER(),0640)) { |
my $rid=$hash{'map_pc_/res/'.$startoutmap}.'.'.$mapnum; |
my $rid=$hash{'map_pc_'.&Apache::lonnet::clutter($startoutmap)}. |
|
'.'.$mapnum; |
|
|
# ------------------------------------------------- Move forward, backward, etc |
# ------------------------------------------------- Move forward, backward, etc |
my $endupmap; |
my $endupmap; |
($next,$endupmap)=&move($rid,$startoutmap,$direction); |
($next,$endupmap)=&move($rid,$startoutmap,$direction); |
# -------------------------------------- Do we have one and only one empty URL? |
# -------------------------------------- Do we have one and only one empty URL? |
my $safecount=0; |
my $safecount=0; |
while (($next) && ($next!~/\,/) && (!$hash{'src_'.$next}) |
while (($next) && ($next!~/\,/) && |
&& ($safecount<25)) { |
((!$hash{'src_'.$next}) || ($hash{'randomout_'.$next})) |
|
&& ($safecount<10000)) { |
($next,$endupmap)=&move($next,$endupmap,$direction); |
($next,$endupmap)=&move($next,$endupmap,$direction); |
$safecount++; |
$safecount++; |
} |
} |
Line 289 Please click on the the resource you int
|
Line 306 Please click on the the resource you int
|
<table border=2> |
<table border=2> |
<tr><th>Title</th><th>Type</th></tr> |
<tr><th>Title</th><th>Type</th></tr> |
ENDSTART |
ENDSTART |
map { |
foreach (@possibilities) { |
$r->print( |
$r->print( |
'<tr><td><a href="'. |
'<tr><td><a href="'. |
$multichoicehash{'src_'.$_}.'">'. |
$multichoicehash{'src_'.$_}.'">'. |
$multichoicehash{'title_'.$_}. |
$multichoicehash{'title_'.$_}. |
'</a></td><td>'.$multichoicehash{'type_'.$_}. |
'</a></td><td>'.$multichoicehash{'type_'.$_}. |
'</td></tr>'); |
'</td></tr>'); |
} @possibilities; |
} |
$r->print('</table></body></html>'); |
$r->print('</table></body></html>'); |
return OK; |
return OK; |
} else { |
} else { |