version 1.692.2.10, 2008/12/25 04:45:35
|
version 1.702, 2008/12/03 00:09:56
|
Line 2717 sub flush_email_cache {
|
Line 2717 sub flush_email_cache {
|
&Apache::lonnet::devalidate_cache_new('emailscache',$id); |
&Apache::lonnet::devalidate_cache_new('emailscache',$id); |
} |
} |
|
|
# -------------------------------------------------------------------- getlangs |
|
|
|
=pod |
|
|
|
=item * &getlangs($uname,$udom) |
|
|
|
Gets a user's language preference and returns it as a hash with key: |
|
language. |
|
|
|
=cut |
|
|
|
sub getlangs { |
|
my ($uname,$udom) = @_; |
|
if (!$udom) { $udom =$env{'user.domain'}; } |
|
if (!$uname) { $uname=$env{'user.name'}; } |
|
my $id=$uname.':'.$udom; |
|
my ($langs,$cached)=&Apache::lonnet::is_cached_new('userlangs',$id); |
|
if ($cached) { |
|
return %{$langs}; |
|
} else { |
|
my %loadlangs=&Apache::lonnet::get('environment',['languages'], |
|
$udom,$uname); |
|
&Apache::lonnet::do_cache_new('userlangs',$id,\%loadlangs); |
|
return %loadlangs; |
|
} |
|
} |
|
|
|
sub flush_langs_cache { |
|
my ($uname,$udom)=@_; |
|
if (!$udom) { $udom =$env{'user.domain'}; } |
|
if (!$uname) { $uname=$env{'user.name'}; } |
|
return if ($udom eq 'public' && $uname eq 'public'); |
|
my $id=$uname.':'.$udom; |
|
&Apache::lonnet::devalidate_cache_new('userlangs',$id); |
|
} |
|
|
|
# ------------------------------------------------------------------ Screenname |
# ------------------------------------------------------------------ Screenname |
|
|
=pod |
=pod |
Line 3207 sub relative_to_absolute {
|
Line 3171 sub relative_to_absolute {
|
} |
} |
$thisdir=~s-/[^/]*$--; |
$thisdir=~s-/[^/]*$--; |
foreach my $link (@rlinks) { |
foreach my $link (@rlinks) { |
unless (($link=~/^https?\:\/\//i) || |
unless (($link=~/^http:\/\//i) || |
($link=~/^\//) || |
($link=~/^\//) || |
($link=~/^javascript:/i) || |
($link=~/^javascript:/i) || |
($link=~/^mailto:/i) || |
($link=~/^mailto:/i) || |
Line 3918 sub get_domainconf {
|
Line 3882 sub get_domainconf {
|
foreach my $key (keys(%{$domconfig{'login'}})) { |
foreach my $key (keys(%{$domconfig{'login'}})) { |
if (ref($domconfig{'login'}{$key}) eq 'HASH') { |
if (ref($domconfig{'login'}{$key}) eq 'HASH') { |
foreach my $img (keys(%{$domconfig{'login'}{$key}})) { |
foreach my $img (keys(%{$domconfig{'login'}{$key}})) { |
$designhash{$udom.'.login.'.$key.'_'.$img} = |
$designhash{$udom.'.login.'.$key.'_'.$img} = |
$domconfig{'login'}{$key}{$img}; |
$domconfig{'login'}{$key}{$img}; |
} |
} |
} else { |
} else { |
Line 4447 sub standard_css {
|
Line 4411 sub standard_css {
|
my $mail_other_hover = '#669999'; |
my $mail_other_hover = '#669999'; |
my $table_header = '#DDDDDD'; |
my $table_header = '#DDDDDD'; |
my $feedback_link_bg = '#BBBBBB'; |
my $feedback_link_bg = '#BBBBBB'; |
|
my $lg_border_color = '#C8C8C8'; |
|
|
my $border = ($env{'browser.type'} eq 'explorer' || |
my $border = ($env{'browser.type'} eq 'explorer' || |
$env{'browser.type'} eq 'safari' ) ? '0px 2px 0px 2px' |
$env{'browser.type'} eq 'safari' ) ? '0px 2px 0px 2px' |
Line 4454 sub standard_css {
|
Line 4419 sub standard_css {
|
|
|
|
|
return <<END; |
return <<END; |
h1, h2, h3, th { font-family: $sans } |
body{ |
|
font-family: $sans; |
|
line-height:130%; |
|
font-size:0.83em; |
|
color:$font; |
|
} |
|
a:link, a:visited { font-size:100%; } |
|
|
a:focus { color: red; background: yellow } |
a:focus { color: red; background: yellow } |
table.thinborder, |
table.thinborder, |
|
|
table.thinborder tr th { |
table.thinborder tr th { |
border-style: solid; |
border-style: solid; |
border-width: 1px; |
border-width: 1px; |
|
border-color: $lg_border_color; |
background: $tabbg; |
background: $tabbg; |
} |
} |
table.thinborder tr td { |
table.thinborder tr td { |
border-style: solid; |
border-style: solid; |
border-width: 1px |
border-width: 1px; |
|
border-color: $lg_border_color; |
} |
} |
|
|
form, .inline { display: inline; } |
form, .inline { display: inline; } |
.center { text-align: center; } |
.center { text-align: center; } |
|
.left { text-align:left; } |
|
.right {text-align:right;} |
|
.middle {vertical-align:middle;} |
|
.top {vertical-align:top;} |
|
.bottom {vertical-align:bottom;} |
.LC_filename {font-family: $mono; white-space:pre;} |
.LC_filename {font-family: $mono; white-space:pre;} |
.LC_error { |
.LC_error { |
color: red; |
color: red; |
Line 4531 table#LC_title_bar.LC_with_remote {
|
Line 4509 table#LC_title_bar.LC_with_remote {
|
border-collapse: collapse; |
border-collapse: collapse; |
padding: 0px; |
padding: 0px; |
} |
} |
|
|
table.LC_docs_path { |
table.LC_docs_path { |
width: 100%; |
width: 100%; |
border: 0; |
border: 0; |
Line 4628 table#LC_mainmenu td.LC_mainmenu_column
|
Line 4605 table#LC_mainmenu td.LC_mainmenu_column
|
.LC_menubuttons_inline_text { |
.LC_menubuttons_inline_text { |
color: $font; |
color: $font; |
font-family: $sans; |
font-family: $sans; |
font-size: smaller; |
font-size: 90%; |
|
padding-left:3px; |
} |
} |
|
|
.LC_menubuttons_link { |
.LC_menubuttons_link { |
Line 4644 table#LC_mainmenu td.LC_mainmenu_column
|
Line 4622 table#LC_mainmenu td.LC_mainmenu_column
|
} |
} |
|
|
td.LC_menubuttons_text { |
td.LC_menubuttons_text { |
width: 90%; |
color: $font; |
color: $font; |
|
font-family: $sans; |
|
} |
} |
|
|
td.LC_menubuttons_img { |
td.LC_menubuttons_img { |
} |
} |
|
|
Line 4702 td.LC_menubuttons_img {
|
Line 4677 td.LC_menubuttons_img {
|
} |
} |
|
|
.LC_roleslog_note { |
.LC_roleslog_note { |
font-size: smaller; |
font-size: small; |
} |
|
|
|
.LC_mail_functions { |
|
font-weight: bold; |
|
} |
} |
|
|
table.LC_aboutme_port { |
table.LC_aboutme_port { |
Line 4739 table.LC_data_table tr th, table.LC_cale
|
Line 4710 table.LC_data_table tr th, table.LC_cale
|
table.LC_prior_tries tr th { |
table.LC_prior_tries tr th { |
font-weight: bold; |
font-weight: bold; |
background-color: $data_table_head; |
background-color: $data_table_head; |
font-size: smaller; |
font-size:90%; |
} |
|
table.LC_data_table tr.LC_info_row > td { |
|
background-color: #CCC; |
|
font-weight: bold; |
|
text-align: left; |
|
} |
} |
table.LC_data_table tr.LC_odd_row > td, |
table.LC_data_table tr.LC_odd_row > td, |
table.LC_aboutme_port tr td { |
table.LC_aboutme_port tr td { |
Line 4776 table.LC_nested tr.LC_empty_row td {
|
Line 4742 table.LC_nested tr.LC_empty_row td {
|
table.LC_nested_outer tr th { |
table.LC_nested_outer tr th { |
font-weight: bold; |
font-weight: bold; |
background-color: $data_table_head; |
background-color: $data_table_head; |
font-size: smaller; |
font-size: small; |
border-bottom: 1px solid #000000; |
border-bottom: 1px solid #000000; |
} |
} |
table.LC_nested_outer tr td.LC_subheader { |
table.LC_nested_outer tr td.LC_subheader { |
Line 4815 table.LC_createuser {
|
Line 4781 table.LC_createuser {
|
} |
} |
|
|
table.LC_createuser tr.LC_section_row td { |
table.LC_createuser tr.LC_section_row td { |
font-size: smaller; |
font-size: small; |
} |
} |
|
|
table.LC_createuser tr.LC_info_row td { |
table.LC_createuser tr.LC_info_row td { |
Line 4871 table.LC_mail_list tr.LC_mail_even {
|
Line 4837 table.LC_mail_list tr.LC_mail_even {
|
table.LC_mail_list tr.LC_mail_odd { |
table.LC_mail_list tr.LC_mail_odd { |
} |
} |
|
|
|
|
table#LC_portfolio_actions { |
|
width: auto; |
|
background: $pgbg; |
|
border: 0px; |
|
border-spacing: 2px 2px; |
|
padding: 0px; |
|
margin: 0px; |
|
border-collapse: separate; |
|
} |
|
table#LC_portfolio_actions td.LC_label { |
|
background: $tabbg; |
|
text-align: right; |
|
} |
|
table#LC_portfolio_actions td.LC_value { |
|
background: $tabbg; |
|
} |
|
|
|
table#LC_cstr_controls { |
table#LC_cstr_controls { |
width: 100%; |
width: 100%; |
border-collapse: collapse; |
border-collapse: collapse; |
Line 4907 table#LC_cstr_controls tr th {
|
Line 4855 table#LC_cstr_controls tr th {
|
font-size: smaller; |
font-size: smaller; |
} |
} |
|
|
table#LC_browser { |
table.LC_data_table tr > td.LC_browser_file, |
|
table.LC_data_table tr > td.LC_browser_file_published { |
} |
|
table#LC_browser tr th { |
|
background: $table_header; |
|
} |
|
table#LC_browser tr td { |
|
padding: 2px; |
|
} |
|
table#LC_browser tr.LC_browser_file, |
|
table#LC_browser tr.LC_browser_file_published { |
|
background: #CCFF88; |
background: #CCFF88; |
} |
} |
table#LC_browser tr.LC_browser_file_locked, |
table.LC_data_table tr > td.LC_browser_file_locked, |
table#LC_browser tr.LC_browser_file_unpublished { |
table.LC_data_table tr > td.LC_browser_file_unpublished { |
background: #FFAA99; |
background: #FFAA99; |
} |
} |
table#LC_browser tr.LC_browser_file_obsolete { |
table.LC_data_table tr > td.LC_browser_file_obsolete { |
background: #AAAAAA; |
background: #AAAAAA; |
} |
} |
table#LC_browser tr.LC_browser_file_modified, |
table.LC_data_table tr > td.LC_browser_file_modified, |
table#LC_browser tr.LC_browser_file_metamodified { |
table.LC_data_table tr > td.LC_browser_file_metamodified { |
background: #FFFF77; |
background: #FFFF77; |
} |
} |
table#LC_browser tr.LC_browser_folder { |
table.LC_data_table tr.LC_browser_folder > td { |
background: #CCCCFF; |
background: #CCCCFF; |
} |
} |
|
|
span.LC_current_location { |
span.LC_current_location { |
font-size: x-large; |
font-size:larger; |
background: $pgbg; |
background: $pgbg; |
} |
} |
|
|
Line 5443 table.LC_scantron_action {
|
Line 5383 table.LC_scantron_action {
|
width: 100%; |
width: 100%; |
} |
} |
table.LC_scantron_action tr th { |
table.LC_scantron_action tr th { |
font: normal bold $sans; |
font-weight:bold; |
|
font-style:normal; |
} |
} |
|
.LC_edit_problem_header, |
div.LC_edit_problem_header, |
|
div.LC_edit_problem_footer { |
div.LC_edit_problem_footer { |
font: normal medium $sans; |
font: normal medium $sans; |
margin: 2px; |
margin: 2px; |
Line 5522 fieldset#LC_mainmenu_fieldset {
|
Line 5462 fieldset#LC_mainmenu_fieldset {
|
margin:0px 10px 10px 0px; |
margin:0px 10px 10px 0px; |
|
|
} |
} |
|
/* ---- Remove when done ---- |
|
# The following styles is part of the redesign of LON-CAPA and are |
|
# subject to change during this project. |
|
# Don't rely on their current functionality as they might be |
|
# changed or removed. |
|
# --------------------------*/ |
|
|
|
a:hover, |
|
ol.smallMenu a:hover, |
|
ol#MenuBreadcrumbs a:hover, |
|
ul#TabMainMenuContent a:hover, |
|
.FormSectionClearButton input:hover{ |
|
color:#BF2317; |
|
text-decoration:none; |
|
} |
|
|
|
h1 { |
|
padding:5px 10px 5px 0px; |
|
line-height:130%; |
|
} |
|
|
div.LC_createcourse { |
h2,h3,h4,h5,h6 |
margin: 10px 10px 10px 10px; |
{ |
|
margin:5px 0px 5px 0px; |
|
line-height:130%; |
} |
} |
|
.hcell{ |
|
padding:3px 15px 3px 15px; |
|
margin:0px; |
|
background-color:$pgbg; |
|
background-color:$ border-bottom:solid 1px $lg_border_color; |
|
} |
|
.noBorder { |
|
border:0px; |
|
} |
|
/* |
|
.bgLightGrey { background:URL(images/TabMenuBG.png) repeat-x left top; } |
|
.bgLightGreyYellow {background-color:#EFECE0;} |
|
*/ |
|
|
|
|
|
/* Main Header with discription of Person, Course, etc. */ |
|
.HeadRight { |
|
text-align: right; |
|
float: right; |
|
margin: 0px; |
|
padding: 0px; |
|
right:0; |
|
position:absolute; |
|
overflow:hidden; |
|
} |
|
|
|
p { |
|
padding: 10px; |
|
|
|
} |
|
.FormSectionClearButton input { |
|
background-color:transparent; |
|
border:0px; |
|
cursor:pointer; |
|
text-decoration:underline; |
|
} |
|
|
|
|
|
dl,ul,div,fieldset { |
|
margin: 10px 10px 10px 0px; |
|
overflow:hidden; |
|
} |
|
ol.smallMenu { |
|
margin: 0px; |
|
} |
|
|
|
ol.smallMenu li { |
|
display: inline; |
|
padding: 5px 5px 0px 10px; |
|
vertical-align: top; |
|
} |
|
|
|
ol.smallMenu li img { |
|
vertical-align: bottom; |
|
} |
|
|
|
ol.smallMenu a { |
|
font-size: 90%; |
|
color: RGB(80, 80, 80); |
|
text-decoration: none; |
|
} |
|
|
|
ol#TabMainMenuContent { |
|
|
|
margin: 0px 0px 10px 0px; |
|
padding: 0px; |
|
} |
|
|
|
ol#TabMainMenuContent li { |
|
display: inline; |
|
vertical-align: bottom; |
|
border-bottom: solid 1px RGB(175, 175, 175); |
|
border-right: solid 1px RGB(175, 175, 175); |
|
padding: 5px 15px 5px 15px; |
|
margin-right:4px; |
|
line-height: 140%; |
|
font-weight: bold; |
|
overflow:hidden; |
|
/* background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left top;*/ |
|
} |
|
|
|
ol#TabMainMenuContent li a{ |
|
color: RGB(47, 47, 47); |
|
text-decoration: none; |
|
} |
|
|
|
ol#TabMainMenuContent div.columnSection { |
|
margin-bottom: 0px; |
|
} |
|
|
|
ol#MenuBreadcrumbs, ol#PathBreadcrumbs { |
|
border-top: solid 1px RGB(255, 255, 255); |
|
height: 20px; |
|
line-height: 20px; |
|
vertical-align: bottom; |
|
margin: 0px 0px 30px 0px; |
|
padding-left: 10px; |
|
list-style-position: inside; |
|
/* background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left |
|
top;*/ |
|
} |
|
|
|
ol#MenuBreadcrumbs li, ol#PathBreadcrumbs li { |
|
/* background: url(images/pfeil_white.png) no-repeat left center;*/ |
|
display: inline; |
|
padding: 0px 0px 0px 10px; |
|
vertical-align: bottom; |
|
overflow:hidden; |
|
} |
|
|
|
ol#MenuBreadcrumbs li a { |
|
text-decoration: none; |
|
font-size:90%; |
|
} |
|
ol#PathBreadcrumbs li a{ |
|
text-decoration:none; |
|
font-size:100%; |
|
font-weight:bold; |
|
} |
|
|
|
.ContentBoxSpecial |
|
{ |
|
border: solid 1px $lg_border_color; |
|
} |
|
.ContentBox { |
|
padding:10px; |
|
} |
|
.PopUp |
|
{ |
|
padding:10px; |
|
border-left:solid 1px $lg_border_color; |
|
border-top:solid 1px $lg_border_color; |
|
border-bottom:outset 1px $lg_border_color; |
|
border-right:outset 1px $lg_border_color; |
|
display:none; |
|
position:absolute; |
|
right:0; |
|
background-color:white; |
|
z-index:5; |
|
} |
|
|
|
dl.ListStyleClean dt { |
|
padding-right: 5px; |
|
display: table-header-group; |
|
} |
|
|
|
dl.ListStyleClean dd { |
|
display: table-row; |
|
} |
|
|
|
.ListStyleClean, |
|
.ListStyleSimple, |
|
.ListStyleNormal, |
|
.ListStyleNormal_Border, |
|
.ListStyleSpecial |
|
{ |
|
/*display:block; */ |
|
list-style-position: inside; |
|
list-style-type: none; |
|
overflow: hidden; |
|
padding: 0px; |
|
} |
|
|
|
.ListStyleSimple li, |
|
.ListStyleSimple dd, |
|
.ListStyleNormal li, |
|
.ListStyleNormal dd, |
|
.ListStyleSpecial li, |
|
.ListStyleSpecial dd |
|
{ |
|
margin: 0px; |
|
padding: 5px 5px 5px 10px; |
|
clear: both; |
|
} |
|
|
|
.ListStyleClean li, |
|
.ListStyleClean dd { |
|
padding-top: 0px; |
|
padding-bottom: 0px; |
|
} |
|
|
|
.ListStyleSimple dd, |
|
.ListStyleSimple li{ |
|
border-bottom: solid 1px $lg_border_color; |
|
} |
|
|
|
.ListStyleSpecial li, |
|
.ListStyleSpecial dd { |
|
list-style-type: none; |
|
background-color: RGB(220, 220, 220); |
|
margin-bottom: 4px; |
|
} |
|
|
|
table.SimpleTable { |
|
margin:5px; |
|
border:solid 1px $lg_border_color; |
|
} |
|
|
|
table.SimpleTable tr { |
|
padding:0px; |
|
border:solid 1px $lg_border_color; |
|
} |
|
table.SimpleTable thead{ |
|
background:rgb(220,220,220); |
|
} |
|
|
|
div.columnSection { |
|
display: block; |
|
clear: both; |
|
overflow: hidden; |
|
margin:0px; |
|
} |
|
|
|
div.columnSection>* { |
|
float: left; |
|
margin: 10px 20px 10px 0px; |
|
overflow:hidden; |
|
} |
|
div.columnSection > .ContentBox, |
|
div.columnSection > .ContentBoxSpecial |
|
{ |
|
width: 400px; |
|
|
|
} |
|
|
|
.LC_loginpage_container { |
|
text-align:left; |
|
margin : 0 auto; |
|
width:65%; |
|
padding: 10px; |
|
height: auto; |
|
background-color:#FFFFFF; |
|
border:1px solid #CCCCCC; |
|
} |
|
|
|
|
|
.LC_loginpage_loginContainer { |
|
float:left; |
|
width:60%; |
|
} |
|
|
|
.LC_loginpage_loginInfo { |
|
margin-top:20px; |
|
margin-left:20px; |
|
float:left; |
|
width:30%; |
|
border:1px solid #CCCCCC; |
|
padding:10px; |
|
} |
|
|
|
.LC_loginpage_space { |
|
clear:both; |
|
margin-bottom:20px; |
|
border-bottom: 1px solid #CCCCCC; |
|
} |
|
|
|
.LC_loginpage_fieldset{ |
|
border: 1px solid #CCCCCC; |
|
margin: 0 auto; |
|
} |
|
|
|
.LC_loginpage_legend{ |
|
padding: 2px; |
|
margin: 0px; |
|
font-size:14px; |
|
font-weight:bold; |
|
} |
|
|
|
|
|
|
END |
END |
} |
} |
Line 6557 sub default_quota {
|
Line 6788 sub default_quota {
|
if ($inststatus ne '') { |
if ($inststatus ne '') { |
my @statuses = split(/:/,$inststatus); |
my @statuses = split(/:/,$inststatus); |
foreach my $item (@statuses) { |
foreach my $item (@statuses) { |
if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { |
if ($quotahash{'quotas'}{$item} ne '') { |
if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') { |
if ($defquota eq '') { |
if ($defquota eq '') { |
$defquota = $quotahash{'quotas'}{$item}; |
$defquota = $quotahash{'quotas'}{'defaultquota'}{$item}; |
$settingstatus = $item; |
$settingstatus = $item; |
} elsif ($quotahash{'quotas'}{$item} > $defquota) { |
} elsif ($quotahash{'quotas'}{'defaultquota'}{$item} > $defquota) { |
$defquota = $quotahash{'quotas'}{$item}; |
$defquota = $quotahash{'quotas'}{'defaultquota'}{$item}; |
$settingstatus = $item; |
$settingstatus = $item; |
|
} |
|
} |
|
} else { |
|
if ($quotahash{'quotas'}{$item} ne '') { |
|
if ($defquota eq '') { |
|
$defquota = $quotahash{'quotas'}{$item}; |
|
$settingstatus = $item; |
|
} elsif ($quotahash{'quotas'}{$item} > $defquota) { |
|
$defquota = $quotahash{'quotas'}{$item}; |
|
$settingstatus = $item; |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
} |
if ($defquota eq '') { |
if ($defquota eq '') { |
if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { |
$defquota = $quotahash{'quotas'}{'default'}; |
$defquota = $quotahash{'quotas'}{'defaultquota'}{'default'}; |
|
} else { |
|
$defquota = $quotahash{'quotas'}{'default'}; |
|
} |
|
$settingstatus = 'default'; |
$settingstatus = 'default'; |
} |
} |
} else { |
} else { |
Line 9066 sub construct_course {
|
Line 9281 sub construct_course {
|
'policy.email', |
'policy.email', |
'comment.email', |
'comment.email', |
'pch.users.denied', |
'pch.users.denied', |
'plc.users.denied', |
'plc.users.denied'], |
'hidefromcat', |
|
'categories'], |
|
$$crsudom,$$crsunum); |
$$crsudom,$$crsunum); |
} |
} |
|
|
Line 9526 sub init_user_environment {
|
Line 9739 sub init_user_environment {
|
} |
} |
} |
} |
|
|
foreach my $tool ('aboutme','blog','portfolio') { |
|
$userenv{'availabletools.'.$tool} = |
|
&Apache::lonnet::usertools_access($username,$domain,$tool,'reload'); |
|
} |
|
|
|
$env{'user.environment'} = "$lonids/$cookie.id"; |
$env{'user.environment'} = "$lonids/$cookie.id"; |
|
|
if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id", |
if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id", |
Line 9569 sub _add_to_env {
|
Line 9777 sub _add_to_env {
|
# --- Get the symbolic name of a problem and the url |
# --- Get the symbolic name of a problem and the url |
sub get_symb { |
sub get_symb { |
my ($request,$silent) = @_; |
my ($request,$silent) = @_; |
(my $url=$env{'form.url'}) =~ s-^https?\://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; |
(my $url=$env{'form.url'}) =~ s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; |
my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url))); |
my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url))); |
if ($symb eq '') { |
if ($symb eq '') { |
if (!$silent) { |
if (!$silent) { |