--- loncom/lonnet/perl/lonnet.pm 2012/11/30 20:48:34 1.1204 +++ loncom/lonnet/perl/lonnet.pm 2012/12/21 16:58:41 1.1207 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.1204 2012/11/30 20:48:34 raeburn Exp $ +# $Id: lonnet.pm,v 1.1207 2012/12/21 16:58:41 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2798,7 +2798,7 @@ sub can_edit_resource { } if ($uploaded || $incourse) { $home=&homeserver($cnum,$cdom); - } else { + } elsif ($file !~ m{/$}) { $file=~s{^(priv/$match_domain/$match_username)}{/$1}; $file=~s{^($match_domain/$match_username)}{/priv/$1}; # Check that the user has permission to edit this resource @@ -10324,7 +10324,8 @@ sub getdocspath { ':'.$res->randompick(). ':'.$res->randomout(). ':'.$res->encrypted(). - ':'.$res->randomorder(); + ':'.$res->randomorder(). + ':'.$res->is_page(); } } } @@ -10339,19 +10340,24 @@ sub getdocspath { ':'.$mapresobj->randompick(). ':'.$mapresobj->randomout(). ':'.$mapresobj->encrypted(). - ':'.$mapresobj->randomorder(); + ':'.$mapresobj->randomorder(). + ':'.$mapresobj->is_page(); } else { my $maptitle = &gettitle($mapurl); + my $ispage; + if ($mapurl =~ /\.page$/) { + $ispage = 1; + } if ($mapurl eq 'default') { $maptitle = 'Main Course Documents'; } $path = &Apache::lonhtmlcommon::entity_encode($mapurl).'&'. - &Apache::lonhtmlcommon::entity_encode($maptitle).'::::'; + &Apache::lonhtmlcommon::entity_encode($maptitle).':::::'.$ispage; } unless ($mapurl eq 'default') { $path = 'default&'. &Apache::lonhtmlcommon::entity_encode('Main Course Documents'). - '::::&'.$path; + ':::::&'.$path; } } return $path; @@ -10616,14 +10622,14 @@ sub deversion { sub symbread { my ($thisfn,$donotrecurse)=@_; - my $cache_str='request.symbread.cached.'.$thisfn; - if (defined($env{$cache_str})) { - if (($thisfn) || ($env{$cache_str} ne '')) { + my $cache_str; + if ($thisfn ne '') { + $cache_str='request.symbread.cached.'.$thisfn; + if ($env{$cache_str} ne '') { return $env{$cache_str}; } - } + } else { # no filename provided? try from environment - unless ($thisfn) { if ($env{'request.symb'}) { return $env{$cache_str}=&symbclean($env{'request.symb'}); }