File:
[LON-CAPA] /
loncom /
interface /
lonhelpmenu.pm
Revision
1.1:
download - view:
text,
annotated -
select for diffs
Sat Jul 3 18:49:42 2004 UTC (20 years, 10 months ago) by
raeburn
Branches:
MAIN
CVS tags:
HEAD
Integration of help icons in breadcrumb trail into a single icon. Click on icon to open new window with gateway to help options within frameset (or within main window if pop-ups blocked). Help options include inline topic help, support request form, FAQ-o-matic, and bug reporting (all contextualized). Option to collect form parameter information from page displaying help icon currently disabled.
Some work required:
lonsupportreq.pm - replace call to Mail::Send with more sophisticated CPAN module (e.g., Mail::Sender that allows specification of from: address and attachments.
# The LearningOnline Network with CAPA
# generate frame-based help system
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
#
package Apache::lonhelpmenu;
use strict;
use lib qw(/home/httpd/lib/perl);
use Apache::Constants qw(:common);
use Apache::loncommon();
sub handler
{
my $r = shift;
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['page','color','function','faq','bug','topic','component_help','origurl']);
$r->content_type('text/html');
$r->send_http_header;
if ($r->header_only) {
return OK;
}
my $color = &Apache::lonnet::unescape($ENV{'form.color'});
my $faq = &Apache::lonnet::unescape($ENV{'form.faq'});
my $bug = &Apache::lonnet::unescape($ENV{'form.bug'});
my $topic = &Apache::lonnet::unescape($ENV{'form.topic'});
my $function = &Apache::lonnet::unescape($ENV{'form.function'});
my $component_help = &Apache::lonnet::unescape($ENV{'form.component_help'});
my $origurl = $ENV{'form.origurl'};
my $component_url = $component_help;
if ($component_url) {
$component_url = '/adm/help/'.$component_url.'.hlp';
}
my $bugurl = $Apache::lonnet::perlvar{'BugzillaHost'};
$bugurl .= 'enter_bug.cgi?product=LON-CAPA&bug_file_loc='.$origurl;
if ($bug) {
$bugurl .= '&component='.$bug;
}
my $faqbaseurl = $Apache::lonnet::perlvar{'FAQHost'};
my $requestmail = $Apache::lonnet::perlvar{'lonSupportEMail'};
if ($ENV{'form.page'} eq 'banner') {
&display_help_banner ($r,$color,$function,$faq,$bug,$topic,$component_url,$origurl,$bugurl,$faqbaseurl,$requestmail);
} elsif ($ENV{'form.page'} eq 'body') {
&display_help_mainpage ($r,$color,$function,$faq,$bug,$topic,$component_url,$origurl,$bugurl,$faqbaseurl,$requestmail);
}
return OK;
}
sub display_help_banner {
my ($r,$color,$function,$faq,$bug,$topic,$component_url,$origurl,$bugurl,$faqbaseurl,$requestmail) = @_;
my $bodytag = &Apache::loncommon::bodytag('',$function,'rightmargin="0" leftmargin="0" marginwidth="0" topmargin="1" marginheight="1"',1);
my $fontcolor = &Apache::loncommon::designparm($function.'.font');
my $alinkcolor = &Apache::loncommon::designparm($function.'.alink');
my $vlinkcolor = &Apache::loncommon::designparm($function.'.vlink');
my $pagecolor = &Apache::loncommon::designparm($function.'.pgbg');
my $tablecolor = &Apache::loncommon::designparm($function.'.tabbg');
$r->print(<<END);
<html>
<head>
<title>Help Banner</title>
<style type="text/css">
<!--
a:link {text-decoration: none; color: $fontcolor; }
a:visited {text-decoration: none; color: $fontcolor; }
a:active {text-decoration: none; color: $fontcolor; }
a:hover {text-decoration: underline; color: $vlinkcolor; }
-->
</style>
<script type="text/javascript">
function noTopic () {
bodyframe.document.write("<html><head><title>Topic Page</title></head>")
bodyframe.document.write('$bodytag')
bodyframe.document.write("The LON-CAPA help system does not currently include a specific pop-up help item for this topic. You may wish to consult the LON-CAPA <a href='/adm/help/author.manual.pdf'>Authoring Manual</a> or the <a href='/adm/help/course.manual.pdf'>Course Coordinator Manual</a>.")
bodyframe.document.write("</body></html>")
body.document.close()
}
</script>
</head>
$bodytag
<table width="600" border="0" cellspacing="0" cellpadding="0" height="55">
<tr height="50">
<td width='5'> </td>
<td>
<fieldset><legend><img src="/adm/lonIcons/minilogo.gif" height='20' width='29' valign='bottom' /> <b><font size="+1">LON-CAPA help/support</font></b></legend>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#000000">
<tr>
<td>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
<tr>
<td>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
<tr>
<td>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#ffffff">
<tr bgcolor="$tablecolor">
END
if (($component_url) || ($ENV{'user.adv'})) {
if ($component_url) {
$r->print("
<td align=\"center\"> <b><a href=\"$component_url\" target=\"bodyframe\">");
} elsif ($ENV{'user.adv'}) {
$r->print('<td align="center"> <b><a href="javascript:noTopic()" target="bodyframe">');
}
$r->print('
<image src="/adm/help/gif/smallHelp.gif" border="0" alt="(Topic help)" valign="middle" /> Topic help</a></b> </td>');
}
if ($requestmail) {
$r->print('
<td align="center"> <b><a href="/adm/support?origurl='.$origurl.'&function='.$function.'" target="bodyframe"><image src="/adm/lonMisc/feedback.gif" border="0" alt="(Ask helpdesk)" valign="middle" /> Ask helpdesk</a></b> </td>');
}
if ($ENV{'user.adv'}) {
$r->print(<<END)
<td align="center">
<b><a href="$faqbaseurl/fom/cache/$faq.html" target="bodyframe"><image src="/adm/lonMisc/smallFAQ.gif" border="0" alt="(FAQ)" valign="middle" /> FAQ</a></b>
</td>
<td align="center"> <b><a href="$bugurl" target="bodyframe"><image src="/adm/lonMisc/smallBug.gif" border="0" alt="(Report a bug)" valign="middle" /> Report a bug</a> </b></td>
END
}
$r->print(<<END);
<td align="center"> <b><a href="javascript:window.close()" target="_top"><image src="/adm/lonIcons/move_up.gif" border="0" alt="(Close window)" valign="middle" />Close</a></b> </td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</fieldset>
</td>
<td width='5'> </td>
</tr>
<tr height='5'>
<td colspan='3' height='5'> </td>
</tr>
</table>
</body>
</html>
END
}
sub display_help_mainpage {
my ($r,$color,$function,$faq,$bug,$topic,$component_url,$origurl,$bugurl,$faqbaseurl,$requestmail) = @_;
my $bodytag = &Apache::loncommon::bodytag('',$function,'topmargin="0" marginheight="0"',1);
$r->print(<<END);
<html>
<head>
<title>Help Content</title>
<script type="text/javascript">
function noTopic() {
bodyframe.document.write("<html><head><title>Topic Page</title></head>$bodytag")
bodyframe.document.write("The LON-CAPA help system does not currently include a specific pop-up help item for this topic. You may wish to consult the LON-CAPA <a href='/adm/help/author.manual.pdf'>Authoring Manual</a> or the <a href='/adm/help/course.manual.pdf'>Course Coordinator Manual</a>.")
bodyframe.document.write("</body></html>")
body.document.close()
}
</script>
</head>
$bodytag
Choose an entry below to go directly to a relevant help page
END
if ($requestmail) {
$r->print(", or to submit a help request to the LON-CAPA support staff at you institution.");
} else {
$r->print(".");
}
if ($topic) {
if ( ($component_url) || ($ENV{'user.adv'}) ) {
if ($component_url) {
$r->print("
<ul>
<li><a href=\"$component_url\">Visit the help page for $topic</a></li>
</ul>
<p>Display the page in the inline help system that covers this topic.</p>
");
} elsif ($ENV{'user.adv'}) {
$r->print("
<ul>
<li><td align=\"center\"> <a href=\"javascript:noTopic()\">Inline help system for $topic</a></li></ul>
<p>Consult the inline help system for this topic.</p>");
}
}
}
if ($requestmail) {
$r->print("
<ul>
<li><a href=\"/adm/support?origurl=$origurl&function=$function\" target=\"bodyframe\">Contact the LON-CAPA support team</a></li>
</ul>
<p>Submit a help request to the team responsible for LON-CAPA support at this institution.</p>
<ul>
");
}
if ($faqbaseurl && $ENV{'user.adv'}) {
if (!defined($faq) ||$faq eq '') {
$faq = '1';
}
$r->print("
<li><a href=\"$faqbaseurl/fom/cache/$faq.html\">FAQ-O-Matic Help system</a></li>
</ul>
<p>The FAQ-O-Matic is a compendium of answers provided to common questions asked by users of LON-CAPA over the past couple of years.</p>
");
}
if ($bugurl && $ENV{'user.adv'}) {
$bugurl .= '?'.$bug;
$r->print("
<ul>
<li><a href=\"$bugurl\">LON-CAPA Bugzilla bug/feature request tracking
system</a></li>
</ul>
<p>Create an account for yourself in the LON-CAPA Bugzilla tracking system, if you wish to report bugs you have encountered in the LON-CAPA software,
or if you have suggestions for improvements in LON-CAPA. Suggested improvements may include additional functionality, improved usability, or changes to wording used in LON-CAPA pages, including the embedded help system.</p>
");
}
$r->print(<<END);
</body>
</html>
END
}
1;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>