![]() ![]() | ![]() |
- update to make use of the moved functions
1: # The LearningOnline Network 2: # "About Me" Personal Information 3: # 4: # $Id: lonaboutme.pm,v 1.41 2006/04/08 06:59:34 albertel Exp $ 5: # 6: # Copyright Michigan State University Board of Trustees 7: # 8: # This file is part of the LearningOnline Network with CAPA (LON-CAPA). 9: # 10: # LON-CAPA is free software; you can redistribute it and/or modify 11: # it under the terms of the GNU General Public License as published by 12: # the Free Software Foundation; either version 2 of the License, or 13: # (at your option) any later version. 14: # 15: # LON-CAPA is distributed in the hope that it will be useful, 16: # but WITHOUT ANY WARRANTY; without even the implied warranty of 17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18: # GNU General Public License for more details. 19: # 20: # You should have received a copy of the GNU General Public License 21: # along with LON-CAPA; if not, write to the Free Software 22: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23: # 24: # /home/httpd/html/adm/gpl.txt 25: # 26: # http://www.lon-capa.org/ 27: # 28: 29: package Apache::lonaboutme; 30: 31: use strict; 32: use Apache::Constants qw(:common); 33: use Apache::loncommon; 34: use Apache::lonnet; 35: use Apache::lontexconvert; 36: use Apache::lonfeedback; 37: use Apache::lonrss(); 38: use Apache::lonlocal; 39: use Apache::lonmsgdisplay(); 40: 41: sub handler { 42: my $r = shift; 43: &Apache::loncommon::content_type($r,'text/html'); 44: $r->send_http_header; 45: return OK if $r->header_only; 46: my $target=$env{'form.grade_target'}; 47: # ------------------------------------------------------------ Print the screen 48: if ($target eq 'tex') { 49: $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'})); 50: } 51: my (undef,undef,$cdom,$cnum)=split(/\//,$r->uri); 52: # Is this even a user? 53: if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') { 54: &Apache::loncommon::simple_error_page($r,'No info', 55: 'No user information available'); 56: return OK; 57: } 58: # --------------------------------------------------------- The syllabus fields 59: my %syllabusfields=&Apache::lonlocal::texthash( 60: 'aaa_contactinfo' => 'Contact Information', 61: 'bbb_aboutme' => 'About Me', 62: 'ccc_webreferences' => 'Web References'); 63: 64: # ------------------------------------------------------------ Get Query String 65: &Apache::loncommon::get_unprocessed_cgi 66: ($ENV{'QUERY_STRING'},['forcestudent','register']); 67: # ----------------------------------------------------- Force menu registration 68: my $addentries=''; 69: if ($env{'form.register'}) { 70: $addentries=' onLoad="'.&Apache::lonmenu::loadevents(). 71: '" onUnload="'.&Apache::lonmenu::unloadevents().'"'; 72: $r->print(&Apache::lonmenu::registerurl(1)); 73: } 74: # --------------------------------------------------------------- Force Student 75: my $forcestudent=''; 76: if ($env{'form.forcestudent'}) { $forcestudent='student'; }; 77: 78: # --------------------------------------- There is such a user, get environment 79: my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum); 80: if ($target ne 'tex') { 81: my $start_page = 82: &Apache::loncommon::start_page("Personal Information",undef, 83: {'function' => $forcestudent, 84: 'add_entries' => $addentries, 85: 'domain' => $cdom, 86: 'force_register' => 87: $env{'form.register'},}); 88: $r->print($start_page); 89: $r->print('<h1>'.&Apache::loncommon::plainname($cnum,$cdom).'</h1>'); 90: } else { 91: $r->print('\noindent{\large\textbf{'.&Apache::loncommon::plainname($cnum,$cdom).'}}\\\\\\\\'); 92: } 93: if ($courseenv{'nickname'}) { 94: $r->print( 95: '<h2>"'.$courseenv{'nickname'}. 96: '"</h2>'); 97: } 98: if ($target ne 'tex') { 99: $r->print('<h3>'.$Apache::lonnet::domaindescription{$cdom}.'</h3>'. 100: '<p>'.&Apache::loncommon::messagewrapper('Send me a message',$cnum,$cdom).'</p>'.&Apache::lonrss::advertisefeeds($cnum,$cdom)); 101: } else { 102: $r->print('\textbf{'.$Apache::lonnet::domaindescription{$cdom}.'}\\\\'); 103: } 104: my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum); 105: my $allowed=0; 106: 107: # does this user have privileges to post, etc? 108: 109: my $privleged=$allowed=(($env{'user.name'} eq $cnum) && 110: ($env{'user.domain'} eq $cdom)); 111: if ($forcestudent or $target eq 'tex') { $allowed=0; } 112: 113: if ($allowed) { 114: $r->print('<p><b>'.&mt('Privacy Note').':</b> '. 115: &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.'). 116: '</p>'. 117: &Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes','Help with filling in text boxes').'</p><p><a href="'.$r->uri.'?forcestudent=1">Show Public View</a>'. 118: &Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView').'</p>'); 119: } elsif ($privleged && $target ne 'tex') { 120: $r->print('<p><a href="'.$r->uri.'?forceedit=1"><font size="+1">'. 121: &mt('Edit').'</font></a></p>'); 122: } 123: if (($env{'form.uploaddoc.filename'}) && 124: ($env{'form.storeupl'}) && ($allowed)) { 125: if ($env{'form.uploaddoc.filename'}=~/\.(gif|jpg|png|jpeg)$/i) { 126: if ($syllabus{'uploaded.photourl'}) { 127: &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'}); 128: } 129: $syllabus{'uploaded.photourl'}= 130: &Apache::lonnet::userfileupload('uploaddoc',undef,'aboutme'); 131: } 132: $syllabus{'uploaded.lastmodified'}=time; 133: &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum); 134: } 135: if ($allowed && $env{'form.delupl'}) { 136: if ($syllabus{'uploaded.photourl'}) { 137: &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'}); 138: delete($syllabus{'uploaded.photourl'}); 139: &Apache::lonnet::del('aboutme',['uploaded.photourl'],$cdom,$cnum); 140: } 141: } 142: if (($allowed) && ($env{'form.storesyl'})) { 143: foreach (keys %syllabusfields) { 144: my $field=$env{'form.'.$_}; 145: $field=~s/\s+$//s; 146: $field=&Apache::lonfeedback::clear_out_html($field, 147: $env{'user.adv'}); 148: $syllabus{$_}=$field; 149: } 150: $syllabus{'uploaded.lastmodified'}=time; 151: &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum); 152: } 153: 154: # ---------------------------------------------------------------- Get syllabus 155: if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) { 156: my $lastmod=$syllabus{'uploaded.lastmodified'}; 157: $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never')); 158: $r->print(&mt('Last updated').': '.$lastmod); 159: if ($syllabus{'uploaded.photourl'}) { 160: &Apache::lonnet::allowuploaded('/adm/aboutme', 161: $syllabus{'uploaded.photourl'}); 162: my $image= 163: qq{<img src="$syllabus{'uploaded.photourl'}" align="right" />}; 164: if ($target eq 'tex') { 165: $image=&Apache::lonxml::xmlparse($r,'tex',$image); 166: } 167: $r->print($image); 168: } 169: if ($allowed) { 170: $r->print( 171: '<form method="post"> 172: <input type="submit" name="delupl" value="Delete Photo" /> 173: </form>'. 174: '<form method="post" enctype="multipart/form-data">'. 175: '<h3>'.&mt('Upload a Photo').'</h3>'. 176: '<input type="file" name="uploaddoc" size="50">'. 177: '<input type="submit" name="storeupl" value="Upload">'. 178: '</form><form method="post">'); 179: 180: } 181: foreach (sort keys %syllabusfields) { 182: if (($syllabus{$_}) || ($allowed)) { 183: my $message=$syllabus{$_}; 184: &Apache::lonfeedback::newline_to_br(\$message); 185: $message 186: =~s/(http\:\/\/[^\s]+)/\<a href=\"$1\"\>\<tt\>$1\<\/tt\>\<\/a\>/g; 187: if ($allowed) { 188: $message=&Apache::lonspeller::markeduptext($message); 189: } 190: $message=&Apache::lontexconvert::msgtexconverted($message); 191: if ($target ne 'tex') { 192: $r->print('<h3>'.$syllabusfields{$_}.'</h3><blockquote>'. 193: $message.'</blockquote>'); 194: } else { 195: $r->print('\\\\\textbf{'.$syllabusfields{$_}.'}\\\\'. 196: &Apache::lonxml::xmlparse($r,'tex',$message).'\\\\'); 197: } 198: if ($allowed) { 199: $r->print('<br /><textarea cols="80" rows="6" name="'.$_.'">'. 200: $syllabus{$_}. 201: '</textarea><input type="submit" name="storesyl" value="'. 202: &mt('Store').'" />'); 203: } 204: } 205: } 206: if ($allowed) { 207: $r->print('</form>'); 208: } 209: if ($target ne 'tex') {$r->print('</p>');} else {$r->print('\\\\');} 210: } else { 211: $r->print('<p>'.&mt('No personal information provided').'.</p>'); 212: } 213: if ($env{'request.course.id'}) { 214: if (&Apache::lonnet::allowed('srm',$env{'request.course.id'})) { 215: if ($target ne 'tex') { 216: $r->print('<a name="coursecomment" />'); 217: $r->print('<hr /><h3>'. 218: &mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'</h3>'. 219: &mt('Shared by course faculty and staff'). 220: &Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message"). 221: '<br />'); 222: &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); 223: $r->print('<hr />'); 224: if (&Apache::lonnet::allowed('vsa', 225: $env{'request.course.id'}) || 226: &Apache::lonnet::allowed('vsa', 227: $env{'request.course.id'}.'/'. 228: $env{'request.course.sec'})) { 229: $r->print(&Apache::loncommon::track_student_link 230: ('View recent activity by this student', 231: $cnum,$cdom).(' 'x2)); 232: } 233: $r->print(&Apache::loncommon::noteswrapper('Add Records',$cnum,$cdom)); 234: } else { 235: $r->print('\\\\\textbf{'.&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'}\\\\'.&mt('Shared by course faculty and staff').'\\\\\\\\'); 236: &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); 237: } 238: } 239: } 240: if ($target ne 'tex') { 241: $r->print(&Apache::loncommon::end_page()); 242: } else { 243: $r->print('\end{document}'); 244: } 245: return OK; 246: } 247: 248: 1; 249: __END__