--- loncom/interface/lonaboutme.pm 2002/08/27 12:48:46 1.1 +++ loncom/interface/lonaboutme.pm 2004/05/04 14:34:25 1.24 @@ -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.24 2004/05/04 14:34:25 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,29 +32,184 @@ use strict; use Apache::Constants qw(:common); use Apache::loncommon; use Apache::lonnet; +use Apache::lontexconvert; +use Apache::lonfeedback; +use Apache::lonlocal; 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 - $r->print(<print(< The LearningOnline Network with CAPA - ENDDOCUMENT - $r->print(&Apache::loncommon::bodytag("Personal Information")); -# does this user have privileges to post, etc? + } else { + $r->print(&Apache::lonprintout::print_latex_header($ENV{'form.latex_type'})); + } + my (undef,undef,$cdom,$cnum)=split(/\//,$r->uri); +# Is this even a user? + if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') { + $r->print(''. + &mt('No user information available').''); + return OK; + } +# --------------------------------------------------------- The syllabus fields + my %syllabusfields=&Apache::lonlocal::texthash( + 'aaa_contactinfo' => 'Contact Information', + 'bbb_aboutme' => 'About Me', + 'ccc_webreferences' => 'Web References'); + +# ------------------------------------------------------------ Get Query String + &Apache::loncommon::get_unprocessed_cgi + ($ENV{'QUERY_STRING'},['forcestudent','register']); +# ----------------------------------------------------- Force menu registration + my $addentries=''; + if ($ENV{'form.register'}) { + $addentries=' onLoad="'.&Apache::lonmenu::loadevents(). + '" onUnload="'.&Apache::lonmenu::unloadevents().'"'; + $r->print(&Apache::lonmenu::registerurl(1)); + } +# --------------------------------------------------------------- Force Student + my $forcestudent=''; + if ($ENV{'form.forcestudent'}) { $forcestudent='student'; }; + +# --------------------------------------- There is such a user, get environment + my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum); + if ($target ne 'tex') { + $r->print(''.&Apache::loncommon::bodytag + ("Personal Information",$forcestudent,$addentries,'',$cdom, + $ENV{'form.register'})); + $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::domaindescription{$cdom}.'

'. + '

'.&Apache::loncommon::messagewrapper('Send me a message',$cnum,$cdom).'

'); + } else { + $r->print('\textbf{'.$Apache::lonnet::domaindescription{$cdom}.'}\\\\'); + } + my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum); my $allowed=0; + +# does this user have privileges to post, etc? + + $allowed=(($ENV{'user.name'} eq $cnum) && + ($ENV{'user.domain'} eq $cdom)); + if ($forcestudent or $target eq 'tex') { $allowed=0; } + + if ($allowed) { + if ($target ne 'tex') { + $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').'

Show Public View'. + &Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView').'

'); + } else { + $r->print(' \textbf{'.&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.').'\\\\\\\\'); + } + } + 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.storesyl'})) { + foreach (keys %syllabusfields) { + my $field=$ENV{'form.'.$_}; + $field=~s/\s+$//s; + $field=&Apache::lonfeedback::clear_out_html($field, + $ENV{'user.adv'}); + $syllabus{$_}=$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'}); + $r->print(''); + } + if ($allowed) { + $r->print( + '
'. + '

'.&mt('Upload a Photo').'

'. + ''. + ''. + '
'); + } + foreach (sort keys %syllabusfields) { + if (($syllabus{$_}) || ($allowed)) { + my $message=$syllabus{$_}; + $message=~s/\n/\
/g; + $message + =~s/(http\:\/\/[^\s]+)/\\$1\<\/tt\>\<\/a\>/g; + $message=&Apache::lontexconvert::msgtexconverted($message); + if ($target ne 'tex') { + $r->print('

'.$syllabusfields{$_}.'

'. + $message.'
'); + } else { + $r->print('\\\\\textbf{'.$syllabusfields{$_}.'}\\\\'. + &Apache::lonxml::xmlparse($r,' ',$message).'\\\\'); + } + if ($allowed) { + $r->print('
'); + } + } + } + if ($allowed) { + $r->print(''); + } + if ($target ne 'tex') {$r->print('

');} else {$r->print('\\\\');} + } else { + $r->print('

'.&mt('No personal information provided').'.

'); + } if ($ENV{'request.course.id'}) { - $allowed=&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}); + if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { + if ($target ne 'tex') { + $r->print('

'. + &mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'

'. + &mt('Shared by course faculty and staff'). + &Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message"). +'
'); + &Apache::lonmsg::disfacetoface($r,$cnum,$cdom); + $r->print(&Apache::loncommon::noteswrapper('Add Records',$cnum,$cdom)); + } else { + $r->print('\\\\\textbf{'.&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'}\\\\'.&mt('Shared by course faculty and staff').'\\\\\\\\'); + &Apache::lonmsg::disfacetoface($r,$cnum,$cdom); + } + } } - - $r->print(''); + if ($target ne 'tex') {$r->print('');} else {$r->print('\end{document}');} return OK; }