--- loncom/interface/loncommon.pm 2006/03/16 20:08:42 1.307 +++ loncom/interface/loncommon.pm 2006/03/21 21:49:30 1.319 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.307 2006/03/16 20:08:42 albertel Exp $ +# $Id: loncommon.pm,v 1.319 2006/03/21 21:49:30 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2737,6 +2737,13 @@ Inputs: =item * $forcereg, if page should register as content page (relevant for 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 Returns: A uniform header for LON-CAPA web pages. @@ -2747,11 +2754,12 @@ other decorations will be returned. =cut sub bodytag { - my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle,$notopbar)=@_; + my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle, + $notopbar,$bgcolor)=@_; $title=&mt($title); $function = &get_users_function() if (!$function); 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 $font=&designparm($function.'.font',$domain); my $link=&designparm($function.'.link',$domain); @@ -2948,6 +2956,12 @@ Inputs: none sub endbodytag { my $endbodytag='
sect Inputs: $title - optional title for the page $head_extra - optional extra HTML to incude inside the + $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 + 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 + force_register -> if is true will turn on the &bodytag() + $forcereg arg =back =cut sub start_page { - my ($title,$head_extra) = @_; - return + my ($title,$head_extra,$args) = @_; + #&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->{$args}; + } + } + + $env{'internal.start_page'}++; + my $result = &Apache::lonxml::xmlbegin(). - &headtag($title,$head_extra).&endheadtag(). - &bodytag($title); + &headtag($title,$head_extra,\%head_args).&endheadtag(). + &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); + } + return $result; } =pod @@ -3048,14 +3118,70 @@ sub start_page { Returns a complete 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 =back =cut sub end_page { - return &endbodytag."\n"; + my ($args) = @_; + #&Apache::lonnet::logthis("end_page ".join(':',caller(0))); + $env{'internal.end_page'}++; + my $result = &endbodytag()."\n';
$endbodytag=&Apache::lontexconvert::jsMath_process()."\n".$endbodytag;
+ if ( exists( $env{'internal.head.redirect'} ) ) {
+ $endbodytag=
+ "
".
+ &mt('Continue').''.
+ $endbodytag;
+ }
return $endbodytag;
}
@@ -2961,21 +2975,45 @@ Returns a uniform footer for LON-CAPA we
Inputs: $title - optional title for the head
$head_extra - optional extra HTML to put inside the
- + $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 =cut sub headtag { - my ($title,$head_extra) = @_; - - my $result = '
'; + my ($title,$head_extra,$args) = @_; + my $result = + '
'.
+ &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.=<
'.$head_extra; + $result .= '
'.$head_extra; return $result; } @@ -3027,17 +3065,49 @@ Returns a complete ..