--- loncom/interface/loncommon.pm 2006/01/09 20:38:52 1.302
+++ loncom/interface/loncommon.pm 2006/03/16 21:23:51 1.309
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.302 2006/01/09 20:38:52 albertel Exp $
+# $Id: loncommon.pm,v 1.309 2006/03/16 21:23:51 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2737,6 +2737,10 @@ 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
=back
Returns: A uniform header for LON-CAPA web pages.
@@ -2747,7 +2751,8 @@ 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)=@_;
$title=&mt($title);
$function = &get_users_function() if (!$function);
my $img=&designparm($function.'.img',$domain);
@@ -2787,6 +2792,7 @@ table.thinborder { border-collapse: coll
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;}
@@ -2892,6 +2898,8 @@ ENDROLE
$dc_info.= $cid.' '.$env{'course.'.$cid.'.internal.coursecode'};
$dc_info = '('.$dc_info.')';
}
+ # Explicit link to get inline menu
+ my $menu='
'.&mt('Switch to Inline Menu Mode').'';
#
return(<
-$titleinfo $dc_info
+$titleinfo $dc_info $menu
|
$env{'environment.firstname'}
@@ -2928,7 +2936,7 @@ ENDBODY
=back
-=head1 HTTP Helpers
+=head1 HTML Helpers
=over 4
@@ -2936,14 +2944,10 @@ ENDBODY
Returns a uniform footer for LON-CAPA web pages.
-Inputs:
-
-=over 4
+Inputs: none
=back
-Returns: A uniform footer for LON-CAPA web pages.
-
=cut
sub endbodytag {
@@ -2952,10 +2956,125 @@ sub endbodytag {
return $endbodytag;
}
+=pod
+
+=over 4
+
+=item * &headtag()
+
+Returns a uniform footer for LON-CAPA web pages.
+
+Inputs: $title - optional title for the head
+ $head_extra - optional extra HTML to put inside the
+
+=back
+
+=cut
+
+sub headtag {
+ my ($title,$head_extra) = @_;
+
+ my $result =
+ ''.
+ &Apache::lonxml::fontsettings().
+ &Apache::lonhtmlcommon::htmlareaheaders();
+
+ if (!defined($title)) {
+ $title = 'The LearningOnline Network with CAPA';
+ }
+
+ $result .= ''.&mt($title).''.$head_extra;
+
+ return $result;
+}
+
+=pod
+
+=over 4
+
+=item * &endheadtag()
+
+Returns a uniform for LON-CAPA web pages.
+
+Inputs: none
+
+=back
+
+=cut
+
+sub endheadtag {
+ return '';
+}
+
+=pod
+
+=over 4
+
+=item * &head()
+
+Returns a uniform complete .. section for LON-CAPA web pages.
+
+Inputs: $title - optional title for the page
+ $head_extra - optional extra HTML to put inside the
+=back
+
+=cut
+
+sub head {
+ my ($title,$head_extra) = @_;
+ return &headtag($title,$head_extra).&endheadtag();
+}
+
+=pod
+
+=over 4
+
+=item * &start_page()
+
+Returns a complete .. section for LON-CAPA web pages.
+
+Inputs: $title - optional title for the page
+ $head_extra - optional extra HTML to incude inside the
+ %args - additional optional args supported are:
+ onlybody -> is true will set &bodytag() onlybodytag arg on
+ notopbar -> is true will set &bodytag() notopbar arg on
+
+=back
+
+=cut
+
+sub start_page {
+ my ($title,$head_extra,$args) = @_;
+ return
+ &Apache::lonxml::xmlbegin().
+ &headtag($title,$head_extra).&endheadtag().
+ &bodytag($title,undef,undef,$args->{'onlybody'},undef,undef,undef,
+ $args->{'notopbar'});
+}
+
+=pod
+
+=over 4
+
+=item * &head()
+
+Returns a complete section for LON-CAPA web pages.
+
+Inputs: None
+
+=back
+
+=cut
+
+sub end_page {
+ return &endbodytag."\n";
+}
###############################################
=pod
+=over 4
+
=item get_users_function
Used by &bodytag to determine the current users primary role.
@@ -3170,7 +3289,7 @@ times for group members.
Outer hash key is functions.
Inner hash keys are chat,discussion,email,files,homepage,roster.
Corresponding values are either on or off, depending on
-whther this type of functionality is available for the group.
+whether this type of functionality is available for the group.
=cut
@@ -3181,13 +3300,18 @@ sub get_group_settings {
my $parser=HTML::TokeParser->new(\$groupinfo);
my $token;
my $tool = '';
+ my $role = '';
my %content=();
while ($token=$parser->get_token) {
if ($token->[0] eq 'S') {
my $entry=$token->[1];
- if ($entry eq 'functions') {
+ if ($entry eq 'functions' || $entry eq 'autosec') {
%{$content{$entry}} = ();
$tool = $entry;
+ } elsif ($entry eq 'role') {
+ if ($tool eq 'autosec') {
+ $role = $token->[2]{id};
+ }
} else {
my $value=$parser->get_text('/'.$entry);
if ($entry eq 'name') {
@@ -3197,14 +3321,24 @@ sub get_group_settings {
}
} elsif ($entry eq 'groupname') {
$content{$entry}=&Apache::lonnet::unescape($value);
+ } elsif (($entry eq 'roles') || ($entry eq 'types') ||
+ ($entry eq 'sectionpick') || ($entry eq 'defpriv')) {
+ push(@{$content{$entry}},$value);
+ } elsif ($entry eq 'section') {
+ if ($tool eq 'autosec' && $role ne '') {
+ push(@{$content{$tool}{$role}},$value);
+ }
} else {
$content{$entry}=$value;
}
}
} elsif ($token->[0] eq 'E') {
- if ($token->[1] eq 'functions') {
+ if ($token->[1] eq 'functions' || $token->[1] eq 'autosec') {
$tool = '';
+ } elsif ($token->[1] eq 'role') {
+ $role = '';
}
+
}
}
return %content;
|