version 1.169, 2022/10/04 20:39:57
|
version 1.171, 2025/05/26 19:55:11
|
Line 63 my %randomizationcode; # code used to gr
|
Line 63 my %randomizationcode; # code used to gr
|
my %encurl; # URLs in this folder are supposed to be encrypted |
my %encurl; # URLs in this folder are supposed to be encrypted |
my %hiddenurl; # this URL (or complete folder) is supposed to be hidden |
my %hiddenurl; # this URL (or complete folder) is supposed to be hidden |
my %deeplinkout; # this URL (or complete folder) unavailable in deep-link session |
my %deeplinkout; # this URL (or complete folder) unavailable in deep-link session |
|
my %deeplinkonlyprot; # Link protection items used for deep-link only resources. |
my %rescount; # count of unhidden items in each map |
my %rescount; # count of unhidden items in each map |
my %mapcount; # count of unhidden maps in each map |
my %mapcount; # count of unhidden maps in each map |
|
|
Line 504 sub error_detail {
|
Line 505 sub error_detail {
|
} else { |
} else { |
$errinfo .= &mt('To rectify this problem, create and publish the missing file'); |
$errinfo .= &mt('To rectify this problem, create and publish the missing file'); |
} |
} |
|
my $fileurl = $uri; |
|
$fileurl =~s{^/res/}{/priv/}; |
if ($fileswitch) { |
if ($fileswitch) { |
my $rolename = &Apache::lonnet::plaintext($filerole); |
my $rolename = &Apache::lonnet::plaintext($filerole); |
my $rolecode; |
my $rolecode; |
Line 513 sub error_detail {
|
Line 516 sub error_detail {
|
$rolecode = $filerole.'./'.$audomfile.'/'.$aunamefile; |
$rolecode = $filerole.'./'.$audomfile.'/'.$aunamefile; |
} |
} |
$errinfo .= '.<br />'.&mt('You will need to [_1]switch server[_2].', |
$errinfo .= '.<br />'.&mt('You will need to [_1]switch server[_2].', |
'<a href="/adm/switchserver?otherserver='.$switchserver.'&role='.$rolecode.'">','</a>'); |
'<a href="/adm/switchserver?otherserver='.$switchserver.'&role='.$rolecode. |
|
'&origurl='.&escape($fileurl).'">','</a>'); |
} else { |
} else { |
my $fileurl = $uri; |
&js_escape(\$fileurl); |
$fileurl =~s{^/res/}{/priv/}; |
|
$errinfo .= ': <a href="javascript:go('."'$fileurl'".');">'.&mt('Create the missing file').'</a>'; |
$errinfo .= ': <a href="javascript:go('."'$fileurl'".');">'.&mt('Create the missing file').'</a>'; |
} |
} |
} |
} |
Line 537 sub error_detail {
|
Line 540 sub error_detail {
|
} else { |
} else { |
$errinfo .= &mt('To rectify this problem edit the parent map to remove the reference to the missing file'); |
$errinfo .= &mt('To rectify this problem edit the parent map to remove the reference to the missing file'); |
} |
} |
|
my $mapurl = $hash{'map_id_'.$parent_pc}; |
|
$mapurl =~s{^/res/}{/priv/}; |
if ($switchserver) { |
if ($switchserver) { |
$errinfo .= '.<br />'; |
$errinfo .= '.<br />'; |
if ((&Apache::lonnet::will_trust('othcoau',$env{'user.domain'},$audom)) && |
if ((&Apache::lonnet::will_trust('othcoau',$env{'user.domain'},$audom)) && |
(&Apache::lonnet::will_trust('coaurem',$audom,$env{'user.domain'}))) { |
(&Apache::lonnet::will_trust('coaurem',$audom,$env{'user.domain'}))) { |
$errinfo .= &mt('You will need to [_1]switch server[_2].', |
$errinfo .= &mt('You will need to [_1]switch server[_2].', |
'<a href="/adm/switchserver?otherserver='.$switchserver.'&role='.$rolecode.'">','</a>'); |
'<a href="/adm/switchserver?otherserver='.$switchserver.'&role='.$rolecode. |
|
'&origurl='.&escape($mapurl).'">','</a>'); |
} else { |
} else { |
$errinfo .= &mt('Session switch required but prohibited.'); |
$errinfo .= &mt('Session switch required but prohibited.'); |
} |
} |
} else { |
} else { |
my $mapurl = $hash{'map_id_'.$parent_pc}; |
&js_escape(\$mapurl); |
$mapurl =~s{^/res/}{/priv/}; |
|
$errinfo .= ': <a href="javascript:go('."'$mapurl'".');">'.&mt('Edit the map').'</a>'; |
$errinfo .= ': <a href="javascript:go('."'$mapurl'".');">'.&mt('Edit the map').'</a>'; |
} |
} |
} elsif ($uploaded && $courseid) { |
} elsif ($uploaded && $courseid) { |
Line 1182 sub traceroute {
|
Line 1187 sub traceroute {
|
} |
} |
unless (@deeplink < 2) { |
unless (@deeplink < 2) { |
$hash{'deeplinkonly_'.$rid}=join(':',map { &escape($_); } @deeplink); |
$hash{'deeplinkonly_'.$rid}=join(':',map { &escape($_); } @deeplink); |
|
my ($state,$others,$listed,$scope,$protect) = split(/,/,$deeplink[0]); |
|
if (($state eq 'only') && ($protect ne 'none') && ($protect ne '')) { |
|
my ($acctype,$item) = split(/:/,$protect); |
|
if ($acctype =~ /lti(c|d)$/) { |
|
$deeplinkonlyprot{$1}{$item} = 1; |
|
} |
|
} |
} |
} |
|
|
if (defined($hash{'conditions_'.$rid})) { |
if (defined($hash{'conditions_'.$rid})) { |
$hash{'conditions_'.$rid}=simplify( |
$hash{'conditions_'.$rid}=simplify( |
'('.$hash{'conditions_'.$rid}.')|('.$sofar.')'); |
'('.$hash{'conditions_'.$rid}.')|('.$sofar.')'); |
Line 1517 sub readmap {
|
Line 1528 sub readmap {
|
undef %hiddenurl; |
undef %hiddenurl; |
undef %encurl; |
undef %encurl; |
undef %deeplinkout; |
undef %deeplinkout; |
|
undef %deeplinkonlyprot; |
undef %rescount; |
undef %rescount; |
undef %mapcount; |
undef %mapcount; |
$retfrid=''; |
$retfrid=''; |
Line 1666 sub readmap {
|
Line 1678 sub readmap {
|
undef %hiddenurl; |
undef %hiddenurl; |
undef %encurl; |
undef %encurl; |
undef %deeplinkout; |
undef %deeplinkout; |
|
undef %deeplinkonlyprot; |
undef %rescount; |
undef %rescount; |
undef %mapcount; |
undef %mapcount; |
$errtext=''; |
$errtext=''; |
Line 1790 sub build_tmp_hashes {
|
Line 1803 sub build_tmp_hashes {
|
&accinit($uri,$short,$fn); |
&accinit($uri,$short,$fn); |
&hiddenurls(); |
&hiddenurls(); |
} |
} |
|
my ($cdom,$cnum) = split(/_/,$short); |
|
if (keys(%deeplinkonlyprot)) { |
|
my %launchers; |
|
if (ref($deeplinkonlyprot{'c'}) eq 'HASH') { |
|
if (($cdom ne '') && ($cnum ne '')) { |
|
my %crs_linkprot = &Apache::lonnet::get_course_lti($cnum,$cdom,'provider'); |
|
foreach my $num (keys(%{$deeplinkonlyprot{'c'}})) { |
|
if ((ref($crs_linkprot{$num}) eq 'HASH') && |
|
($crs_linkprot{$num}{'name'} ne '')) { |
|
push(@{$launchers{$crs_linkprot{$num}{'name'}}},'c'.$num); |
|
} |
|
} |
|
} |
|
} |
|
if (ref($deeplinkonlyprot{'d'}) eq 'HASH') { |
|
if ($cdom ne '') { |
|
my %dom_linkprot = &Apache::lonnet::get_domain_lti($cdom,'linkprot'); |
|
foreach my $num (keys(%{$deeplinkonlyprot{'d'}})) { |
|
if ((ref($dom_linkprot{$num}) eq 'HASH') && |
|
($dom_linkprot{$num}{'name'} ne '')) { |
|
push(@{$launchers{$dom_linkprot{$num}{'name'}}},'d'.$num); |
|
} |
|
} |
|
} |
|
} |
|
if (keys(%launchers)) { |
|
my $value = ''; |
|
foreach my $key (sort(keys(%launchers))) { |
|
if (ref($launchers{$key}) eq 'ARRAY') { |
|
$value .= &escape($key).':'.join(',',@{$launchers{$key}}).'&'; |
|
} |
|
} |
|
$value =~ s/&$//; |
|
&Apache::lonnet::appenv({'request.course.deeponlyprot' => $value}); |
|
} |
|
} |
$errtext .= &get_mapalias_errors(); |
$errtext .= &get_mapalias_errors(); |
# ------------------------------------------------------- Put versions into src |
# ------------------------------------------------------- Put versions into src |
foreach my $key (keys(%hash)) { |
foreach my $key (keys(%hash)) { |
Line 1830 sub build_tmp_hashes {
|
Line 1879 sub build_tmp_hashes {
|
} |
} |
|
|
# Was initial access via a deep-link? |
# Was initial access via a deep-link? |
my ($cdom,$cnum) = split(/_/,$short); |
|
if (($cdom ne '') && ($env{'request.deeplink.login'} ne '')) { |
if (($cdom ne '') && ($env{'request.deeplink.login'} ne '')) { |
my $deeplink_symb = &Apache::loncommon::deeplink_login_symb($cnum,$cdom); |
my $deeplink_symb = &Apache::loncommon::deeplink_login_symb($cnum,$cdom); |
if ($deeplink_symb) { |
if ($deeplink_symb) { |