--- loncom/interface/lonaboutme.pm 2008/11/20 13:11:36 1.74
+++ loncom/interface/lonaboutme.pm 2014/12/01 22:52:48 1.158
@@ -1,7 +1,7 @@
# The LearningOnline Network
-# "About Me" Personal Information
+# Personal Information Page
#
-# $Id: lonaboutme.pm,v 1.74 2008/11/20 13:11:36 jms Exp $
+# $Id: lonaboutme.pm,v 1.158 2014/12/01 22:52:48 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -50,8 +50,6 @@ described at http://www.lon-capa.org.
=item handler()
-=item in_course()
-
=item aboutme_info()
=item print_portfiles_link()
@@ -80,12 +78,14 @@ use Apache::Constants qw(:common);
use Apache::loncommon;
use Apache::lonnet;
use Apache::lontexconvert;
-use Apache::lonfeedback;
+use Apache::lonhtmlgateway;
use Apache::lonrss();
use Apache::lonlocal;
use Apache::lonmsgdisplay();
use Apache::lontemplate;
+use Apache::longroup;
use HTML::Entities();
+use Image::Magick;
sub handler {
my $r = shift;
@@ -95,39 +95,70 @@ sub handler {
my $target=$env{'form.grade_target'};
# ------------------------------------------------------------ Print the screen
if ($target eq 'tex') {
- $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}));
+ $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}));
}
my (undef,undef,$cdom,$cnum,undef,$action)=split(/\//,$r->uri);
my $is_course;
# Is this even a user?
if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') {
- &Apache::loncommon::simple_error_page($r,'No info',
- 'No user information available');
+ &Apache::loncommon::simple_error_page($r,'No info',
+ 'No user information available');
return OK;
} else {
$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 personal information page available').'}}\\\\\\\\');
+ } else {
+ $r->print(&Apache::loncommon::start_page("Personal Information Page"));
+ $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.').'
'.
+ '
');
+ $r->print(&Apache::loncommon::end_page());
+ }
+ return OK;
+ }
+ }
+ }
+
# --------------------------------------------------------- The syllabus fields
my %syllabusfields=&Apache::lonlocal::texthash(
'aaa_contactinfo' => 'Contact Information',
- 'bbb_aboutme' => 'About Me',
+ 'bbb_aboutme' => 'Personal Information',
'ccc_webreferences' => 'Web References');
# ------------------------------------------------------------ Get Query String
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['forceedit','forcestudent',
- 'register','popup']);
-
-# ----------------------------------------------- Available Portfolio file display
+ ['forceedit','forcestudent','todocs',
+ 'register','popup','folderpath','title']);
+# ----------------------------------------------- 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,267 +166,257 @@ sub handler {
if ($is_course) {
if ($target ne 'tex') {
- my $start_page =
- &Apache::loncommon::start_page(
- "Course Information",
- undef,
- {'function' => $env{'forcestudent'},
- 'domain' => $cdom,
- 'force_register' => $env{'forceregister'},});
+ my $args = {'function' => undef,
+ '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 files').'
');
+ $r->print('
'.&mt('Group Portfolio').'
');
&print_portfiles_link($r,$is_course);
$r->print(&Apache::loncommon::end_page());
}
return OK;
}
-# --------------------------------------------------------------- Force Student
- 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);
+ my ($allowed,$coursedomain,$coursenum);
+ if ($env{'request.course.id'}) {
+ $coursedomain = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ $coursenum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ }
+ my ($cfile) =
+ &Apache::lonnet::can_edit_resource($env{'request.noversionuri'},
+ $coursenum,$coursedomain,
+ $env{'request.noversionuri'},
+ $env{'request.symb'});
+ if ($cfile ne '') {
+ $allowed = 1;
}
-
+
+ if (!$env{'form.forceedit'} or $target eq 'tex') { $allowed=0; }
+
# --------------------------------------- There is such a user, get environment
- my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum);
+
if ($target ne 'tex') {
- my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
- my $args = {'function' => $forcestudent,
+ my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
+ my $args = {'function' => undef,
'domain' => $cdom,
- 'force_register' => $forceregister};
- 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;
+ } elsif (!$env{'form.register'}) { #Don't show breadcrumbs twice, when this page is part of course content and you call it
+ if (($env{'request.course.id'}) &&
+ ($env{'form.folderpath'} =~ /^supplemental/)) {
+ my $crstype = &Apache::loncommon::course_type();
+ my $title = $env{'form.title'};
+ if ($title eq '') {
+ $title = &mt('Personal Information Page');
+ }
+ my $brcrum =
+ &Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1);
+ if (ref($brcrum) eq 'ARRAY') {
+ $args->{'bread_crumbs'} = $brcrum;
+ }
+ } else {
+ $args->{'bread_crumbs'} = [{href=>"/adm/$cdom/$cnum/aboutme",
+ text=>"Personal Information Page"}];
+ }
}
- my $start_page =
- &Apache::loncommon::start_page("Personal Information",$rss_link,$args);
- $r->print($start_page);
- $r->print('
'
+ .''.&mt('Privacy Note:').' '
+ .&mt('The information you submit can be viewed by anybody who is logged into LON-CAPA. Do not provide information that you are not ready to share publicly.')
+ .'
'
+ );
+ } elsif ($syllabus{'uploaded.lastmodified'}) {
+ #Print last modified
+ my $lastmod=$syllabus{'uploaded.lastmodified'};
+ $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never'));
+ $r->print('
');
+ }
}
- my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum);
- my $allowed=0;
+#------Print Headtitle
+ if ($target ne 'tex') {
+ $r->print('
'.
+ '
'.&Apache::loncommon::plainname($cnum,$cdom).'
');
+ if ($allowed) {
+ $r->print('
');
+ if ($courseenv{'nickname'}) {
+ $r->print('
"'.$courseenv{'nickname'}.'"
');
+ }
+ $r->print('
'.&Apache::lonnet::domain($cdom,'description').'
');
+ #Print Help Text
+ $r->print('
'.
+ &Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')).
+ '
');
+ }
+ } else {
+ $r->print('\noindent{\large\textbf{'.&Apache::loncommon::plainname($cnum,$cdom).'}}\\\\\\\\');
+ $r->print('\textbf{'.&Apache::lonnet::domain($cdom,'description').'}\\\\');
+ }
# does this user have privileges to post, etc?
- my $privleged=$allowed=(($env{'user.name'} eq $cnum) &&
- ($env{'user.domain'} eq $cdom));
- if ($forcestudent or $target eq 'tex') { $allowed=0; }
-
- if ($allowed) {
- my $query_string = &build_query_string({'forcestudent' => '1','popup' => $env{'form.popup'}});
- $r->print('
'.&mt('Privacy Note').': '.
- &mt('The information you submit can be viewed by anybody who is logged into LON-CAPA. Do not provide information that you are not ready to share publicly.').
- '
'.
- &Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')).'