version 1.806, 2009/05/07 16:25:02
|
version 1.822, 2009/05/19 22:52:10
|
Line 4144 Returns: value of designparamter $which
|
Line 4144 Returns: value of designparamter $which
|
############################################## |
############################################## |
sub designparm { |
sub designparm { |
my ($which,$domain)=@_; |
my ($which,$domain)=@_; |
if ($env{'browser.blackwhite'} eq 'on') { |
|
if ($which=~/\.(font|alink|vlink|link|textcol)$/) { |
|
return '#000000'; |
|
} |
|
if ($which=~/\.(pgbg|sidebg|bgcol)$/) { |
|
return '#FFFFFF'; |
|
} |
|
if ($which=~/\.tabbg$/) { |
|
return '#CCCCCC'; |
|
} |
|
} |
|
if (exists($env{'environment.color.'.$which})) { |
if (exists($env{'environment.color.'.$which})) { |
return $env{'environment.color.'.$which}; |
return $env{'environment.color.'.$which}; |
} |
} |
$domain=&determinedomain($domain); |
$domain=&determinedomain($domain); |
my %domdesign = &get_domainconf($domain); |
my %domdesign = &get_domainconf($domain); |
my $output; |
my $output; |
if ($domdesign{$domain.'.'.$which} ne '') { |
if ($domdesign{$domain.'.'.$which} ne '') { |
$output = $domdesign{$domain.'.'.$which}; |
$output = $domdesign{$domain.'.'.$which}; |
} else { |
} else { |
$output = $defaultdesign{$which}; |
$output = $defaultdesign{$which}; |
} |
} |
if (($which =~ /^(student|coordinator|author|admin)\.img$/) || |
if (($which =~ /^(student|coordinator|author|admin)\.img$/) || |
($which =~ /login\.(img|logo|domlogo|login)/)) { |
($which =~ /login\.(img|logo|domlogo|login)/)) { |
if ($output =~ m{^/(adm|res)/}) { |
if ($output =~ m{^/(adm|res)/}) { |
if ($output =~ m{^/res/}) { |
if ($output =~ m{^/res/}) { |
my $local_name = &Apache::lonnet::filelocation('',$output); |
my $local_name = &Apache::lonnet::filelocation('',$output); |
&Apache::lonnet::repcopy($local_name); |
&Apache::lonnet::repcopy($local_name); |
} |
} |
$output = &lonhttpdurl($output); |
$output = &lonhttpdurl($output); |
} |
} |
} |
} |
return $output; |
return $output; |
} |
} |
|
|
|
############################################## |
|
=pod |
|
|
|
=item * &head_subbox() |
|
|
|
Inputs: $content (contains HTML code with page functions, etc.) |
|
|
|
Returns: HTML div with $content |
|
To be included in page header |
|
|
|
=cut |
|
|
|
sub head_subbox { |
|
my ($content)=@_; |
|
my $output = |
|
'<div id="LC_head_subbox2">' #FIXME: solve conflicts with lonhtmlcommon:breadcrumbs LC_head_subbox |
|
.$content |
|
.'</div>' |
|
} |
|
|
|
############################################## |
|
=pod |
|
|
|
=item * &CSTR_pageheader() |
|
|
|
Inputs: ./. |
|
|
|
Returns: HTML div with CSTR path and recent box |
|
To be included on Construction Space pages |
|
|
|
=cut |
|
|
|
sub CSTR_pageheader { |
|
# this is for resources; directories have customtitle, and crumbs |
|
# and select recent are created in lonpubdir.pm |
|
my ($uname,$thisdisfn)= |
|
($env{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|); |
|
my $formaction='/priv/'.$uname.'/'.$thisdisfn; |
|
$formaction=~s/\/+/\//g; |
|
|
|
my $parentpath = ''; |
|
my $lastitem = ''; |
|
if ($thisdisfn =~ m-(.+/)([^/]*)$-) { |
|
$parentpath = $1; |
|
$lastitem = $2; |
|
} else { |
|
$lastitem = $thisdisfn; |
|
} |
|
return |
|
'<div>' |
|
.&Apache::loncommon::help_open_menu('','',3,'Authoring') #FIXME: Broken? Where is it? |
|
.'<b>'.&mt('Construction Space:').'</b> ' |
|
.'<form name="dirs" method="post" action="'.$formaction |
|
.'" target="_top"><tt><b>' #FIXME lonpubdir: target="_parent" |
|
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."$lastitem</b></tt><br />" |
|
#FIXME lonpubdir: &Apache::lonhtmlcommon::crumbs($uname.$thisdisfn.'/','_top','/priv','','+1',1)."</b></tt><br />" |
|
.&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') |
|
.'</form>' |
|
.&Apache::lonmenu::constspaceform() |
|
.'</div>'; |
|
} |
|
|
############################################### |
############################################### |
############################################### |
############################################### |
|
|
Line 4215 Inputs:
|
Line 4266 Inputs:
|
in the title box that appears, this text |
in the title box that appears, this text |
is not auto translated like the $title is |
is not auto translated like the $title is |
|
|
=item * $notopbar, if true, keep the 'what is this' info but remove the |
=item * $no_nav_bar, if true, keep the 'what is this' info but remove the |
navigational links |
navigational links |
|
|
=item * $bgcolor, used to override the bgcolor on a webpage to a specific value |
=item * $bgcolor, used to override the bgcolor on a webpage to a specific value |
|
|
=item * $notitle, if true keep the nav controls, but remove the title bar |
|
|
|
=item * $no_inline_link, if true and in remote mode, don't show the |
=item * $no_inline_link, if true and in remote mode, don't show the |
'Switch To Inline Menu' link |
'Switch To Inline Menu' link |
|
|
Line 4242 other decorations will be returned.
|
Line 4291 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,$no_inline_link,$args)=@_; |
$no_nav_bar,$bgcolor,$no_inline_link,$args)=@_; |
|
|
if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } |
if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } |
|
|
Line 4333 ENDROLE
|
Line 4382 ENDROLE
|
$forcereg=1; |
$forcereg=1; |
} |
} |
|
|
if (!$customtitle && $env{'request.state'} eq 'construct') { |
if (!$customtitle && $env{'request.state'} eq 'construct') { |
# this is for resources; directories have customtitle, and crumbs |
$titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls |
# and select recent are created in lonpubdir.pm |
} |
my ($uname,$thisdisfn)= |
|
($env{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|); |
my $titletable = '<table id="LC_title_bar">' |
my $formaction='/priv/'.$uname.'/'.$thisdisfn; |
."<tr><td> $titleinfo $dc_info</td>".$roleinfo |
$formaction=~s/\/+/\//g; |
.'</tr></table>'; |
|
|
my $parentpath = ''; |
if ($no_nav_bar) { |
my $lastitem = ''; |
|
if ($thisdisfn =~ m-(.+/)([^/]*)$-) { |
|
$parentpath = $1; |
|
$lastitem = $2; |
|
} else { |
|
$lastitem = $thisdisfn; |
|
} |
|
$titleinfo = |
|
&Apache::loncommon::help_open_menu('','',3,'Authoring') |
|
.'<b>'.&mt('Construction Space').'</b>: ' |
|
.'<form name="dirs" method="post" action="'.$formaction |
|
.'" target="_top"><tt><b>' |
|
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."<span class=\"LC_fontsize_big\">$lastitem</span></b></tt><br />" |
|
.&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') |
|
.'</form>' |
|
.&Apache::lonmenu::constspaceform(); |
|
} |
|
|
|
my $titletable; |
|
if (!$notitle) { |
|
$titletable = |
|
'<table id="LC_title_bar">'. |
|
"<tr><td> $titleinfo $dc_info</td>".$roleinfo. |
|
'</tr></table>'; |
|
} |
|
if ($notopbar) { |
|
$bodytag .= $titletable; |
$bodytag .= $titletable; |
} else { |
} else { |
|
$bodytag .= qq|<div id="LC_nav_bar">$name ($role)<br /> |
|
<em>$realm</em> $dc_info</div>|; |
if ($env{'request.state'} eq 'construct') { |
if ($env{'request.state'} eq 'construct') { |
$bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg, |
$bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg, |
$titletable); |
$titletable); |
Line 4395 ENDROLE
|
Line 4420 ENDROLE
|
my $menu= ($no_inline_link?'' |
my $menu= ($no_inline_link?'' |
:'<br /><a href="/adm/remote?action=collapse">'.&mt('Switch to Inline Menu Mode').'</a>'); |
:'<br /><a href="/adm/remote?action=collapse">'.&mt('Switch to Inline Menu Mode').'</a>'); |
# |
# |
if ($notitle) { |
|
return $bodytag; |
|
} |
|
return(<<ENDBODY); |
return(<<ENDBODY); |
$bodytag |
$bodytag |
<table id="LC_title_bar" class="LC_with_remote"> |
<table id="LC_title_bar" class="LC_with_remote"> |
Line 4450 sub make_attr_string {
|
Line 4472 sub make_attr_string {
|
$attr_ref->{'style'}=$style.'; font-size: x-large;'; |
$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 4575 a:focus {
|
Line 4588 a:focus {
|
background: yellow |
background: yellow |
} |
} |
|
|
table.thinborder, |
|
table.thinborder tr th { |
|
border-style: solid; |
|
border-width: 1px; |
|
border-color: $lg_border_color; |
|
background: $tabbg; |
|
} |
|
|
|
table.thinborder tr td { |
|
border-style: solid; |
|
border-width: 1px; |
|
border-color: $lg_border_color; |
|
} |
|
|
|
form, .inline { |
form, .inline { |
display: inline; |
display: inline; |
} |
} |
Line 4646 div.LC_confirm_box .LC_success img {
|
Line 4645 div.LC_confirm_box .LC_success img {
|
vertical-align: middle; |
vertical-align: middle; |
} |
} |
|
|
.LC_unknown { |
|
color: yellow; |
|
} |
|
|
|
.LC_icon { |
.LC_icon { |
border: none; |
border: none; |
vertical-align: middle; |
vertical-align: middle; |
} |
} |
|
|
.LC_indexer_icon { |
|
border: none; |
|
height: 22px; |
|
} |
|
|
|
.LC_docs_spacer { |
.LC_docs_spacer { |
width: 25px; |
width: 25px; |
height: 1px; |
height: 1px; |
Line 4721 table#LC_nav_location {
|
Line 4711 table#LC_nav_location {
|
table#LC_title_bar a { |
table#LC_title_bar a { |
color: $fontmenu; |
color: $fontmenu; |
} |
} |
|
|
|
table#LC_title_bar { |
|
clear: both; |
|
/*display: none;*/ |
|
} |
|
|
table#LC_title_bar, |
table#LC_title_bar, |
table.LC_breadcrumbs, |
table.LC_breadcrumbs, |
Line 4734 table#LC_title_bar.LC_with_remote {
|
Line 4729 table#LC_title_bar.LC_with_remote {
|
font-family: $sans; |
font-family: $sans; |
border-collapse: collapse; |
border-collapse: collapse; |
padding: 0; |
padding: 0; |
|
margin: 0; |
} |
} |
|
|
table.LC_docs_path { |
table.LC_docs_path { |
Line 4757 table#LC_title_bar .LC_title_bar_who {
|
Line 4753 table#LC_title_bar .LC_title_bar_who {
|
margin: 0; |
margin: 0; |
} |
} |
|
|
table#LC_title_bar .LC_title_bar_name { |
table#LC_title_bar div.LC_title_bar_name { |
margin: 0; |
margin: 0; |
} |
} |
|
|
table#LC_title_bar .LC_title_bar_role { |
table#LC_title_bar div.LC_title_bar_role { |
margin: 0; |
margin: 0; |
} |
} |
|
|
table#LC_title_bar .LC_title_bar_realm { |
table#LC_title_bar div.LC_title_bar_realm { |
margin: 0; |
margin: 0; |
} |
} |
|
|
Line 4842 table#LC_mainmenu td.LC_mainmenu_column
|
Line 4838 table#LC_mainmenu td.LC_mainmenu_column
|
font-size: 70%; |
font-size: 70%; |
} |
} |
|
|
|
#LC_head_subbox { |
|
clear:both; |
|
background: $sidebg; |
|
border-bottom: 1px solid $lg_border_color; |
|
height: 32px; |
|
line-height: 32px; |
|
margin: 0; |
|
padding: 0; |
|
} |
|
|
|
#LC_head_subbox2 { /* FIXME: replace by LC_head_subbox once lonhtmlcommon::breadcrumbs has been fixed */ |
|
clear:both; |
|
background: #F8F8F8; /* $sidebg; */ |
|
border-bottom: 1px solid $lg_border_color; |
|
margin: 0 0 10px 0; |
|
padding: 5px; |
|
} |
|
|
.LC_fontsize_medium { |
.LC_fontsize_medium { |
font-size: 85%; |
font-size: 85%; |
} |
} |
Line 4884 td.LC_menubuttons_text {
|
Line 4898 td.LC_menubuttons_text {
|
font-weight: bold; |
font-weight: bold; |
} |
} |
|
|
.LC_dropadd_labeltext { |
|
font-family: $sans; |
|
text-align: right; |
|
} |
|
|
|
.LC_preferences_labeltext { |
.LC_preferences_labeltext { |
font-family: $sans; |
font-family: $sans; |
text-align: right; |
text-align: right; |
Line 4902 td.LC_menubuttons_text {
|
Line 4911 td.LC_menubuttons_text {
|
font-weight: bold; |
font-weight: bold; |
} |
} |
|
|
table.LC_aboutme_port { |
|
border: none; |
|
border-collapse: collapse; |
|
border-spacing: 0; |
|
} |
|
|
|
table.LC_data_table, |
table.LC_data_table, |
table.LC_mail_list { |
table.LC_mail_list { |
border: 1px solid #000000; |
border: 1px solid #000000; |
Line 4951 table.LC_data_table tr.LC_info_row > td
|
Line 4954 table.LC_data_table tr.LC_info_row > td
|
} |
} |
|
|
table.LC_data_table tr.LC_odd_row > td, |
table.LC_data_table tr.LC_odd_row > td, |
table.LC_pick_box tr > td.LC_odd_row, |
table.LC_pick_box tr > td.LC_odd_row { |
table.LC_aboutme_port tr td { |
|
background-color: $data_table_light; |
background-color: $data_table_light; |
padding: 2px; |
padding: 2px; |
} |
} |
|
|
table.LC_data_table tr.LC_even_row > td, |
table.LC_data_table tr.LC_even_row > td, |
table.LC_pick_box tr > td.LC_even_row, |
table.LC_pick_box tr > td.LC_even_row { |
table.LC_aboutme_port tr.LC_even_row td { |
|
background-color: $data_table_dark; |
background-color: $data_table_dark; |
padding: 2px; |
padding: 2px; |
} |
} |
Line 5821 ul.LC_TabContent li:hover a {
|
Line 5822 ul.LC_TabContent li:hover a {
|
} |
} |
|
|
h1 { |
h1 { |
padding:5px 10px 5px 20px; |
padding: 0; |
line-height:130%; |
line-height:130%; |
} |
} |
|
|
Line 5874 dl,ul,div,fieldset {
|
Line 5875 dl,ul,div,fieldset {
|
/* overflow: hidden; */ |
/* overflow: hidden; */ |
} |
} |
|
|
|
#LC_nav_bar { |
|
float: left; |
|
margin: 0; |
|
} |
|
|
|
#LC_nav_bar em{ |
|
font-weight: bold; |
|
font-style: normal; |
|
} |
|
|
|
ol.LC_smallMenu { |
|
float: right; |
|
} |
|
|
ol.LC_smallMenu, ol#LC_PathBreadcrumbs { |
ol.LC_smallMenu, ol#LC_PathBreadcrumbs { |
margin: 0; |
margin: 0; |
} |
} |
Line 5894 ol.LC_smallMenu a {
|
Line 5909 ol.LC_smallMenu a {
|
text-decoration: none; |
text-decoration: none; |
} |
} |
|
|
ol#LC_TabMainMenuContent, |
ul#LC_TabMainMenuContent { |
|
clear: both; |
|
color: $fontmenu; |
|
background: $tabbg; |
|
list-style: none; |
|
padding: 0; |
|
margin: 0; |
|
float:left; |
|
width: 100%; |
|
} |
|
|
|
ul#LC_TabMainMenuContent li { |
|
float: left; |
|
font-weight: bold; |
|
line-height: 1.8em; |
|
padding: 0 0.8em; |
|
border-right: 1px solid black; |
|
display: inline; |
|
vertical-align: middle; |
|
} |
|
|
ul.LC_TabContent , |
ul.LC_TabContent , |
ul.LC_TabContentBigger { |
ul.LC_TabContentBigger { |
display:block; |
display:block; |
Line 5903 ul.LC_TabContentBigger {
|
Line 5938 ul.LC_TabContentBigger {
|
padding: 0; |
padding: 0; |
} |
} |
|
|
ol#LC_TabMainMenuContent li, |
|
ul.LC_TabContent li, |
ul.LC_TabContent li, |
ul.LC_TabContentBigger li { |
ul.LC_TabContentBigger li { |
display: inline; |
display: inline; |
Line 5913 ul.LC_TabContentBigger li {
|
Line 5947 ul.LC_TabContentBigger li {
|
white-space:nowrap; |
white-space:nowrap; |
} |
} |
|
|
ol#LC_TabMainMenuContent li { |
ul#LC_TabMainMenuContent li a { |
vertical-align: bottom; |
color: $fontmenu; |
border-bottom: solid 1px RGB(175, 175, 175); |
|
padding: 5px 10px 5px 10px; |
|
margin-right:5px; |
|
margin-bottom:3px; |
|
font-weight: bold; |
|
background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top; |
|
} |
|
|
|
ol#LC_TabMainMenuContent li a { |
|
color: RGB(47, 47, 47); |
|
text-decoration: none; |
text-decoration: none; |
} |
} |
|
|
Line 5976 ul.LC_TabContentBigger li a {
|
Line 6000 ul.LC_TabContentBigger li a {
|
ol#LC_MenuBreadcrumbs, |
ol#LC_MenuBreadcrumbs, |
ol#LC_PathBreadcrumbs, |
ol#LC_PathBreadcrumbs, |
ul.LC_CourseBreadcrumbs { |
ul.LC_CourseBreadcrumbs { |
border-top: solid 1px RGB(255, 255, 255); |
|
height: 20px; |
|
line-height: 20px; |
|
vertical-align: bottom; |
|
margin: 0 0 30px 0; |
|
padding-left: 10px; |
padding-left: 10px; |
|
margin: 0; |
list-style-position: inside; |
list-style-position: inside; |
background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top; |
|
} |
} |
|
|
ol#LC_MenuBreadcrumbs li, |
ol#LC_MenuBreadcrumbs li, |
ol#LC_PathBreadcrumbs li, |
ol#LC_PathBreadcrumbs li, |
ul.LC_CourseBreadcrumbs li { |
ul.LC_CourseBreadcrumbs li { |
/* |
|
background: url(/adm/lonIcons/arrow_white.png) no-repeat left center; |
|
*/ |
|
display: inline; |
display: inline; |
padding: 0 0 0 10px; |
padding: 0 0 0 10px; |
/* vertical-align: bottom; */ |
|
overflow:hidden; |
overflow:hidden; |
} |
} |
|
|
Line 6474 $args - additional optional args support
|
Line 6489 $args - additional optional args support
|
|
|
only_body -> is true will set &bodytag() onlybodytag |
only_body -> is true will set &bodytag() onlybodytag |
arg on |
arg on |
no_nav_bar -> is true will set &bodytag() notopbar arg on |
no_nav_bar -> is true will set &bodytag() no_nav_bar arg on |
add_entries -> additional attributes to add to the <body> |
add_entries -> additional attributes to add to the <body> |
domain -> force to color decorate a page for a |
domain -> force to color decorate a page for a |
specific domain |
specific domain |
Line 6493 $args - additional optional args support
|
Line 6508 $args - additional optional args support
|
is not auto translated like the $title is |
is not auto translated like the $title is |
frameset -> if true will start with a <frameset> |
frameset -> if true will start with a <frameset> |
rather than <body> |
rather than <body> |
no_title -> if true the title bar won't be shown |
|
skip_phases -> hash ref of |
skip_phases -> hash ref of |
head -> skip the <html><head> generation |
head -> skip the <html><head> generation |
body -> skip all <body> generation |
body -> skip all <body> generation |
Line 6542 sub start_page {
|
Line 6556 sub start_page {
|
$args->{'only_body'}, $args->{'domain'}, |
$args->{'only_body'}, $args->{'domain'}, |
$args->{'force_register'}, $args->{'body_title'}, |
$args->{'force_register'}, $args->{'body_title'}, |
$args->{'no_nav_bar'}, $args->{'bgcolor'}, |
$args->{'no_nav_bar'}, $args->{'bgcolor'}, |
$args->{'no_title'}, $args->{'no_inline_link'}, |
$args->{'no_inline_link'}, |
$args); |
$args); |
} |
} |
} |
} |
Line 6554 sub start_page {
|
Line 6568 sub start_page {
|
$result = &html_encode($result); |
$result = &html_encode($result); |
} |
} |
|
|
#Breadcrumbs |
# Preparation for new and consistent functionlist at top of screen |
|
# if ($args->{'functionlist'}) { |
|
# $result .= &build_functionlist(); |
|
#} |
|
|
|
# Don't add anything more if only_body wanted |
|
return $result if $args->{'only_body'}; |
|
|
|
#Breadcrumbs |
if (exists($args->{'bread_crumbs'}) or exists($args->{'bread_crumbs_component'})) { |
if (exists($args->{'bread_crumbs'}) or exists($args->{'bread_crumbs_component'})) { |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
#if any br links exists, add them to the breadcrumbs |
#if any br links exists, add them to the breadcrumbs |
Line 6798 Returns either 'student','coordinator','
|
Line 6820 Returns either 'student','coordinator','
|
|
|
############################################### |
############################################### |
sub get_users_function { |
sub get_users_function { |
my $function = 'student'; |
my $function = 'norole'; |
|
if ($env{'request.role'}=~/^(st)/) { |
|
$function='student'; |
|
} |
if ($env{'request.role'}=~/^(cc|in|ta|ep)/) { |
if ($env{'request.role'}=~/^(cc|in|ta|ep)/) { |
$function='coordinator'; |
$function='coordinator'; |
} |
} |
Line 6816 sub get_users_function {
|
Line 6841 sub get_users_function {
|
|
|
=pod |
=pod |
|
|
|
=item * &show_course() |
|
|
|
Used by lonmenu.pm and lonroles.pm to determine whether to use the word |
|
'Courses' or 'Roles' in inline navigation and on screen displaying user's roles. |
|
|
|
Inputs: |
|
None |
|
|
|
Outputs: |
|
Scalar: 1 if 'Course' to be used, 0 otherwise. |
|
|
|
=cut |
|
|
|
############################################### |
|
sub show_course { |
|
my $course = !$env{'user.adv'}; |
|
if (!$env{'user.adv'}) { |
|
foreach my $env (keys(%env)) { |
|
next if ($env !~ m/^user\.priv\./); |
|
if ($env !~ m/^user\.priv\.(?:st|cm)/) { |
|
$course = 0; |
|
last; |
|
} |
|
} |
|
} |
|
return $course; |
|
} |
|
|
|
############################################### |
|
|
|
=pod |
|
|
=item * &check_user_status() |
=item * &check_user_status() |
|
|
Determines current status of supplied role for a |
Determines current status of supplied role for a |
Line 10234 sub escape_url {
|
Line 10291 sub escape_url {
|
return join('/',@urlslices).'/'.$lastitem; |
return join('/',@urlslices).'/'.$lastitem; |
} |
} |
|
|
# -------------------------------------------------------- Initliaze user login |
sub compare_arrays { |
|
my ($arrayref1,$arrayref2) = @_; |
|
my (@difference,%count); |
|
@difference = (); |
|
%count = (); |
|
if ((ref($arrayref1) eq 'ARRAY') && (ref($arrayref2) eq 'ARRAY')) { |
|
foreach my $element (@{$arrayref1}, @{$arrayref2}) { $count{$element}++; } |
|
foreach my $element (keys(%count)) { |
|
if ($count{$element} == 1) { |
|
push(@difference,$element); |
|
} |
|
} |
|
} |
|
return @difference; |
|
} |
|
|
|
# -------------------------------------------------------- Initialize user login |
sub init_user_environment { |
sub init_user_environment { |
my ($r, $username, $domain, $authhost, $form, $args) = @_; |
my ($r, $username, $domain, $authhost, $form, $args) = @_; |
my $lonids=$Apache::lonnet::perlvar{'lonIDsDir'}; |
my $lonids=$Apache::lonnet::perlvar{'lonIDsDir'}; |
Line 10288 sub init_user_environment {
|
Line 10361 sub init_user_environment {
|
my ($httpbrowser,$clientbrowser,$clientversion,$clientmathml, |
my ($httpbrowser,$clientbrowser,$clientversion,$clientmathml, |
$clientunicode,$clientos) = &decode_user_agent($r); |
$clientunicode,$clientos) = &decode_user_agent($r); |
|
|
# -------------------------------------- Any accessibility options to remember? |
|
if (($form->{'interface'}) && ($form->{'remember'} eq 'true')) { |
|
foreach my $option ('imagesuppress','appletsuppress', |
|
'embedsuppress','fontenhance','blackwhite') { |
|
if ($form->{$option} eq 'true') { |
|
&Apache::lonnet::put('environment',{$option => 'on'}, |
|
$domain,$username); |
|
} else { |
|
&Apache::lonnet::del('environment',[$option], |
|
$domain,$username); |
|
} |
|
} |
|
} |
|
# ------------------------------------------------------------- Get environment |
# ------------------------------------------------------------- Get environment |
|
|
my %userenv = &Apache::lonnet::dump('environment',$domain,$username); |
my %userenv = &Apache::lonnet::dump('environment',$domain,$username); |
Line 10318 sub init_user_environment {
|
Line 10378 sub init_user_environment {
|
if ($userenv{'texengine'} eq 'ttm') { $clientmathml=1; } |
if ($userenv{'texengine'} eq 'ttm') { $clientmathml=1; } |
|
|
# --------------- Do not trust query string to be put directly into environment |
# --------------- Do not trust query string to be put directly into environment |
foreach my $option ('imagesuppress','appletsuppress', |
foreach my $option ('interface','localpath','localres') { |
'embedsuppress','fontenhance','blackwhite', |
$form->{$option}=~s/[\n\r\=]//gs; |
'interface','localpath','localres') { |
|
$form->{$option}=~s/[\n\r\=]//gs; |
|
} |
} |
# --------------------------------------------------------- Write first profile |
# --------------------------------------------------------- Write first profile |
|
|
Line 10355 sub init_user_environment {
|
Line 10413 sub init_user_environment {
|
$form->{'interface'}=~s/\W//gs; |
$form->{'interface'}=~s/\W//gs; |
$initial_env{"browser.interface"} = $form->{'interface'}; |
$initial_env{"browser.interface"} = $form->{'interface'}; |
$env{'browser.interface'}=$form->{'interface'}; |
$env{'browser.interface'}=$form->{'interface'}; |
foreach my $option ('imagesuppress','appletsuppress', |
|
'embedsuppress','fontenhance','blackwhite') { |
|
if (($form->{$option} eq 'true') || |
|
($userenv{$option} eq 'on')) { |
|
$initial_env{"browser.$option"} = "on"; |
|
} |
|
} |
|
} |
} |
|
|
foreach my $tool ('aboutme','blog','portfolio') { |
foreach my $tool ('aboutme','blog','portfolio') { |