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 $about=&mt('About LON-CAPA help and More Help');
- my $query=&mt('Search');
- my $uri = $r->uri;
- $r->print(<
-
-
$about
+ $r->print(<
+
+
+
+
+
+$bugs
FOOTER
-
}
$r->print(<
- $end_page
ENDBODY
}
@@ -99,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
@@ -111,13 +142,27 @@ sub render {
# absolute paths for use with help.loncapa.org
$tex =~ s| \\ref\{([^}]*)\}
|
- if (not(exists($fragmentLabels{$1}))) {
- &Apache::lonnet::logthis("ERROR: $1 not a valid help label");
- };
- '\\begin{html}
' .
+ my $label=$1;
+ my $icon='/adm/help/help.png';
+ my $ext;
+ if ($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}
' .
'\\end{html}'
|gxe;
@@ -126,7 +171,7 @@ sub render {
# Figures leftover without captions
$tex =~ s| \\includegraphics(\[[^]]*\])*\{([^}]*)\}
- | '\\begin{html}
\\end{html}'
|gxe;
@@ -139,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;
@@ -164,9 +211,9 @@ sub listmatches {
$line=~s/\{//gs;
$line=~s/\}//gs;
$line=~s/\\/ /gs;
- $line=~s/(\Q$term\E)/\$1\<\/b\>/gsi;
$line=~s/\\<\;/gs;
$line=~s/\>/\>\;/gs;
+ $line=~s/(\Q$term\E)/\$1\<\/b\>/gsi;
$quote.='
...'.$line.'...';
}
}
@@ -188,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) {
@@ -204,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
@@ -221,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().'/'.
@@ -232,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;
}