--- loncom/interface/lonhelpmenu.pm 2014/01/05 21:33:58 1.44 +++ loncom/interface/lonhelpmenu.pm 2022/05/30 12:31:06 1.49 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # generate frame-based help system # -# $Id: lonhelpmenu.pm,v 1.44 2014/01/05 21:33:58 raeburn Exp $ +# $Id: lonhelpmenu.pm,v 1.49 2022/05/30 12:31:06 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,6 +36,7 @@ use Apache::lonlocal; use Apache::lonnet; use lib '/home/httpd/lib/perl/'; use LONCAPA; +use HTML::Entities(); sub handler { my ($r) = @_; @@ -63,6 +64,7 @@ sub handler { } my $faqbaseurl = $Apache::lonnet::perlvar{'FAQHost'}; my $origmail = $Apache::lonnet::perlvar{'lonSupportEMail'}; + $origurl = &unescape($origurl); my $defdom; if ($env{'request.course.id'}) { $defdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; @@ -83,7 +85,6 @@ sub handler { sub display_help_banner { my ($r,$faq,$bug,$topic,$component_url,$origurl,$bugurl,$faqbaseurl,$requestmail,$stayOnPage) = @_; - my $location=&Apache::loncommon::lonhttpdurl("/adm"); my $dom = $env{'request.role.domain'}; my $scripttag = ''; if ($requestmail) { @@ -179,6 +180,15 @@ sub helpmenu_items { lastloc => 'Go back', close => 'Close', ); + my ($target,$bugs_target); + if ((($env{'request.lti.login'}) && ($env{'request.lti.target'} eq 'iframe')) || + (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self'))) { + $target = '_parent'; + $bugs_target = '_blank'; + } else { + $target = '_top'; + $bugs_target = '_top'; + } my %items = ( general => { href => '/adm/help/'.$general_help.'.hlp', @@ -210,6 +220,7 @@ sub helpmenu_items { img => $location.'/lonMisc/smallBug.gif', alt => $lt{'bugs'}, text => $lt{'bugs'}, + target => $bugs_target, }, manuals_web => { href => '', @@ -224,18 +235,18 @@ sub helpmenu_items { text => $lt{'manuals_pdf'}, }, lastloc => { - href => $origurl, + href => &HTML::Entities::encode($origurl,'"&<>'), img => '/res/adm/pages/tolastloc.png', alt => $lt{'lastloc'}, text => $lt{'lastloc'}, - target => '_top', + target => $target, }, close => { href => 'javascript:window.close()', img => $location.'/lonIcons/close.gif', alt => $lt{'close'}, text => $lt{'close'}, - target => '_top', + target => $target, }, ); my %help_submenu = ( @@ -391,9 +402,14 @@ sub display_help_mainpage { $r->print(&Apache::loncommon::start_page('Help Content',undef, {'only_body' => 1,})); } + my $target = '_top'; + if ((($env{'request.lti.login'}) && ($env{'request.lti.target'} eq 'iframe')) || + (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self'))) { + $target = '_parent'; + } if ($stayOnPage) { $r->print('
'); - } + } $r->print(''.$lt{'chen'}); if ($requestmail) { $r->print(', '.$lt{'orto'}); @@ -424,7 +440,7 @@ sub display_help_mainpage { &mt('[_1]Note[_2]: questions about course content should not be directed to the support team, but instead should be sent to the course instructor.'). ' '. &mt('This can be done by clicking the [_1]Communicate[_2] link or the "Send Feedback" link when viewing a content page.', - '','')); + '','')); } $r->print("

"); }