HEADER
-
- $r->print($text);
+ if ($is_mobile) {
+ my $width = 500;
+ my $height = 400;
+ my $machine = &Apache::lonnet::absolute_url();
+ $r->print(&Apache::loncommon::nicescroll_javascript('helpwrapper',
+ {cursorcolor => '#00F',
+ railalign => 'right',
+ railoffset => '{top:5,left:40}'},
+ undef,1,$machine.$firstfile));
+ $r->print('
'.
+ $text.
+ '
');
+ } else {
+ $r->print($text);
+ }
if (&Apache::lonnavmaps::advancedUser()) {
- my $search=&mt('Search LON-CAPA help');
- my $query=&mt('Search');
- my $uri = $r->uri;
- $r->print(<
-
+ $r->print(<
+
+
+
+
+
$bugs
-$morehelp
FOOTER
-
}
$r->print(<
- $end_page
ENDBODY
}
@@ -100,7 +130,7 @@ ENDBODY
# Render takes a tex fragment, transforms it for TtH, and returns the
# HTML equivalent
sub render {
- my ($tex, $docroot, $serverroot) = @_;
+ my ($tex, $docroot) = @_;
tie (my %fragmentLabels, 'GDBM_File', $docroot . '/adm/help/fragmentLabels.gdbm', 0, 0);
# This tells TtH what to do with captions, labels, and other
@@ -113,20 +143,26 @@ sub render {
$tex =~ s| \\ref\{([^}]*)\}
|
my $label=$1;
+ my $icon='/adm/help/help.png';
+ my $ext;
if ($1!~/\.hlp$/) {
- if ((!exists($fragmentLabels{$1})) && ($1!~/\.hlp$/)) {
+ if (($1 =~ /^\w+\.manual\.pdf$/) && (-e $docroot.'/adm/help/'.$1)) {
+ $icon = '/adm/lonIcons/pdf.gif';
+ } elsif ((!exists($fragmentLabels{$1})) && ($1!~/\.hlp$/)) {
&Apache::lonnet::logthis("ERROR: $1 not a valid help label");
$label='Error';
} else {
$label=substr($fragmentLabels{$1}, 0, -4);
+ $ext = '.hlp#' . &processLabelName($1);
}
} else {
$label=~s/\.hlp$//;
+ $ext = '.hlp#' . &processLabelName($1);
}
- '\\begin{html}
' .
+ $ext .
+ '">
' .
'\\end{html}'
|gxe;
@@ -135,7 +171,7 @@ sub render {
# Figures leftover without captions
$tex =~ s| \\includegraphics(\[[^]]*\])*\{([^}]*)\}
- | '\\begin{html}
\\end{html}'
|gxe;
@@ -148,11 +184,13 @@ sub render {
# Fix the pretty quotes
$tex =~ s/('')|(``)/"/g; #" to get emacs syntax highlighter happy
+ $tex =~ s/`/'/g;
+
# For some reason all captions come out as "Figure 0:", so
# just duck the issue...
$tex =~ s/Figure 0://g;
- $tex.=$Apache::lontexconvert::errorstring;
+ $tex.=$Apache::lontexconvert::errorstring;
untie %fragmentLabels;
return $tex;
@@ -197,11 +235,35 @@ sub handler {
my $r = shift;
my $docroot = $r->dir_config('lonDocRoot');
- my $serverroot = $ENV{'HTTP_HOST'};
&Apache::lonlocal::get_language_handle($r);
&Apache::loncommon::content_type($r,"text/html");
+ my $caller;
+ if ($env{'form.searchterm'}=~/\w/) {
+ $caller = 'search';
+ }
+
+ my $starthash;
+
+ if ($env{'browser.mobile'}) {
+ $starthash = {
+ only_body => 1,
+ add_entries => {
+ 'onload' => "javascript:expand_div('$caller');",
+ },
+ };
+ } else {
+ $starthash = {
+ only_body => 1,
+ };
+ }
+ my $firstfile;
+ $env{'form.texengine'} = 'tth';
+ my $start_page=
+ &Apache::loncommon::start_page('LON-CAPA Help',undef,$starthash);
+ delete($env{'form.texengine'});
my $text='';
+ my $uri = $r->uri;
if ($env{'form.searchterm'}=~/\w/) {
($text,my $matches)=&listmatches($docroot,$env{'form.searchterm'},&Apache::lonlocal::current_language().'/');
if ($matches) {
@@ -213,8 +275,7 @@ sub handler {
$text=&listmatches($docroot,$env{'form.searchterm'});
}
} else {
- my $filenames = &unescape(substr($ENV{'REQUEST_URI'} ,
- rindex($ENV{'REQUEST_URI'}, '/') + 1, -4));
+ my $filenames = &unescape(substr($uri,rindex($uri,'/')+1,-4));
# Security check on the file; the whole filename must consist
# of nothing but alphanums, ' ,, or ., or the file
@@ -230,7 +291,9 @@ sub handler {
# so replace : with ,
$filenames =~ s/:/,/g;
my @files = split(/,/, $filenames);
-
+ $firstfile = '/adm/help/'.$files[0].'.hlp';
+ my $count = 0;
+
for my $filename (@files) {
if (-e $docroot.'/adm/help/tex/'.
&Apache::lonlocal::current_language().'/'.
@@ -241,13 +304,20 @@ sub handler {
. '/adm/help/tex/'.$filename.'.tex'))
or return HTTP_NOT_FOUND;
$tex .= join('', <$file>);
+ $count ++;
+ if (scalar(@files) > $count) {
+ $tex .= '\hrulefill';
+ }
}
- $text = &render($tex, $docroot, $serverroot);
+ $text = &render($tex, $docroot);
}
$r->send_http_header;
- &servetext($r,$text);
+ $r->print($start_page);
+ &servetext($r,$uri,$text,$env{'browser.mobile'},$firstfile);
+ $r->print(&Apache::loncommon::end_page());
+
return OK;
}