--- loncom/interface/lonaboutme.pm 2010/03/18 08:56:00 1.145
+++ loncom/interface/lonaboutme.pm 2012/10/04 13:41:10 1.149
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Personal Information Page
#
-# $Id: lonaboutme.pm,v 1.145 2010/03/18 08:56:00 wenzelju Exp $
+# $Id: lonaboutme.pm,v 1.149 2012/10/04 13:41:10 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -121,7 +121,7 @@ sub handler {
$r->print('\noindent{\large\textbf{'.&mt('No user personal information page available').'}}\\\\\\\\');
} else {
$r->print(&Apache::loncommon::start_page("Personal Information Page"));
- $r->print('
'.&mt('No user personal information page available') .'
'.
+ $r->print('
'.&mt('No user personal information page available') .'
'.
&mt('This is a result of one of the following:').'
'.
'
'.&mt('The administrator of this domain has disabled personal information page functionality for this specific user.').'
'.
'
'.&mt('The domain has been configured to disable, by default, personal information page functionality for all users in the domain.').'
'.
@@ -168,16 +168,22 @@ sub handler {
if ($is_course) {
if ($target ne 'tex') {
- my $brcrum = [{href=>"/adm/navmaps",text=>"Course Contents"},
- {href=>"/adm/aboutme",text=>"Course Information"}];
- my $start_page =
- &Apache::loncommon::start_page(
- "Course Information",
- undef,
- {'function' => $env{'forcestudent'},
- 'domain' => $cdom,
- 'force_register' => $env{'forceregister'},
- 'bread_crumbs' => $brcrum});
+ my $args = {'function' => $env{'forcestudent'},
+ 'domain' => $cdom};
+ if ($env{'form.register'}) {
+ $args->{'force_register'} = $env{'form.register'};
+ } else {
+ my %coursedescription =
+ &Apache::lonnet::coursedescription($cdom.'_'.$cnum);
+ my $cdescr = $coursedescription{'description'};
+ my $brcrum = [{href=>"/adm/$cdom/$cnum/aboutme",
+ text=>&mt('Course Information - [_1]',$cdescr),
+ no_mt=>1}
+ ];
+ $args->{'bread_crumbs'} = $brcrum;
+ }
+ my $start_page = &Apache::loncommon::start_page(
+ "Course Information",undef,$args);
$r->print($start_page);
$r->print('
'.&mt('Group Portfolio').'
');
&print_portfiles_link($r,$is_course);
@@ -190,11 +196,6 @@ sub handler {
my $forcestudent='';
if ($env{'form.forcestudent'}) { $forcestudent='student'; };
- my $forceregister = '';
- if ($forcestudent eq '') {
- $forceregister = $env{'form.register'};
- }
-
#------------Get rights
my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum);
my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum);
@@ -209,18 +210,13 @@ sub handler {
my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
my $args = {'function' => undef,
'domain' => $cdom,
-# if this page is part of course content it looses the menu line when switching from Edit Mode to Public Mode. To avoid
-#this, I take take the value of the environment Variable $env{form.register}
-# 'force_register' => $forceregister};
- 'force_register' => $env{'form.register'}};
-
- if ($env{'form.popup'}) {
+ 'force_register' => $env{'form.register'},
+ };
+ if ($env{'form.popup'}) { # Don't show breadcrumbs in popup window
$args->{'no_nav_bar'} = 1;
- #Don't show breadcrumbs twice, when this page is part of course content and you call it
- } elsif ($env{'form.register'}) {
- #do nothing
- } else { # Don't show breadcrumbs in popup window
- $args->{'bread_crumbs'} = [{href=>"/adm/$cdom/$cnum/aboutme",text=>"Personal Information Page"}];
+ } elsif (!$env{'form.register'}) { #Don't show breadcrumbs twice, when this page is part of course content and you call it
+ $args->{'bread_crumbs'} = [{href=>"/adm/$cdom/$cnum/aboutme",
+ text=>"Personal Information Page"}];
}
my $start_page = &Apache::loncommon::start_page('Personal Information Page',$rss_link,$args);
$r->print($start_page);
@@ -413,7 +409,7 @@ sub handler {
}
if ($target ne 'tex') {$r->print(' ');} else {$r->print('\\\\');}
} else {
- $r->print('
'.&mt('No personal information provided').'.
');
+ $r->print('
'.&mt('No personal information provided').'.
');
}
if ($env{'request.course.id'}
@@ -456,21 +452,19 @@ sub in_course {
$cdom = $env{'course.'.$cid.'.domain'};
$cnum = $env{'course.'.$cid.'.num'};
}
- my %roles = &Apache::lonnet::dump('roles',$udom,$uname);
- my @course_roles = grep(m{^/\Q$cdom\E/\Q$cnum\E[/_]}, keys(%roles));
- return 0 if (!@course_roles);
- return 1 if ($type eq 'any');
- my $now = time();
- foreach my $role (@course_roles) {
- my (undef,$role_end,$role_start)=split(/\_/,$roles{$role});
- my $status = 'active';
- if ($role_start > 0 && $now < $role_start) {
- $status = 'future';
- }
- if ($role_end > 0 && $now > $role_end) {
- $status = 'previous';
- }
- return 1 if ($status eq $type);
+ my $typesref;
+ if ($type eq 'all') {
+ $typesref = ['active','previous','future'];
+ } elsif ($type eq 'previous' || $type eq 'future') {
+ $typesref = [$type];
+ }
+ my %roles = &Apache::lonnet::get_my_roles($uname,$udom,'userroles',
+ $typesref,undef,[$cdom]);
+ my ($tmp) = keys(%roles);
+ return 0 if ($tmp =~ /^(con_lost|error|no_such_host)/i);
+ my @course_roles = grep(/^\Q$cnum\E:\Q$cdom\E:/, keys(%roles));
+ if (@course_roles > 0) {
+ return 1;
}
return 0;
}
@@ -526,6 +520,8 @@ sub print_portfiles_link {
}
$output .= '