version 1.306, 2006/03/15 19:37:55
|
version 1.324, 2006/03/29 19:39:55
|
Line 2737 Inputs:
|
Line 2737 Inputs:
|
=item * $forcereg, if page should register as content page (relevant for |
=item * $forcereg, if page should register as content page (relevant for |
text interface only) |
text interface only) |
|
|
|
=item * $customtitle, overrides the $title in some way ???? |
|
|
|
=item * $notopbar, if true, keep the 'what is this' info but remove the |
|
navigational links |
|
|
|
=item * $bgcolor, used to override the bg coor on a webpage to a specific value |
|
|
=back |
=back |
|
|
Returns: A uniform header for LON-CAPA web pages. |
Returns: A uniform header for LON-CAPA web pages. |
Line 2747 other decorations will be returned.
|
Line 2754 other decorations will be returned.
|
=cut |
=cut |
|
|
sub bodytag { |
sub bodytag { |
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle,$notopbar)=@_; |
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle, |
|
$notopbar,$bgcolor)=@_; |
$title=&mt($title); |
$title=&mt($title); |
$function = &get_users_function() if (!$function); |
$function = &get_users_function() if (!$function); |
my $img=&designparm($function.'.img',$domain); |
my $img=&designparm($function.'.img',$domain); |
my $pgbg=&designparm($function.'.pgbg',$domain); |
my $pgbg= $bgcolor || &designparm($function.'.pgbg',$domain); |
my $tabbg=&designparm($function.'.tabbg',$domain); |
my $tabbg=&designparm($function.'.tabbg',$domain); |
my $font=&designparm($function.'.font',$domain); |
my $font=&designparm($function.'.font',$domain); |
my $link=&designparm($function.'.link',$domain); |
my $link=&designparm($function.'.link',$domain); |
Line 2793 form, .inline { display: inline; }
|
Line 2801 form, .inline { display: inline; }
|
style="margin-top: 0px;$addstyle" $addentries> |
style="margin-top: 0px;$addstyle" $addentries> |
END |
END |
&Apache::lontexconvert::jsMath_reset(); |
&Apache::lontexconvert::jsMath_reset(); |
if ($env{'environment.texengine'} eq 'jsMath') { |
if ($env{'environment.texengine'} eq 'jsMath' || |
|
$env{'form.texengine'} eq 'jsMath' ) { |
$bodytag.=&Apache::lontexconvert::jsMath_header(); |
$bodytag.=&Apache::lontexconvert::jsMath_header(); |
} |
} |
|
|
Line 2948 Inputs: none
|
Line 2957 Inputs: none
|
sub endbodytag { |
sub endbodytag { |
my $endbodytag='</body>'; |
my $endbodytag='</body>'; |
$endbodytag=&Apache::lontexconvert::jsMath_process()."\n".$endbodytag; |
$endbodytag=&Apache::lontexconvert::jsMath_process()."\n".$endbodytag; |
|
if ( exists( $env{'internal.head.redirect'} ) ) { |
|
$endbodytag= |
|
"<br /><a href=\"$env{'internal.head.redirect'}\">". |
|
&mt('Continue').'</a>'. |
|
$endbodytag; |
|
} |
return $endbodytag; |
return $endbodytag; |
} |
} |
|
|
Line 2959 sub endbodytag {
|
Line 2974 sub endbodytag {
|
|
|
Returns a uniform footer for LON-CAPA web pages. |
Returns a uniform footer for LON-CAPA web pages. |
|
|
Inputs: $title - optinal title for the head |
Inputs: $title - optional title for the head |
|
$head_extra - optional extra HTML to put inside the <head> |
|
$args - optional arguments |
|
force_register - if is true call registerurl so the remote is |
|
informed |
|
|
|
redirect - array ref of seconds before redirect occurs |
|
url to redirect to |
|
(side effect of setting |
|
$env{'internal.head.redirect'} to the url |
|
redirected too) |
=back |
=back |
|
|
=cut |
=cut |
|
|
sub headtag { |
sub headtag { |
my ($title) = @_; |
my ($title,$head_extra,$args) = @_; |
|
|
my $result = '<head>'; |
|
|
|
|
my $result = |
|
'<head>'. |
|
&Apache::lonxml::fontsettings(). |
|
&Apache::lonhtmlcommon::htmlareaheaders(); |
|
|
|
if ($args->{'force_register'}) { |
|
$result .= &Apache::lonmenu::registerurl(1); |
|
} |
|
|
|
if (ref($args->{'redirect'})) { |
|
my ($time,$url) = @{$args->{'redirect'}}; |
|
$url = &Apache::lonenc::check_encrypt($url); |
|
$env{'internal.head.redirect'} = $url; |
|
$result.=<<ADDMETA |
|
<meta http-equiv="pragma" content="no-cache" /> |
|
<meta HTTP-EQUIV="Refresh" CONTENT="$time; url=$url" /> |
|
ADDMETA |
|
} |
if (!defined($title)) { |
if (!defined($title)) { |
$title = 'The LearningOnline Network with CAPA'; |
$title = 'The LearningOnline Network with CAPA'; |
} |
} |
|
|
$result .= '<title>'.&mt($title).'</title>'; |
$result .= '<title> LON-CAPA '.&mt($title).'</title>'.$head_extra; |
|
|
return $result; |
return $result; |
} |
} |
|
|
Line 3006 sub endheadtag {
|
Line 3045 sub endheadtag {
|
Returns a uniform complete <head>..</head> section for LON-CAPA web pages. |
Returns a uniform complete <head>..</head> section for LON-CAPA web pages. |
|
|
Inputs: $title - optional title for the page |
Inputs: $title - optional title for the page |
|
$head_extra - optional extra HTML to put inside the <head> |
=back |
=back |
|
|
=cut |
=cut |
|
|
sub head { |
sub head { |
my ($title) = @_; |
my ($title,$head_extra) = @_; |
return &headtag($title).&endheadtag(); |
return &headtag($title,$head_extra).&endheadtag(); |
} |
} |
|
|
=pod |
=pod |
Line 3026 Returns a complete <html> .. <body> sect
|
Line 3065 Returns a complete <html> .. <body> sect
|
|
|
Inputs: $title - optional title for the page |
Inputs: $title - optional title for the page |
$head_extra - optional extra HTML to incude inside the <head> |
$head_extra - optional extra HTML to incude inside the <head> |
|
$args - additional optional args supported are: |
|
only_body -> is true will set &bodytag() onlybodytag |
|
arg on |
|
no_nav_bar -> is true will set &bodytag() notopbar arg on |
|
add_entries -> additional attributes to add to the <body> |
|
domain -> force to color decorate a page for a |
|
specific domain |
|
function -> force usage of a specific rolish color |
|
scheme |
|
redirect -> see &headtag() |
|
bgcolor -> override the default page bg color |
|
js_ready -> return a string ready for being used in |
|
a javascript writeln |
|
html_encode -> return a string ready for being used in |
|
a html attribute |
|
force_register -> if is true will turn on the &bodytag() |
|
$forcereg arg |
|
|
=back |
=back |
|
|
=cut |
=cut |
|
|
sub start_page { |
sub start_page { |
my ($title,$head_extra) = @_; |
my ($title,$head_extra,$args) = @_; |
return |
#&Apache::lonnet::logthis("start_page ".join(':',caller(0))); |
|
my %head_args; |
|
foreach my $arg ('redirect','force_register') { |
|
if (defined($args->{$arg})) { |
|
$head_args{$arg} = $args->{$arg}; |
|
} |
|
} |
|
|
|
$env{'internal.start_page'}++; |
|
my $result = |
&Apache::lonxml::xmlbegin(). |
&Apache::lonxml::xmlbegin(). |
&headtag($title).$head_extra.&endheadtag(). |
&headtag($title,$head_extra,\%head_args).&endheadtag(). |
&bodytag($title); |
&bodytag($title, |
|
$args->{'function'}, $args->{'add_entries'}, |
|
$args->{'only_body'}, $args->{'domain'}, |
|
$args->{'force_register'}, undef, |
|
$args->{'no_nav_bar'}, $args->{'bgcolor'}); |
|
if ($args->{'js_ready'}) { |
|
$result = &js_ready($result); |
|
} |
|
if ($args->{'html_encode'}) { |
|
$result = &html_encode($result); |
|
} |
|
return $result; |
} |
} |
|
|
=pod |
=pod |
Line 3047 sub start_page {
|
Line 3123 sub start_page {
|
|
|
Returns a complete </body></html> section for LON-CAPA web pages. |
Returns a complete </body></html> section for LON-CAPA web pages. |
|
|
Inputs: None |
Inputs: $args - additional optional args supported are: |
|
js_ready -> return a string ready for being used in |
|
a javascript writeln |
|
html_encode -> return a string ready for being used in |
|
a html attribute |
=back |
=back |
|
|
=cut |
=cut |
|
|
sub end_page { |
sub end_page { |
return &endbodytag."\n</html>"; |
my ($args) = @_; |
|
#&Apache::lonnet::logthis("end_page ".join(':',caller(0))); |
|
$env{'internal.end_page'}++; |
|
my $result = &endbodytag()."\n</html>"; |
|
if ($args->{'js_ready'}) { |
|
$result = &js_ready($result); |
|
} |
|
if ($args->{'html_encode'}) { |
|
$result = &html_encode($result); |
|
} |
|
return $result; |
|
} |
|
|
|
sub html_encode { |
|
my ($result) = @_; |
|
|
|
$result = &HTML::Entities::encode($result,'<>&"'); |
|
|
|
return $result; |
|
} |
|
sub js_ready { |
|
my ($result) = @_; |
|
|
|
$result =~ s/[\n\r]/ /xmsg; |
|
$result =~ s/\\/\\\\/xmsg; |
|
$result =~ s/'/\\'/xmsg; |
|
$result =~ s{</script>}{</scrip'+'t>}xmsg; |
|
|
|
return $result; |
|
} |
|
|
|
sub validate_page { |
|
if ( exists($env{'internal.start_page'}) |
|
&& $env{'internal.start_page'} > 1) { |
|
&Apache::lonnet::logthis('start_page called multiple times '. |
|
$env{'internal.start_page'}.' '. |
|
$ENV{'request.filename'}); |
|
} |
|
if ( exists($env{'internal.end_page'}) |
|
&& $env{'internal.end_page'} > 1) { |
|
&Apache::lonnet::logthis('end_page called multiple times '. |
|
$env{'internal.end_page'}.' '. |
|
$env{'request.filename'}); |
|
} |
|
if ( exists($env{'internal.start_page'}) |
|
&& ! exists($env{'internal.end_page'})) { |
|
&Apache::lonnet::logthis('start_page called without end_page '. |
|
$env{'request.filename'}); |
|
} |
|
if ( ! exists($env{'internal.start_page'}) |
|
&& exists($env{'internal.end_page'})) { |
|
&Apache::lonnet::logthis('end_page called without start_page'. |
|
$env{'request.filename'}); |
|
} |
|
} |
|
|
|
sub simple_error_page { |
|
my ($r,$title,$msg) = @_; |
|
my $page = |
|
&Apache::loncommon::start_page($title). |
|
&mt($msg). |
|
&Apache::loncommon::end_page(); |
|
if (ref($r)) { |
|
$r->print($page); |
|
return OK; |
|
} |
|
return $page; |
} |
} |
############################################### |
############################################### |
|
|