--- loncom/interface/lonaboutme.pm 2008/01/16 12:19:39 1.66
+++ loncom/interface/lonaboutme.pm 2008/12/10 15:58:36 1.81
@@ -1,7 +1,7 @@
# The LearningOnline Network
# "About Me" Personal Information
#
-# $Id: lonaboutme.pm,v 1.66 2008/01/16 12:19:39 bisitz Exp $
+# $Id: lonaboutme.pm,v 1.81 2008/12/10 15:58:36 ehlerst Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -26,6 +26,53 @@
# http://www.lon-capa.org/
#
+=pod
+
+=head1 NAME
+
+pache::lonaboutme
+
+=head1 SYNOPSIS
+
+(empty)
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 OVERVIEW
+
+(empty)
+
+
+=head1 SUBROUTINES
+
+=over
+
+=item handler()
+
+=item in_course()
+
+=item aboutme_info()
+
+=item print_portfiles_link()
+
+=item build_query_string()
+
+=item display_portfolio_header()
+
+=item display_portfolio_files()
+
+=item portfolio_files()
+
+=item build_hierarchy()
+
+=item parse_directory()
+
+=back
+
+=cut
+
+
package Apache::lonaboutme;
use strict;
@@ -37,6 +84,7 @@ use Apache::lonfeedback;
use Apache::lonrss();
use Apache::lonlocal;
use Apache::lonmsgdisplay();
+use Apache::lontemplate;
use HTML::Entities();
sub handler {
@@ -60,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',
@@ -69,17 +141,25 @@ sub handler {
# ------------------------------------------------------------ Get Query String
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['forceedit','forcestudent',
- 'register']);
+ 'register','popup']);
# ----------------------------------------------- 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;
@@ -115,14 +195,16 @@ sub handler {
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,
+ 'domain' => $cdom,
+ 'force_register' => $forceregister};
+ if ($env{'form.popup'}) {
+ $args->{'no_nav_bar'} = 1;
+ }
my $start_page =
- &Apache::loncommon::start_page("Personal Information", $rss_link,
- {'function' => $forcestudent,
- 'domain' => $cdom,
- 'force_register' =>
- $forceregister,});
+ &Apache::loncommon::start_page("Personal Information",$rss_link,$args);
$r->print($start_page);
- $r->print(''.&Apache::loncommon::plainname($cnum,$cdom).'
');
+ $r->print(''.&Apache::loncommon::plainname($cnum,$cdom).'
');
} else {
$r->print('\noindent{\large\textbf{'.&Apache::loncommon::plainname($cnum,$cdom).'}}\\\\\\\\');
}
@@ -132,8 +214,7 @@ sub handler {
'"');
}
if ($target ne 'tex') {
- $r->print(''.&Apache::lonnet::domain($cdom,'description').'
'.
- ''.&Apache::loncommon::messagewrapper(&mt('Send me a message'),$cnum,$cdom).'
'.&Apache::lonrss::advertisefeeds($cnum,$cdom));
+ $r->print(''.&Apache::lonnet::domain($cdom,'description').'
');#OLD SendMessage POS
} else {
$r->print('\textbf{'.&Apache::lonnet::domain($cdom,'description').'}\\\\');
}
@@ -147,16 +228,16 @@ sub handler {
if ($forcestudent or $target eq 'tex') { $allowed=0; }
if ($allowed) {
- my $query_string = &build_query_string({'forcestudent' => '1',});
+ 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','Help with filling in text boxes').''.&mt('Show Public View').''.
+ &Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')).'
'.&mt('Show Public View').''.
&Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView').'
');
} elsif ($privleged && $target ne 'tex') {
- my $query_string = &build_query_string({'forceedit' => '1',});
- $r->print(''.
- &mt('Edit').'
');
+ my $query_string = &build_query_string({'forceedit' => '1','popup' => $env{'form.popup'}});
+ $r->print(''.
+ &mt('Edit').'
');
}
if (($env{'form.uploaddoc.filename'}) &&
($env{'form.storeupl'}) && ($allowed)) {
@@ -165,7 +246,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);
@@ -189,20 +270,22 @@ sub handler {
&Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum);
}
+my $lastmod;
+my $image;
# ---------------------------------------------------------------- Get syllabus
if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {
- my $lastmod=$syllabus{'uploaded.lastmodified'};
+ $lastmod=$syllabus{'uploaded.lastmodified'};
$lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never'));
- $r->print(&mt('Last updated').': '.$lastmod);
+ # $r->print(&mt('Last updated').': '.$lastmod); #Old Last Modifi Pos
if ($syllabus{'uploaded.photourl'}) {
&Apache::lonnet::allowuploaded('/adm/aboutme',
$syllabus{'uploaded.photourl'});
- my $image=
- qq{};
+ $image=qq{};
+
if ($target eq 'tex') {
$image=&Apache::lonxml::xmlparse($r,'tex',$image);
}
- $r->print($image);
+ # $r->print($image); #Print old Image
}
if ($allowed) {
$r->print(
@@ -211,37 +294,39 @@ sub handler {
'.
'');
}
if ($target ne 'tex') {$r->print('
');} else {$r->print('\\\\');}
@@ -250,7 +335,8 @@ sub handler {
}
if ($target ne 'tex') {
- &print_portfiles_link($r,$is_course);
+ # &print_portfiles_link($r,$is_course); #old Print files
+
}
if ($env{'request.course.id'}
@@ -281,10 +367,17 @@ sub handler {
}
}
if ($target ne 'tex') {
+ if ($env{'form.popup'}) {
+ $r->print(''.&mt('Close window').'');
+ }
+ $r->print('
'.&mt('Last updated').': '.$lastmod);
$r->print(&Apache::loncommon::end_page());
} else {
$r->print('\end{document}');
}
+
+
+
return OK;
}
@@ -338,7 +431,10 @@ sub print_portfiles_link {
difl => 'Display file listing',
);
if ($filecounts->{'both'} > 0) {
- $output = '
'.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
+ $output = '';
+ $output .= ($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
+
+ #$output = '
'.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
$output .= '
'.$lt{'difl'}.
'';
@@ -362,6 +458,8 @@ sub print_portfiles_link {
$output .= '
'.&mt('[quant,_1,file requires,files require] a passphrase for access.',$filecounts->{'withpass'}).'';
}
$output .= '';
+ $output .='';
+ $output .='
';
}
$r->print($output);
return;
@@ -610,9 +708,10 @@ sub parse_directory {
my $portfolio_root = &Apache::portfolio::get_portfolio_root($cdom,$cnum,
$group);
+ my $getpropath = 1;
my %dirlist = map {
((split('&',$_,2))[0],1)
- } &Apache::lonnet::dirlist($path,$cdom,$cnum,$portfolio_root);
+ } &Apache::lonnet::dirlist($portfolio_root.$path,$cdom,$cnum,$getpropath);
foreach my $item (sort(keys(%{$currhash}))) {
$output .= &portfolio_row_start();
$output .= '';
@@ -664,5 +763,28 @@ 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 ((&allowed('srm',$privcheck)) || (&allowed('dff',$privcheck))) {
+ if (&in_course($uname,$udom,$cnum,$cdom)) {
+ return 1;
+ }
+ }
+ return;
+}
+
1;
__END__
|