--- loncom/interface/loncommon.pm 2022/01/19 00:39:01 1.1075.2.163 +++ loncom/interface/loncommon.pm 2024/12/29 23:15:23 1.1075.2.176 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.1075.2.163 2022/01/19 00:39:01 raeburn Exp $ +# $Id: loncommon.pm,v 1.1075.2.176 2024/12/29 23:15:23 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -61,7 +61,6 @@ use POSIX qw(strftime mktime); use Apache::lonmenu(); use Apache::lonenc(); use Apache::lonlocal; -use Apache::lonnet(); use HTML::Entities; use Apache::lonhtmlcommon(); use Apache::loncoursedata(); @@ -3670,6 +3669,30 @@ sub syllabuswrapper { # ----------------------------------------------------------------------------- +sub aboutme_on { + my ($uname,$udom)=@_; + unless ($uname) { $uname=$env{'user.name'}; } + unless ($udom) { $udom=$env{'user.domain'}; } + return if ($udom eq 'public' && $uname eq 'public'); + my $hashkey=$uname.':'.$udom; + my ($aboutme,$cached)=&Apache::lonnet::is_cached_new('aboutme',$hashkey); + if ($cached) { + return $aboutme; + } + $aboutme = &Apache::lonnet::usertools_access($uname,$udom,'aboutme'); + &Apache::lonnet::do_cache_new('aboutme',$hashkey,$aboutme,3600); + return $aboutme; +} + +sub devalidate_aboutme_cache { + my ($uname,$udom)=@_; + if (!$udom) { $udom =$env{'user.domain'}; } + if (!$uname) { $uname=$env{'user.name'}; } + return if ($udom eq 'public' && $uname eq 'public'); + my $id=$uname.':'.$udom; + &Apache::lonnet::devalidate_cache_new('aboutme',$id); +} + sub track_student_link { my ($linktext,$sname,$sdom,$target,$start,$only_body) = @_; my $link ="/adm/trackstudent?"; @@ -4809,6 +4832,9 @@ sub blockcheck { } } } + if (($activity eq 'wishlist') || ($activity eq 'annotate')) { + return (); + } } if (defined($udom) && defined($uname)) { # If uname and udom are for a course, check for blocks in the course. @@ -5784,15 +5810,18 @@ sub bodytag { my $funclist; if (($env{'environment.remote'} eq 'on') && ($env{'request.state'} ne 'construct')) { - $bodytag .= Apache::lonhtmlcommon::scripttag(Apache::lonmenu::utilityfunctions($httphost), 'start')."\n". - Apache::lonmenu::serverform(); - my $forbodytag; - &Apache::lonmenu::prepare_functions($env{'request.noversionuri'}, - $forcereg,$args->{'group'}, - $args->{'bread_crumbs'}, - $advtoolsref,'','',\$forbodytag); - unless (ref($args->{'bread_crumbs'}) eq 'ARRAY') { - $funclist = $forbodytag; + unless ($args->{'switchserver'}) { + $bodytag .= Apache::lonhtmlcommon::scripttag(Apache::lonmenu::utilityfunctions($httphost), 'start')."\n". + Apache::lonmenu::serverform(); + my $forbodytag; + &Apache::lonmenu::prepare_functions($env{'request.noversionuri'}, + $forcereg,$args->{'group'}, + $args->{'bread_crumbs'}, + $advtoolsref,'','',\$forbodytag); + unless (ref($args->{'bread_crumbs'}) eq 'ARRAY') { + $funclist = $forbodytag; + } + $bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); } } else { @@ -5800,40 +5829,61 @@ sub bodytag { # $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls # } - $bodytag .= Apache::lonhtmlcommon::scripttag( - Apache::lonmenu::utilityfunctions($httphost), 'start'); + my $need_endlcint; + unless ($args->{'switchserver'}) { + $bodytag .= Apache::lonhtmlcommon::scripttag( + Apache::lonmenu::utilityfunctions($httphost), 'start'); + $need_endlcint = 1; + } - my ($left,$right) = Apache::lonmenu::primary_menu($args->{'links_disabled'}); + if (($env{'environment.remote'} eq 'on') && ($env{'request.state'} eq 'construct')) { + unless ($env{'form.inhibitmenu'}) { + $bodytag .= &inline_for_remote($public,$role,$realm,$dc_info,$no_inline_link); + } + } else { + my ($left,$right) = Apache::lonmenu::primary_menu($args->{'links_disabled'}); - if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { - if ($dc_info) { - $dc_info = qq|$dc_info|; + if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { + if ($dc_info) { + $dc_info = qq|$dc_info|; + } + $bodytag .= qq|
|; + if ($need_endlcint) { + $bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); + } + return $bodytag; } - $bodytag .= qq| |; - return $bodytag; - } - unless ($env{'request.symb'} =~ m/\.page___\d+___/) { - $bodytag .= qq| |; - } + unless ($env{'request.symb'} =~ m/\.page___\d+___/) { + $bodytag .= qq| |; + } - $bodytag .= $right; + $bodytag .= $right; - if ($dc_info) { - $dc_info = &dc_courseid_toggle($dc_info); + if ($dc_info) { + $dc_info = &dc_courseid_toggle($dc_info); + } + $bodytag .= qq|