--- loncom/interface/lonaboutme.pm 2009/05/15 13:43:46 1.133 +++ loncom/interface/lonaboutme.pm 2009/05/19 10:03:37 1.134 @@ -1,7 +1,7 @@ # The LearningOnline Network # Personal Information Page # -# $Id: lonaboutme.pm,v 1.133 2009/05/15 13:43:46 amueller Exp $ +# $Id: lonaboutme.pm,v 1.134 2009/05/19 10:03:37 amueller Exp $ # # Copyright Michigan State University Board of Trustees # @@ -96,14 +96,14 @@ 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); @@ -141,8 +141,8 @@ sub handler { # ------------------------------------------------------------ Get Query String &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['forceedit','forcestudent', - 'register','popup']); + ['forceedit','forcestudent', + 'register','popup']); # ----------------------------------------------- Available Portfolio file display if (($target ne 'tex') && ($action eq 'portfolio')) { @@ -168,8 +168,8 @@ sub handler { if ($is_course) { if ($target ne 'tex') { - my $brcrum = [{href=>"/adm/navmaps",text=>"Navigate Course Contents"}, - {href=>"/adm/aboutme",text=>"Course Information"}]; + my $brcrum = [{href=>"/adm/navmaps",text=>"Navigate Course Contents"}, + {href=>"/adm/aboutme",text=>"Course Information"}]; my $start_page = &Apache::loncommon::start_page( "Course Information", @@ -196,18 +196,18 @@ sub handler { } #------------Get rights - my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum); - my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum); + my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum); + my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum); my $allowed=0; - my $privleged=$allowed=(($env{'user.name'} eq $cnum) && - ($env{'user.domain'} eq $cdom)); + my $privleged=$allowed=(($env{'user.name'} eq $cnum) && + ($env{'user.domain'} eq $cdom)); if ($forcestudent or $target eq 'tex') { $allowed=0; } # --------------------------------------- There is such a user, get environment if ($target ne 'tex') { - my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom); + my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom); my $args = {'function' => $forcestudent, 'domain' => $cdom, 'force_register' => $forceregister}; @@ -216,8 +216,8 @@ sub handler { } else { # Don't show breadcrumbs in popup window $args->{'bread_crumbs'} = [{href=>"/adm/$cdom/$cnum/aboutme",text=>"Personal Information Page"}]; } - my $start_page = &Apache::loncommon::start_page('Personal Information Page',$rss_link,$args); - $r->print($start_page); + my $start_page = &Apache::loncommon::start_page('Personal Information Page',$rss_link,$args); + $r->print($start_page); #Print Privacy Note if ($allowed) { @@ -226,47 +226,47 @@ sub handler { .&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.') .'' ); - } + } #Print last modified - my $lastmod; + my $lastmod; if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) { $lastmod=$syllabus{'uploaded.lastmodified'}; $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never')); - $r->print('
'); - $r->print(&mt('Last updated').': '.$lastmod . ''); - $r->print('
'); + $r->print('
'); + $r->print(&mt('Last updated').': '.$lastmod . ''); + $r->print('
'); } } #Print Help Text - if ($target ne 'tex') { - if($allowed){ - $r->print(&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes'))); - } - } + if ($target ne 'tex') { + if($allowed){ + $r->print(&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes'))); + } + } #----------------Print Functions - if ($target ne 'tex') { - $r->print(&Apache::lontemplate::start_functionslist()); + if ($target ne 'tex') { + $r->print(&Apache::lontemplate::start_functionslist()); if ($allowed) { - my $query_string = &build_query_string({'forcestudent' => '1','popup' => $env{'form.popup'}}); + my $query_string = &build_query_string({'forcestudent' => '1','popup' => $env{'form.popup'}}); $r->print(&Apache::lontemplate::item_functionslist( ''.&mt('Show Public View').'' .&Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView'))); } elsif ($privleged) { - my $query_string = &build_query_string({'forceedit' => '1','popup' => $env{'form.popup'}}); + my $query_string = &build_query_string({'forceedit' => '1','popup' => $env{'form.popup'}}); $r->print(&Apache::lontemplate::item_functionslist( ''. &mt('Edit').'')); - } + } $r->print(&Apache::lontemplate::item_functionslist( &Apache::lontemplate::send_message($r,$cnum,$cdom))); - if ($env{'request.course.id'} && &Apache::lonnet::allowed('srm',$env{'request.course.id'}) && &in_course($cdom,$cnum)) { - if (&Apache::lonnet::allowed('vsa', $env{'request.course.id'}) || &Apache::lonnet::allowed('vsa', $env{'request.course.id'}.'/'.$env{'request.course.sec'})) { + if ($env{'request.course.id'} && &Apache::lonnet::allowed('srm',$env{'request.course.id'}) && &in_course($cdom,$cnum)) { + if (&Apache::lonnet::allowed('vsa', $env{'request.course.id'}) || &Apache::lonnet::allowed('vsa', $env{'request.course.id'}.'/'.$env{'request.course.sec'})) { $r->print(&Apache::lontemplate::item_functionslist( &Apache::loncommon::track_student_link('View recent activity by this student',$cnum,$cdom))); - } + } if (&Apache::lonnet::allowed('vgr', $env{'request.course.id'}) || &Apache::lonnet::allowed('vgr', $env{'request.course.id'}.'/'.$env{'request.course.sec'})) { $r->print(&Apache::lontemplate::item_functionslist( @@ -274,52 +274,52 @@ sub handler { } $r->print(&Apache::lontemplate::item_functionslist( &Apache::loncommon::noteswrapper(&mt('Add Records'),$cnum,$cdom))); - } + } $r->print(&Apache::lontemplate::end_functionslist()); } #------Print Headtitle - if ($target ne 'tex') { - $r->print('
'); - $r->print('

'.&Apache::loncommon::plainname($cnum,$cdom).'

'); - $r->print('
' ); - if ($courseenv{'nickname'}) { - $r->print('

"'.$courseenv{'nickname'}.'"

'); - } - $r->print('

'.&Apache::lonnet::domain($cdom,'description').'

'); - } else { - $r->print('\noindent{\large\textbf{'.&Apache::loncommon::plainname($cnum,$cdom).'}}\\\\\\\\'); - $r->print('\textbf{'.&Apache::lonnet::domain($cdom,'description').'}\\\\'); - } + if ($target ne 'tex') { + $r->print('
'); + $r->print('

'.&Apache::loncommon::plainname($cnum,$cdom).'

'); + $r->print('
' ); + if ($courseenv{'nickname'}) { + $r->print('

"'.$courseenv{'nickname'}.'"

'); + } + $r->print('

'.&Apache::lonnet::domain($cdom,'description').'

'); + } 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 $query_string; + my $query_string; 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'}= + if ($syllabus{'uploaded.photourl'}) { + &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'}); + } + $syllabus{'uploaded.photourl'}= &Apache::lonnet::userphotoupload('uploaddoc','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 ($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)) { + 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{$syl_field}=$field; } $syllabus{'uploaded.lastmodified'}=time; &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum); @@ -329,56 +329,56 @@ sub handler { # ---------------------------------------------------------------- Get syllabus if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) { if ($syllabus{'uploaded.photourl'}) { - &Apache::lonnet::allowuploaded('/adm/aboutme',$syllabus{'uploaded.photourl'}); + &Apache::lonnet::allowuploaded('/adm/aboutme',$syllabus{'uploaded.photourl'}); #This call is to resize all "Personal Information" images in the LonCapa System. When its done, you can remove this line. - &Apache::lonnet::resizeImage(&Apache::lonnet::filelocation('',$syllabus{'uploaded.photourl'})); - #---End Resize--- + &Apache::lonnet::resizeImage(&Apache::lonnet::filelocation('',$syllabus{'uploaded.photourl'})); + #---End Resize--- - $image=qq{}; + $image=qq{}; - if ($target eq 'tex') { - $image=&Apache::lonxml::xmlparse($r,'tex',$image); - } + if ($target eq 'tex') { + $image=&Apache::lonxml::xmlparse($r,'tex',$image); + } } if ($allowed) { $r->print( - '
'. + ''. '

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

'. ''. ''. ''. - '
'); - if ($syllabus{'uploaded.photourl'}) { + ''); + if ($syllabus{'uploaded.photourl'}) { $r->print('
') } $r->print('

'); } - if($allowed) { - $r->print('

'); - } - - if ($target ne 'tex') { #print Image - &Apache::lontemplate::start_ContentBox($r); - &Apache::lontemplate::end_ContentBox($r); - $r->print($image); + if($allowed) { + $r->print(''); + } + + if ($target ne 'tex') { #print Image + &Apache::lontemplate::start_ContentBox($r); + &Apache::lontemplate::end_ContentBox($r); + $r->print($image); - } #End Print Image + } #End Print Image - #Print Content eg. Contactinfo aboutme,... + #Print Content eg. Contactinfo aboutme,... &Apache::lontemplate::print_aboutme_content_template($r,$allowed,$target,\%syllabusfields,\%syllabus); #End Print Content if ($target ne 'tex') { #Begin Print RSS and portfiles - &print_portfiles_link($r,$is_course); - if (&Apache::lonrss::advertisefeeds($cnum,$cdom) ne '') { - &Apache::lontemplate::print_start_template($r,'RSS Feeds and Blogs','LC_ContentBoxSpecial'); - $r->print(&Apache::lonrss::advertisefeeds($cnum,$cdom)); - &Apache::lontemplate::print_end_template($r); - } + &print_portfiles_link($r,$is_course); + if (&Apache::lonrss::advertisefeeds($cnum,$cdom) ne '') { + &Apache::lontemplate::print_start_template($r,'RSS Feeds and Blogs','LC_ContentBoxSpecial'); + $r->print(&Apache::lonrss::advertisefeeds($cnum,$cdom)); + &Apache::lontemplate::print_end_template($r); + } } #End Print RSS and portfiles @@ -388,7 +388,7 @@ sub handler { $r->print(''); } - $r->print('
'); + $r->print(''); } if ($target ne 'tex') {$r->print('
');} else {$r->print('\\\\');} } else { @@ -396,32 +396,32 @@ sub handler { } if ($env{'request.course.id'} - && &Apache::lonnet::allowed('srm',$env{'request.course.id'}) - && &in_course($cdom,$cnum)) { - if ($target ne 'tex') { - $r->print(''); - &Apache::lontemplate::print_start_template($r,&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course'),'LC_ContentBoxSpecial'); - $r->print(''); - $r->print(&mt('Shared by course faculty and staff').&Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message")); - $r->print('

'); + && &Apache::lonnet::allowed('srm',$env{'request.course.id'}) + && &in_course($cdom,$cnum)) { + if ($target ne 'tex') { + $r->print(''); + &Apache::lontemplate::print_start_template($r,&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course'),'LC_ContentBoxSpecial'); + $r->print(''); + $r->print(&mt('Shared by course faculty and staff').&Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message")); + $r->print('

'); &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); - $r->print('

'); - &Apache::lontemplate::print_end_template($r); + $r->print('

'); + &Apache::lontemplate::print_end_template($r); - } 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::lonmsgdisplay::disfacetoface($r,$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::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); + } } if ($target ne 'tex') { - $r->print('
'); - $r->print('
'); + $r->print('
'); + $r->print('
'); if ($env{'form.popup'}) { $r->print('

'.&mt('Close window').''); } - $r->print(&Apache::loncommon::end_page()); + $r->print(&Apache::loncommon::end_page()); } else { - $r->print('\end{document}'); + $r->print('\end{document}'); } @@ -434,8 +434,8 @@ sub in_course { $type ||= 'any'; if (!defined($cdom) || !defined($cnum)) { my $cid = $env{'request.course.id'}; - $cdom = $env{'course.'.$cid.'.domain'}; - $cnum = $env{'course.'.$cid.'.num'}; + $cdom = $env{'course.'.$cid.'.domain'}; + $cnum = $env{'course.'.$cid.'.num'}; } my %roles = &Apache::lonnet::dump('roles',$udom,$uname); my @course_roles = grep(m{^/\Q$cdom\E/\Q$cnum\E[/_]}, keys(%roles)); @@ -443,15 +443,15 @@ sub in_course { return 1 if ($type eq 'any'); my $now = time(); foreach my $role (@course_roles) { - my (undef,$role_end,$role_start)=split(/\_/,$roles{$role}); - my $status = 'active'; - if ($role_start > 0 && $now < $role_start) { - $status = 'future'; - } - if ($role_end > 0 && $now > $role_end) { - $status = 'previous'; - } - return 1 if ($status eq $type); + my (undef,$role_end,$role_start)=split(/\_/,$roles{$role}); + my $status = 'active'; + if ($role_start > 0 && $now < $role_start) { + $status = 'future'; + } + if ($role_end > 0 && $now > $role_end) { + $status = 'previous'; + } + return 1 if ($status eq $type); } return 0; } @@ -479,10 +479,10 @@ sub print_portfiles_link { 'difl' => 'Display file listing', ); if ($filecounts->{'both'} > 0) { - $output = '

'; - $output .= ($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'

'; + $output = '

'; + $output .= ($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'

'; - #$output = '

'.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'

'; + #$output = '

'.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'

'; $output .= ''.$lt{'difl'}. '

'; @@ -500,14 +500,14 @@ sub print_portfiles_link { } } if ($filecounts->{'withoutpass'}) { - $output .= '
  • '.&mt('[quant,_1,file is,files are] publicly accessible.',$filecounts->{'withoutpass'}).'
  • '; + $output .= '
  • '.&mt('[quant,_1,file is,files are] publicly accessible.',$filecounts->{'withoutpass'}).'
  • '; } if ($filecounts->{'withpass'}) { - $output .= '
  • '.&mt('[quant,_1,file requires,files require] a passphrase for access.',$filecounts->{'withpass'}).'
  • '; + $output .= '
  • '.&mt('[quant,_1,file requires,files require] a passphrase for access.',$filecounts->{'withpass'}).'
  • '; } $output .= ''; - $output .='

    '; - $output .='
    '; + $output .='

    '; + $output .='
    '; } $r->print($output); return; @@ -568,7 +568,7 @@ sub display_portfolio_header { ({href=>"/adm/$cdom/$cnum/aboutme".$query_string, text=>&mt('Personal Information Page - [_1]',$name), title=>&mt('Go to personal information page for [_1]', $name)}, - {href=>"/adm/$cdom/$cnum/aboutme/portfolio", + {href=>"/adm/$cdom/$cnum/aboutme/portfolio", text=>&mt('Viewable files - [_1]', $name), title=>&mt('Viewable portfolio files for [_1]', $name)} ); @@ -595,8 +595,8 @@ sub display_portfolio_files { } my $output = '
    '. - &mt('File access type: ').''; foreach my $type ('withoutpass','withpass','both') { $output .= '