--- loncom/interface/lonaboutme.pm 2008/12/02 23:35:21 1.76
+++ loncom/interface/lonaboutme.pm 2008/12/15 16:37:44 1.85
@@ -1,7 +1,7 @@
# The LearningOnline Network
# "About Me" Personal Information
#
-# $Id: lonaboutme.pm,v 1.76 2008/12/02 23:35:21 harmsja Exp $
+# $Id: lonaboutme.pm,v 1.85 2008/12/15 16:37:44 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -108,6 +108,30 @@ sub handler {
$is_course = &Apache::lonnet::is_course($cdom,$cnum);
}
+ my $candisplay = 1;
+ if (!$is_course) {
+ if ($action ne 'portfolio') {
+ $candisplay = &Apache::lonnet::usertools_access($cnum,$cdom,'aboutme');
+ if ((!$candisplay) && ($env{'request.course.id'})) {
+ $candisplay = &aboutme_access($cnum,$cdom);
+ }
+ if (!$candisplay) {
+ if ($target eq 'tex') {
+ $r->print('\noindent{\large\textbf{'.&mt('No user home page available').'}}\\\\\\\\');
+ } else {
+ $r->print(&Apache::loncommon::start_page("Personal Information"));
+ $r->print('
'.&mt('No user home page available') .'
'.
+ &mt('This is a result of one of the following:').''.
+ '- '.&mt('The administrator of this domain has disabled home page functionality for this specific user.').'
'.
+ '- '.&mt('The domain has been configured to disable, by default, home page functionality for all users in the domain.').'
'.
+ '
');
+ $r->print(&Apache::loncommon::end_page());
+ }
+ return OK;
+ }
+ }
+ }
+
# --------------------------------------------------------- The syllabus fields
my %syllabusfields=&Apache::lonlocal::texthash(
'aaa_contactinfo' => 'Contact Information',
@@ -122,12 +146,20 @@ sub handler {
# ----------------------------------------------- Available Portfolio file display
if (($target ne 'tex') && ($action eq 'portfolio')) {
&display_portfolio_header($r,$is_course);
- my ($blocked,$blocktext) =
- &Apache::loncommon::blocking_status('port',$cnum,$cdom);
- if (!$blocked) {
- &display_portfolio_files($r,$is_course);
+ if ((!$is_course) && (!&Apache::lonnet::usertools_access($cnum,$cdom,'portfolio'))) {
+ $r->print(''.&mt('No user portfolio available') .'
'.
+ &mt('This is a result of one of the following:').''.
+ '- '.&mt('The administrator of this domain has disabled portfolio functionality for this specific user.').'
'.
+ '- '.&mt('The domain has been configured to disable, by default, portfolio functionality for all users in the domain.').'
'.
+ '
');
} else {
- $r->print($blocktext);
+ my ($blocked,$blocktext) =
+ &Apache::loncommon::blocking_status('port',$cnum,$cdom);
+ if (!$blocked) {
+ &display_portfolio_files($r,$is_course);
+ } else {
+ $r->print($blocktext);
+ }
}
$r->print(&Apache::loncommon::end_page());
return OK;
@@ -135,13 +167,16 @@ sub handler {
if ($is_course) {
if ($target ne 'tex') {
+ my $brcrum = [{href=>"/adm/navmaps",text=>"Navigate 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'},});
+ 'force_register' => $env{'forceregister'},
+ 'bread_crumbs' => $brcrum});
$r->print($start_page);
$r->print(''.&mt('Group files').'
');
&print_portfiles_link($r,$is_course);
@@ -169,6 +204,7 @@ sub handler {
if ($env{'form.popup'}) {
$args->{'no_nav_bar'} = 1;
}
+ $args->{'bread_crumbs'} = [{href=>"/adm/fhwfdev/$cnum/aboutme",text=>"Personal Information"}];
my $start_page =
&Apache::loncommon::start_page("Personal Information",$rss_link,$args);
$r->print($start_page);
@@ -214,7 +250,7 @@ sub handler {
&Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'});
}
$syllabus{'uploaded.photourl'}=
- &Apache::lonnet::userfileupload('uploaddoc',undef,'aboutme');
+ &Apache::lonnet::userphotoupload('uploaddoc','aboutme');
}
$syllabus{'uploaded.lastmodified'}=time;
&Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum);
@@ -248,8 +284,7 @@ my $image;
if ($syllabus{'uploaded.photourl'}) {
&Apache::lonnet::allowuploaded('/adm/aboutme',
$syllabus{'uploaded.photourl'});
- $image=
- qq{};
+ $image=qq{};
if ($target eq 'tex') {
$image=&Apache::lonxml::xmlparse($r,'tex',$image);
@@ -258,33 +293,35 @@ my $image;
}
if ($allowed) {
$r->print(
- ''.
'
+');
}
+ &Apache::lontemplate::start_columnSection($r);
&Apache::lontemplate::print_content_template($r,$allowed,$target,\%syllabusfields,\%syllabus);
if($target ne 'tex')
{
-
- &print_portfiles_link($r,$is_course);
- $r->print('');
- $r->print($image);
- $r->print('
');
- $r->print('');
- $r->print('');
-
-
- $r->print('Kontakt');
- $r->print(&Apache::loncommon::messagewrapper(&mt('Send me a message'),$cnum,$cdom).'
'.&Apache::lonrss::advertisefeeds($cnum,$cdom));
-
-
+ &Apache::lontemplate::start_ContentBox($r);
+ $r->print($image);
+ &Apache::lontemplate::send_message($r,$cnum,$cdom);
+ &Apache::lontemplate::end_ContentBox($r);
+ &Apache::lontemplate::end_columnSection($r);
+ &Apache::lontemplate::start_columnSection($r);
+ &Apache::lontemplate::start_ContentBox($r);
+ &print_portfiles_link($r,$is_course);
+ if(&Apache::lonrss::advertisefeeds($cnum,$cdom) ne ''){
+ $r->print('');
+ $r->print('
'.'RSS Feeds and Blogs'.'
');
+ $r->print(&Apache::lonrss::advertisefeeds($cnum,$cdom));
+ $r->print('');
+ }
+ &Apache::lontemplate::end_ContentBox($r);
+ &Apache::lontemplate::end_columnSection($r);
}
if ($allowed) {
@@ -336,7 +373,6 @@ my $image;
$r->print(''.&mt('Close window').'');
}
$r->print('
'.&mt('Last updated').': '.$lastmod);
-
$r->print(&Apache::loncommon::end_page());
} else {
$r->print('\end{document}');
@@ -425,6 +461,7 @@ sub print_portfiles_link {
}
$output .= '';
$output .='
';
+ $output .='';
}
$r->print($output);
return;
@@ -728,5 +765,29 @@ sub parse_directory {
return $output;
}
+sub aboutme_access {
+ my ($uname,$udom) = @_;
+ my $privcheck = $env{'request.course.id'};
+ my $sec;
+ if ($env{'request.course.sec'} ne '') {
+ $sec = $env{'request.course.sec'};
+ $privcheck .= '/'.$sec;
+ }
+ my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ if (($cdom eq '') || ($cnum eq '')) {
+ my %coursehash = &coursedescription($env{'request.course.id'});
+ $cdom = $coursehash{'domain'};
+ $cnum = $coursehash{'cnum'};
+ }
+ if ((&Apache::lonnet::allowed('srm',$privcheck)) ||
+ (&Apache::lonnet::allowed('dff',$privcheck))) {
+ if (&in_course($uname,$udom,$cnum,$cdom)) {
+ return 1;
+ }
+ }
+ return;
+}
+
1;
__END__