version 1.338, 2006/04/14 21:09:51
|
version 1.344, 2006/04/20 02:24:08
|
Line 63 use Apache::lonlocal;
|
Line 63 use Apache::lonlocal;
|
use HTML::Entities; |
use HTML::Entities; |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
use Apache::loncoursedata(); |
use Apache::loncoursedata(); |
|
use Apache::lontexconvert(); |
|
|
my $readit; |
my $readit; |
|
|
Line 2770 other decorations will be returned.
|
Line 2771 other decorations will be returned.
|
sub bodytag { |
sub bodytag { |
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle, |
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle, |
$notopbar,$bgcolor,$notitle)=@_; |
$notopbar,$bgcolor,$notitle)=@_; |
|
|
$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= $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 $sidebg = &designparm($function.'.sidebg',$domain); |
my $link=&designparm($function.'.link',$domain); |
my $pgbg = $bgcolor || &designparm($function.'.pgbg',$domain); |
my $alink=&designparm($function.'.alink',$domain); |
|
my $vlink=&designparm($function.'.vlink',$domain); |
my %design = ( 'style' => 'margin-top: 0px', |
my $sidebg=&designparm($function.'.sidebg',$domain); |
'bgcolor' => $pgbg, |
# Accessibility font enhance |
'text' => $font, |
my $addstyle=''; |
'alink' => &designparm($function.'.alink',$domain), |
if ($env{'browser.fontenhance'} eq 'on') { |
'vlink' => &designparm($function.'.vlink',$domain), |
$addstyle=' font-size: x-large;'; |
'link' => &designparm($function.'.link',$domain),); |
} |
@$addentries{keys(%design)} = @design{keys(%design)}; |
|
|
# role and realm |
# role and realm |
my ($role,$realm) |
my ($role,$realm) |
=&Apache::lonnet::plaintext((split(/\./,$env{'request.role'}))[0]); |
=&Apache::lonnet::plaintext((split(/\./,$env{'request.role'}))[0]); |
Line 2804 sub bodytag {
|
Line 2808 sub bodytag {
|
|
|
# construct main body tag |
# construct main body tag |
my $bodytag = <<END; |
my $bodytag = <<END; |
<style type="text/css"> |
<body $extra_body_attr> |
h1, h2, h3, th { font-family: Arial, Helvetica, sans-serif } |
|
a:focus { color: red; background: yellow } |
|
table.thinborder { border-collapse: collapse; } |
|
table.thinborder tr th, table.thinborder tr td { border-style: solid; border-width: 1px} |
|
form, .inline { display: inline; } |
|
.center { text-align: center; } |
|
.filename {font-family: monospace;} |
|
</style> |
|
<body bgcolor="$pgbg" text="$font" alink="$alink" vlink="$vlink" link="$link" |
|
style="margin-top: 0px;$addstyle" $extra_body_attr> |
|
END |
END |
|
|
$bodytag .= &Apache::lontexconvert::init_math_support(); |
$bodytag .= &Apache::lontexconvert::init_math_support(); |
Line 2968 sub make_attr_string {
|
Line 2962 sub make_attr_string {
|
} |
} |
|
|
if ($register) { |
if ($register) { |
$attr_ref->{'onload'} = &Apache::lonmenu::loadevents(). |
my ($on_load,$on_unload); |
$attr_ref->{'onload'}; |
foreach my $key (keys(%{$attr_ref})) { |
$attr_ref->{'onunload'} = &Apache::lonmenu::unloadevents(). |
if (lc($key) eq 'onload') { |
$attr_ref->{'onunload'}; |
$on_load.=$attr_ref->{$key}.';'; |
|
delete($attr_ref->{$key}); |
|
|
|
} elsif (lc($key) eq 'onunload') { |
|
$on_unload.=$attr_ref->{$key}.';'; |
|
delete($attr_ref->{$key}); |
|
} |
|
} |
|
$attr_ref->{'onload'} = |
|
&Apache::lonmenu::loadevents(). $on_load; |
|
$attr_ref->{'onunload'}= |
|
&Apache::lonmenu::unloadevents().$on_unload; |
|
} |
|
|
|
# Accessibility font enhance |
|
if ($env{'browser.fontenhance'} eq 'on') { |
|
my $style; |
|
foreach my $key (keys(%{$attr_ref})) { |
|
if (lc($key) eq 'style') { |
|
$style.=$attr_ref->{$key}.';'; |
|
delete($attr_ref->{$key}); |
|
} |
|
} |
|
$attr_ref->{'style'}=$style.'; font-size: x-large;'; |
|
} |
|
|
|
if ($env{'browser.blackwhite'} eq 'on') { |
|
delete($attr_ref->{'font'}); |
|
delete($attr_ref->{'link'}); |
|
delete($attr_ref->{'alink'}); |
|
delete($attr_ref->{'vlink'}); |
|
delete($attr_ref->{'bgcolor'}); |
|
delete($attr_ref->{'background'}); |
} |
} |
|
|
my $attr_string; |
my $attr_string; |
foreach my $attr (keys(%$attr_ref)) { |
foreach my $attr (keys(%$attr_ref)) { |
$attr_string .= " $attr=\"".$attr_ref->{$attr}.'" '; |
$attr_string .= " $attr=\"".$attr_ref->{$attr}.'" '; |
Line 3014 sub endbodytag {
|
Line 3041 sub endbodytag {
|
return $endbodytag; |
return $endbodytag; |
} |
} |
|
|
|
sub standard_css { |
|
return <<END; |
|
<style type="text/css"> |
|
h1, h2, h3, th { font-family: Arial, Helvetica, sans-serif } |
|
a:focus { color: red; background: yellow } |
|
table.thinborder { border-collapse: collapse; } |
|
table.thinborder tr th, table.thinborder tr td { border-style: solid; border-width: 1px} |
|
form, .inline { display: inline; } |
|
.center { text-align: center; } |
|
.filename {font-family: monospace;} |
|
</style> |
|
END |
|
} |
|
|
=pod |
=pod |
|
|
=over 4 |
=over 4 |
Line 3041 sub headtag {
|
Line 3082 sub headtag {
|
|
|
my $result = |
my $result = |
'<head>'. |
'<head>'. |
&Apache::lonxml::fontsettings(). |
&standard_css(). |
|
&font_settings(). |
&Apache::lonhtmlcommon::htmlareaheaders(); |
&Apache::lonhtmlcommon::htmlareaheaders(); |
|
|
if ($args->{'force_register'}) { |
if ($args->{'force_register'}) { |
Line 3054 sub headtag {
|
Line 3096 sub headtag {
|
$env{'internal.head.redirect'} = $url; |
$env{'internal.head.redirect'} = $url; |
$result.=<<ADDMETA |
$result.=<<ADDMETA |
<meta http-equiv="pragma" content="no-cache" /> |
<meta http-equiv="pragma" content="no-cache" /> |
<meta HTTP-EQUIV="Refresh" CONTENT="$time; url=$url" /> |
<meta http-equiv="Refresh" content="$time; url=$url" /> |
ADDMETA |
ADDMETA |
} |
} |
if (!defined($title)) { |
if (!defined($title)) { |
Line 3069 ADDMETA
|
Line 3111 ADDMETA
|
|
|
=over 4 |
=over 4 |
|
|
|
=item * &font_settings() |
|
|
|
Returns neccessary <meta> to set the proper encoding |
|
|
|
Inputs: none |
|
|
|
=back |
|
|
|
=cut |
|
|
|
sub font_settings { |
|
my $headerstring=''; |
|
if (($env{'browser.os'} eq 'mac') && (!$env{'browser.mathml'})) { |
|
$headerstring.= |
|
'<meta Content-Type="text/html; charset=x-mac-roman" />'; |
|
} elsif (!$env{'browser.mathml'} && $env{'browser.unicode'}) { |
|
$headerstring.= |
|
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; |
|
} |
|
return $headerstring; |
|
} |
|
|
|
=pod |
|
|
|
=over 4 |
|
|
|
=item * &xml_begin() |
|
|
|
Returns the needed doctype and <html> |
|
|
|
Inputs: none |
|
|
|
=back |
|
|
|
=cut |
|
|
|
sub xml_begin { |
|
my $output=''; |
|
|
|
&Apache::lonhtmlcommon::init_htmlareafields(); |
|
|
|
if ($env{'browser.mathml'}) { |
|
$output='<?xml version="1.0"?>' |
|
#.'<?xml-stylesheet type="text/css" href="/adm/MathML/mathml.css"?>'."\n" |
|
# .'<!DOCTYPE html SYSTEM "/adm/MathML/mathml.dtd" ' |
|
|
|
# .'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [<!ENTITY mathns "http://www.w3.org/1998/Math/MathML">] >' |
|
.'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">' |
|
.'<html xmlns:math="http://www.w3.org/1998/Math/MathML" ' |
|
.'xmlns="http://www.w3.org/1999/xhtml">'; |
|
} else { |
|
$output='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>'; |
|
} |
|
return $output; |
|
} |
|
|
|
=pod |
|
|
|
=over 4 |
|
|
=item * &endheadtag() |
=item * &endheadtag() |
|
|
Returns a uniform </head> for LON-CAPA web pages. |
Returns a uniform </head> for LON-CAPA web pages. |
Line 3157 sub start_page {
|
Line 3259 sub start_page {
|
my $result; |
my $result; |
if (! exists($args->{'skip_phases'}{'head'}) ) { |
if (! exists($args->{'skip_phases'}{'head'}) ) { |
$result.= |
$result.= |
&Apache::lonxml::xmlbegin(). |
&xml_begin(). |
&headtag($title,$head_extra,\%head_args).&endheadtag(); |
&headtag($title,$head_extra,\%head_args).&endheadtag(); |
} |
} |
|
|