--- loncom/interface/lonaboutme.pm 2002/08/27 12:48:46 1.1
+++ loncom/interface/lonaboutme.pm 2008/09/11 02:07:27 1.70
@@ -1,7 +1,7 @@
# The LearningOnline Network
-# About a Person
+# "About Me" Personal Information
#
-# $Id: lonaboutme.pm,v 1.1 2002/08/27 12:48:46 www Exp $
+# $Id: lonaboutme.pm,v 1.70 2008/09/11 02:07:27 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -32,31 +32,648 @@ use strict;
use Apache::Constants qw(:common);
use Apache::loncommon;
use Apache::lonnet;
+use Apache::lontexconvert;
+use Apache::lonfeedback;
+use Apache::lonrss();
+use Apache::lonlocal;
+use Apache::lonmsgdisplay();
+use HTML::Entities();
sub handler {
my $r = shift;
- $r->content_type('text/html');
+ &Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
return OK if $r->header_only;
+ my $target=$env{'form.grade_target'};
+# ------------------------------------------------------------ Print the screen
+ if ($target eq 'tex') {
+ $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');
+ return OK;
+ } else {
+ $is_course = &Apache::lonnet::is_course($cdom,$cnum);
+ }
+# --------------------------------------------------------- The syllabus fields
+ my %syllabusfields=&Apache::lonlocal::texthash(
+ 'aaa_contactinfo' => 'Contact Information',
+ 'bbb_aboutme' => 'About Me',
+ 'ccc_webreferences' => 'Web References');
-# ------------------------------------------------------------ Print the screen
- $r->print(< '.&Apache::loncommon::messagewrapper(&mt('Send me a message'),$cnum,$cdom).' '.&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.').
+ ''.&mt('Group files').'
');
+ &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'};
+ }
+
+# --------------------------------------- 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,
+ '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,$args);
+ $r->print($start_page);
+ $r->print(''.&Apache::loncommon::plainname($cnum,$cdom).'
');
+ } else {
+ $r->print('\noindent{\large\textbf{'.&Apache::loncommon::plainname($cnum,$cdom).'}}\\\\\\\\');
+ }
+ if ($courseenv{'nickname'}) {
+ $r->print(
+ '"'.$courseenv{'nickname'}.
+ '"
');
+ }
+ if ($target ne 'tex') {
+ $r->print(''.&Apache::lonnet::domain($cdom,'description').'
'.
+ '
'.&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','popup' => $env{'form.popup'}}); + $r->print(''); + } + if (($env{'form.uploaddoc.filename'}) && + ($env{'form.storeupl'}) && ($allowed)) { + if ($env{'form.uploaddoc.filename'}=~/\.(gif|jpg|png|jpeg)$/i) { + if ($syllabus{'uploaded.photourl'}) { + &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'}); + } + $syllabus{'uploaded.photourl'}= + &Apache::lonnet::userfileupload('uploaddoc',undef,'aboutme'); + } + $syllabus{'uploaded.lastmodified'}=time; + &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum); + } + if ($allowed && $env{'form.delupl'}) { + if ($syllabus{'uploaded.photourl'}) { + &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'}); + delete($syllabus{'uploaded.photourl'}); + &Apache::lonnet::del('aboutme',['uploaded.photourl'],$cdom,$cnum); + } + } + if (($allowed) && ($env{'form.storesyl'})) { + foreach my $syl_field (keys(%syllabusfields)) { + my $field=$env{'form.'.$syl_field}; + $field=~s/\s+$//s; + $field=&Apache::lonfeedback::clear_out_html($field, + $env{'user.adv'}); + $syllabus{$syl_field}=$field; + } + $syllabus{'uploaded.lastmodified'}=time; + &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum); + } + +# ---------------------------------------------------------------- Get syllabus + if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) { + my $lastmod=$syllabus{'uploaded.lastmodified'}; + $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never')); + $r->print(&mt('Last updated').': '.$lastmod); + if ($syllabus{'uploaded.photourl'}) { + &Apache::lonnet::allowuploaded('/adm/aboutme', + $syllabus{'uploaded.photourl'}); + my $image= + qq{}; + if ($target eq 'tex') { + $image=&Apache::lonxml::xmlparse($r,'tex',$image); + } + $r->print($image); + } + if ($allowed) { + $r->print( + ''. + ''); + } + if ($target ne 'tex') {$r->print(''.&mt('No personal information provided').'.
'); + } + + if ($target ne 'tex') { + &print_portfiles_link($r,$is_course); } - $r->print('