--- loncom/interface/loncommon.pm 2008/12/10 21:46:58 1.713
+++ loncom/interface/loncommon.pm 2009/02/24 20:10:30 1.753
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.713 2008/12/10 21:46:58 kaisler Exp $
+# $Id: loncommon.pm,v 1.753 2009/02/24 20:10:30 droeschl Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -943,24 +943,30 @@ ENDTEMPLATE
# This is a quicky function for Latex cheatsheet editing, since it
# appears in at least four places
sub helpLatexCheatsheet {
- my $other = shift;
+ my ($topic,$text,$not_author) = @_;
+ my $out;
my $addOther = '';
- if ($other) {
- $addOther = Apache::loncommon::help_open_topic($other, shift,
- undef, undef, 600) .
+ if ($topic) {
+ $addOther = &Apache::loncommon::help_open_topic($topic,$text,
+ undef, undef, 600).
'
';
}
- return ''.
- $addOther .
- &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'),
- undef,undef,600)
- .' '.
- &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),
- undef,undef,600)
- .' '.
- &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),
- undef,undef,600)
- .'
';
+ $out = ''.
+ $addOther .
+ &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'),
+ undef,undef,600).
+ ' '.
+ &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),
+ undef,undef,600).
+ ' ';
+ unless ($not_author) {
+ $out .= ''.
+ &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),
+ undef,undef,600).
+ ' ';
+ }
+ $out .= '
';
+ return $out;
}
sub general_help {
@@ -1629,7 +1635,7 @@ sub multiple_select_form {
$size = scalar(keys(%$hash));
}
}
- $output.="\n";
+ $output.="\n".'';
my @order;
if (ref($order) eq 'ARRAY') {
@order = @{$order};
@@ -1686,17 +1692,17 @@ sub select_form {
sub display_filter {
if (!$env{'form.show'}) { $env{'form.show'}=10; }
if (!$env{'form.displayfilter'}) { $env{'form.displayfilter'}='currentfolder'; }
- return ''.&mt('Records [_1]',
+ return ''.&mt('Records [_1]',
&Apache::lonmeta::selectbox('show',$env{'form.show'},undef,
(&mt('all'),10,20,50,100,1000,10000))).
- ' '.
+ ' '.
&mt('Filter [_1]',
&select_form($env{'form.displayfilter'},
'displayfilter',
('currentfolder' => 'Current folder/page',
'containing' => 'Containing phrase',
'none' => 'None'))).
- ' ';
+ ' ';
}
sub gradeleveldescription {
@@ -1740,7 +1746,7 @@ sub select_level_form {
=pod
-=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc)
+=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$autosubmit)
Returns a string containing a form to
allow a user to select the domain to preform an operation in.
@@ -1749,16 +1755,22 @@ See loncreateuser.pm for an example invo
If the $includeempty flag is set, it also includes an empty choice ("no domain
selected");
-If the $showdomdesc flag is set, the domain name is followed by the domain description.
+If the $showdomdesc flag is set, the domain name is followed by the domain description.
+
+If the $autosubmit flag is set, the form containing the domain selector will be auto-submitted by an onchange action.
=cut
#-------------------------------------------
sub select_dom_form {
- my ($defdom,$name,$includeempty,$showdomdesc) = @_;
+ my ($defdom,$name,$includeempty,$showdomdesc,$autosubmit) = @_;
+ my $onchange;
+ if ($autosubmit) {
+ $onchange = ' onchange="this.form.submit()"';
+ }
my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains());
if ($includeempty) { @domains=('',@domains); }
- my $selectdomain = "\n";
+ my $selectdomain = "\n";
foreach my $dom (@domains) {
$selectdomain.="'.$dom;
@@ -2717,6 +2729,43 @@ sub flush_email_cache {
&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
=pod
@@ -2761,7 +2810,8 @@ sub aboutmewrapper {
return;
}
return ''.$link.' ';
+ ($target?' target="$target"':'').' title="'.&mt("View this user's personal
+homepage").'">'.$link.'';
}
# ------------------------------------------------------------ Syllabus Wrapper
@@ -3030,6 +3080,29 @@ sub languages {
return $preferred_possibilities[0];
}
+sub user_lang {
+ my ($touname,$toudom,$fromcid) = @_;
+ my @userlangs;
+ if (($fromcid ne '') && ($env{'course.'.$fromcid.'.languages'} ne '')) {
+ @userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/,
+ $env{'course.'.$fromcid.'.languages'}));
+ } else {
+ my %langhash = &getlangs($touname,$toudom);
+ if ($langhash{'languages'} ne '') {
+ @userlangs = split(/\s*(\,|\;|\:)\s*/,$langhash{'languages'});
+ } else {
+ my %domdefs = &Apache::lonnet::get_domain_defaults($toudom);
+ if ($domdefs{'lang_def'} ne '') {
+ @userlangs = ($domdefs{'lang_def'});
+ }
+ }
+ }
+ my @languages=&Apache::lonlocal::get_genlanguages(@userlangs);
+ my $user_lh = Apache::localize->get_handle(@languages);
+ return $user_lh;
+}
+
+
###############################################################
## Student Answer Attempts ##
###############################################################
@@ -3168,7 +3241,7 @@ sub relative_to_absolute {
}
$thisdir=~s-/[^/]*$--;
foreach my $link (@rlinks) {
- unless (($link=~/^http:\/\//i) ||
+ unless (($link=~/^https?\:\/\//i) ||
($link=~/^\//) ||
($link=~/^javascript:/i) ||
($link=~/^mailto:/i) ||
@@ -4443,12 +4516,22 @@ table.thinborder tr td {
}
form, .inline { display: inline; }
-.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_center { text-align: center; }
+.LC_left { text-align:left; }
+.LC_right {text-align:right;}
+.LC_middle {vertical-align:middle;}
+.LC_top {vertical-align:top;}
+.LC_bottom {vertical-align:bottom;}
+
+/* just for tests */
+.LC_300Box { width:300px; }
+.LC_200Box {width:200px; }
+.LC_500Box {width:500px; }
+.LC_600Box {width:600px; }
+.LC_800Box {width:800px;}
+/* end */
+
.LC_filename {font-family: $mono; white-space:pre;}
.LC_error {
color: red;
@@ -4482,7 +4565,7 @@ form, .inline { display: inline; }
}
.LC_internal_info {
- color: #999;
+ color: #999999;
}
table.LC_pastsubmission {
@@ -4667,6 +4750,10 @@ td.LC_menubuttons_text {
font-size: small;
}
+.LC_mail_functions {
+ font-weight: bold;
+}
+
table.LC_aboutme_port {
border: 0px;
border-collapse: collapse;
@@ -4700,7 +4787,7 @@ table.LC_prior_tries tr th {
font-size:90%;
}
table.LC_data_table tr.LC_info_row > td {
- background-color: #CCC;
+ background-color: #CCCCCC;
font-weight: bold;
text-align: left;
}
@@ -4748,7 +4835,7 @@ table.LC_nested_outer tr td.LC_subheader
text-align: right;
}
table.LC_nested tr.LC_info_row td {
- background-color: #CCC;
+ background-color: #CCCCCC;
font-weight: bold;
font-size: small;
text-align: center;
@@ -4758,7 +4845,7 @@ table.LC_nested_outer tr th.LC_left_item
text-align: left;
}
table.LC_nested td {
- background-color: #FFF;
+ background-color: #FFFFFF;
font-size: small;
}
table.LC_nested_outer tr th.LC_right_item,
@@ -4769,7 +4856,7 @@ table.LC_nested tr td.LC_right_item {
}
table.LC_nested tr.LC_odd_row td {
- background-color: #EEE;
+ background-color: #EEEEEE;
}
table.LC_createuser {
@@ -4780,7 +4867,7 @@ table.LC_createuser tr.LC_section_row td
}
table.LC_createuser tr.LC_info_row td {
- background-color: #CCC;
+ background-color: #CCCCCC;
font-weight: bold;
text-align: center;
}
@@ -4970,6 +5057,7 @@ table.LC_pick_box td.LC_pick_box_title {
background: $tabbg;
font-weight: bold;
text-align: right;
+ vertical-align: top;
width: 184px;
padding: 8px;
}
@@ -5211,13 +5299,6 @@ table.LC_docs_documents td.LC_docs_docum
padding: 4px;
}
-.LC_docs_course_commands div {
- float: left;
- border: 4px solid #AAAAAA;
- padding: 4px;
- background: #DDDDCC;
-}
-
.LC_docs_entry_move {
border: 0px;
border-collapse: collapse;
@@ -5444,6 +5525,10 @@ table#LC_mainmenu td.LC_mainmenu_col_fie
font-weight: bold;
}
+div.LC_createcourse {
+ margin: 10px 10px 10px 10px;
+}
+
/* ---- Remove when done ----
# The following styles is part of the redesign of LON-CAPA and are
# subject to change during this project.
@@ -5452,41 +5537,44 @@ table#LC_mainmenu td.LC_mainmenu_col_fie
# --------------------------*/
a:hover,
-ol.smallMenu a:hover,
-ol#MenuBreadcrumbs a:hover,
-ul#TabMainMenuContent a:hover,
-.FormSectionClearButton input:hover{
+ol.LC_smallMenu a:hover,
+ol#LC_MenuBreadcrumbs a:hover,
+ol#LC_PathBreadcrumbs a:hover,
+ul#LC_TabMainMenuContent a:hover,
+.LC_FormSectionClearButton input:hover
+ul.LC_TabContent li:hover a{
color:#BF2317;
text-decoration:none;
}
h1 {
- padding:5px 10px 5px 0px;
+ padding:5px 10px 5px 20px;
line-height:130%;
}
h2,h3,h4,h5,h6
{
-margin:5px 0px 5px 0px;
-line-height:130%;
+ margin:5px 0px 5px 0px;
+ padding:0px;
+ line-height:130%;
}
-.hcell{
+.LC_hcell{
padding:3px 15px 3px 15px;
margin:0px;
background-color:$tabbg;
border-bottom:solid 1px $lg_border_color;
}
-.noBorder {
+.LC_noBorder {
border:0px;
}
-/*
-.bgLightGrey { background:URL(images/TabMenuBG.png) repeat-x left top; }
-.bgLightGreyYellow {background-color:#EFECE0;}
-*/
+
+.LC_bgLightGrey{
+ background:URL(/adm/lonIcons/lightGreyBG.png) repeat-x left bottom;
+}
/* Main Header with discription of Person, Course, etc. */
-.HeadRight {
+.LC_HeadRight {
text-align: right;
float: right;
margin: 0px;
@@ -5496,12 +5584,12 @@ line-height:130%;
overflow:hidden;
}
-p {
+p, .LC_ContentBox {
padding: 10px;
}
-.FormSectionClearButton input {
- background-color:transparent;
+.LC_FormSectionClearButton input {
+ background-color:transparent;
border:0px;
cursor:pointer;
text-decoration:underline;
@@ -5512,55 +5600,101 @@ dl,ul,div,fieldset {
margin: 10px 10px 10px 0px;
overflow:hidden;
}
-ol.smallMenu {
+ol.LC_smallMenu, ol#LC_PathBreadcrumbs {
margin: 0px;
}
-ol.smallMenu li {
+ol.LC_smallMenu li {
display: inline;
padding: 5px 5px 0px 10px;
vertical-align: top;
}
-ol.smallMenu li img {
+ol.LC_smallMenu li img {
vertical-align: bottom;
}
-ol.smallMenu a {
+ol.LC_smallMenu a {
font-size: 90%;
color: RGB(80, 80, 80);
text-decoration: none;
}
-
-ol#TabMainMenuContent {
-
- margin: 0px 0px 10px 0px;
+ol#LC_TabMainMenueContent, ul.LC_TabContent ,
+ul.LC_TabContentBigger {
+ display:block;
+ list-style:none;
+ margin: 0px;
padding: 0px;
}
-ol#TabMainMenuContent li {
+ol#LC_TabMainMenuContent li, ul.LC_TabContent li,
+ul.LC_TabContentBigger li{
display: inline;
+ border-right: solid 1px $lg_border_color;
+ float:left;
+ line-height:140%;
+ white-space:nowrap;
+}
+ol#LC_TabMainMenuContent li{
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%;
+ padding: 5px 10px 5px 10px;
+ margin-right:5px;
+ margin-bottom:3px;
font-weight: bold;
- overflow:hidden;
-/* background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left top;*/
+ background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
}
-ol#TabMainMenuContent li a{
+ol#LC_TabMainMenuContent li a{
color: RGB(47, 47, 47);
text-decoration: none;
}
+ul.LC_TabContent {
+ min-height:1.6em;
+}
+ul.LC_TabContent li{
+ vertical-align:middle;
+ padding:0px 10px 0px 10px;
+ background-color:$tabbg;
+ border-bottom:solid 1px $lg_border_color;
+}
+ul.LC_TabContent li a, ul.LC_TabContent li{
+ color:rgb(47,47,47);
+ text-decoration:none;
+ font-size:95%;
+ font-weight:bold;
+}
+ul.LC_TabContent li:hover, ul.LC_TabContent li.active{
+ background-color:#FFFFFF;
+ border-bottom:solid 1px #FFFFFF;
+}
+ul.LC_TabContentBigger li{
+ vertical-align:bottom;
+ border-top:solid 1px $lg_border_color;
+ border-left:solid 1px $lg_border_color;
+ padding:5px 10px 5px 10px;
+ margin-left:2px;
+ background:url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
+}
+ul.LC_TabContentBigger li:hover, ul.LC_TabContentBigger li.active{
+ background:url(/adm/lonIcons/lightGreyBG.png) repeat-x right bottom;
+}
+ul.LC_TabContentBigger li, ul.LC_TabContentBigger li a{
+ font-size:110%;
+ font-weight:bold;
+}
+#LC_CourseDocuments, #LC_SupplementalCourseDocuments
+{
+ margin:0px;
+}
-ol#TabMainMenuContent div.columnSection {
- margin-bottom: 0px;
+.LC_hideThis
+{
+ display:none;
+ visibility:hidden;
}
-ol#MenuBreadcrumbs, ol#PathBreadcrumbs {
+ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcrumbs {
border-top: solid 1px RGB(255, 255, 255);
height: 20px;
line-height: 20px;
@@ -5568,63 +5702,61 @@ ol#MenuBreadcrumbs, ol#PathBreadcrumbs {
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;*/
+ background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
}
-ol#MenuBreadcrumbs li, ol#PathBreadcrumbs li {
-/* background: url(images/pfeil_white.png) no-repeat left center;*/
+ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li {
+/*
+ background: url(/adm/lonIcons/arrow_white.png) no-repeat left center;
+*/
display: inline;
padding: 0px 0px 0px 10px;
vertical-align: bottom;
overflow:hidden;
}
-ol#MenuBreadcrumbs li a {
+ol#LC_MenuBreadcrumbs li a {
text-decoration: none;
font-size:90%;
}
-ol#PathBreadcrumbs li a{
+ol#LC_PathBreadcrumbs li a{
text-decoration:none;
font-size:100%;
font-weight:bold;
}
-
-.ContentBoxSpecial
+.LC_ContentBoxSpecial
{
border: solid 1px $lg_border_color;
}
-.ContentBox {
- padding:10px;
+.LC_ContentBoxSpecialContactInfo
+{
+ border: solid 1px $lg_border_color;
+ max-width:25%;
+ min-width:25%;
}
-.PopUp
+.LC_AboutMe_Image
{
- 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;
+ float:left;
+ margin-right:10px;
}
-
-dl.ListStyleClean dt {
+.LC_Clear_AboutMe_Image
+{
+ clear:left;
+}
+dl.LC_ListStyleClean dt {
padding-right: 5px;
display: table-header-group;
}
-dl.ListStyleClean dd {
+dl.LC_ListStyleClean dd {
display: table-row;
}
-.ListStyleClean,
-.ListStyleSimple,
-.ListStyleNormal,
-.ListStyleNormal_Border,
-.ListStyleSpecial
+.LC_ListStyleClean,
+.LC_ListStyleSimple,
+.LC_ListStyleNormal,
+.LC_ListStyleNormal_Border,
+.LC_ListStyleSpecial
{
/*display:block; */
list-style-position: inside;
@@ -5633,66 +5765,87 @@ dl.ListStyleClean dd {
padding: 0px;
}
-.ListStyleSimple li,
-.ListStyleSimple dd,
-.ListStyleNormal li,
-.ListStyleNormal dd,
-.ListStyleSpecial li,
-.ListStyleSpecial dd
+.LC_ListStyleSimple li,
+.LC_ListStyleSimple dd,
+.LC_ListStyleNormal li,
+.LC_ListStyleNormal dd,
+.LC_ListStyleSpecial li,
+.LC_ListStyleSpecial dd
{
margin: 0px;
padding: 5px 5px 5px 10px;
clear: both;
}
-.ListStyleClean li,
-.ListStyleClean dd {
+.LC_ListStyleClean li,
+.LC_ListStyleClean dd {
padding-top: 0px;
padding-bottom: 0px;
}
-.ListStyleSimple dd,
-.ListStyleSimple li{
+.LC_ListStyleSimple dd,
+.LC_ListStyleSimple li{
border-bottom: solid 1px $lg_border_color;
}
-.ListStyleSpecial li,
-.ListStyleSpecial dd {
+.LC_ListStyleSpecial li,
+.LC_ListStyleSpecial dd {
list-style-type: none;
background-color: RGB(220, 220, 220);
margin-bottom: 4px;
}
-table.SimpleTable {
+table.LC_SimpleTable {
margin:5px;
border:solid 1px $lg_border_color;
}
-table.SimpleTable tr {
+table.LC_SimpleTable tr {
padding:0px;
border:solid 1px $lg_border_color;
}
-table.SimpleTable thead{
+table.LC_SimpleTable thead{
background:rgb(220,220,220);
}
-div.columnSection {
+div.LC_columnSection {
display: block;
clear: both;
overflow: hidden;
margin:0px;
}
-div.columnSection>* {
+div.LC_columnSection>* {
float: left;
margin: 10px 20px 10px 0px;
- overflow:hidden;
+ overflow:hidden;
}
-div.columnSection > .ContentBox,
-div.columnSection > .ContentBoxSpecial
+div.LC_columnSection > .LC_ContentBox,
+div.LC_columnSection > .LC_ContentBoxSpecial
{
width: 400px;
-
+}
+
+.ContentBoxSpecialTemplate
+{
+ border: solid 1px $lg_border_color;
+}
+.ContentBoxTemplate {
+ padding:10px;
+}
+
+div.LC_columnSection > .ContentBoxTemplate,
+div.LC_columnSection > .ContentBoxSpecialTemplate
+ {
+ width: 600px;
+
+}
+
+.clear{
+ clear: both;
+ line-height: 0px;
+ font-size: 0px;
+ height: 0px;
}
.LC_loginpage_container {
@@ -5713,7 +5866,7 @@ div.columnSection > .ContentBoxSpecial
background-color:$loginbg;
}
-.LC_loginpage_loginContainer h1{
+.LC_loginpage_loginContainer h2{
margin-top:0;
display:block;
background:$bgcol;
@@ -5741,19 +5894,33 @@ div.columnSection > .ContentBoxSpecial
border-bottom: 1px solid #CCCCCC;
}
-.LC_loginpage_fieldset{
- border: 1px solid #CCCCCC;
- margin: 0 auto;
+table em{
+ font-weight:bold;
+ font-style:normal;
}
-.LC_loginpage_legend{
- padding: 2px;
- margin: 0px;
- font-size:14px;
- font-weight:bold;
+table#LC_tableOfContent{
+ border-collapse: collapse;
+ border-spacing:0;
+ padding:3px;
+ border:0;
+ background-color:#ffffff;
+ font-size:90%;
+}
+table#LC_tableOfContent a {
+ text-decoration: none;
}
+table#LC_tableOfContent tr.LC_trOdd{
+ background-color:#eeeeee;
+}
+table#LC_tableOfContent img{
+ border: none;
+ height: 1.3em;
+ vertical-align: text-bottom;
+ margin-right: 0.3em;
+}
END
}
@@ -6023,13 +6190,14 @@ sub start_page {
$result = &html_encode($result);
}
- if (exists $args->{'bread_crumbs'}) {
- &Apache::lonhtmlcommon::clear_breadcrumbs();
- my $temp = $args->{'bread_crumbs'};
- foreach my $crumb (@$temp){
- &Apache::lonhtmlcommon::add_breadcrumb($crumb);
- }
- $result .= &Apache::lonhtmlcommon::breadcrumbs();
+ if (exists($args->{'bread_crumbs'})) {
+ &Apache::lonhtmlcommon::clear_breadcrumbs();
+ if (ref($args->{'bread_crumbs'}) eq 'ARRAY') {
+ foreach my $crumb (@{$args->{'bread_crumbs'}}){
+ &Apache::lonhtmlcommon::add_breadcrumb($crumb);
+ }
+ }
+ $result .= &Apache::lonhtmlcommon::breadcrumbs();
}
return $result;
@@ -7879,7 +8047,7 @@ sub upfile_select_html {
# xml => &mt('HTML/XML'),
);
my $Str = ' '.
- ' Type: ';
+ ' '.&mt('Type').': ';
foreach my $type (sort(keys(%Types))) {
$Str .= ''.$Types{$type}." \n";
}
@@ -7967,7 +8135,7 @@ sub csv_print_select_table {
&end_data_table_header_row()."\n");
foreach my $array_ref (@$d) {
my ($value,$display,$defaultcol)=@{ $array_ref };
- $r->print(&start_data_table_row().''.$display.' ');
+ $r->print(&start_data_table_row().''.$display.' ');
$r->print('');
@@ -9303,7 +9471,9 @@ sub construct_course {
'policy.email',
'comment.email',
'pch.users.denied',
- 'plc.users.denied'],
+ 'plc.users.denied',
+ 'hidefromcat',
+ 'categories'],
$$crsudom,$$crsunum);
}
@@ -9761,6 +9931,11 @@ 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";
if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id",
@@ -9799,7 +9974,7 @@ sub _add_to_env {
# --- Get the symbolic name of a problem and the url
sub get_symb {
my ($request,$silent) = @_;
- (my $url=$env{'form.url'}) =~ s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--;
+ (my $url=$env{'form.url'}) =~ s-^https?\://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--;
my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url)));
if ($symb eq '') {
if (!$silent) {
@@ -9826,11 +10001,13 @@ sub get_annotation {
}
sub clean_symb {
- my ($symb) = @_;
+ my ($symb,$delete_enc) = @_;
&Apache::lonenc::check_decrypt(\$symb);
my $enc = $env{'request.enc'};
- delete($env{'request.enc'});
+ if ($delete_enc) {
+ delete($env{'request.enc'});
+ }
return ($symb,$enc);
}
500 Internal Server Error
Internal Server Error
The server encountered an internal error or
misconfiguration and was unable to complete
your request.
Please contact the server administrator at
root@localhost to inform them of the time this error occurred,
and the actions you performed just before this error.
More information about this error may be available
in the server error log.