--- loncom/interface/loncommon.pm 2008/12/17 16:07:45 1.722 +++ loncom/interface/loncommon.pm 2009/01/08 19:46:43 1.731 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.722 2008/12/17 16:07:45 harmsja Exp $ +# $Id: loncommon.pm,v 1.731 2009/01/08 19:46:43 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2717,6 +2717,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 @@ -3168,7 +3205,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) || @@ -5501,7 +5538,7 @@ h2,h3,h4,h5,h6 } .LC_bgLightGrey{ - background:URL(lonIcons/lightGreyBG.png) repeat-x left top; + background:URL(/adm/lonIcons/lightGreyBG.png) repeat-x left top; } .LC_bgLightGreyYellow { background-color:#EFECE0; @@ -5571,7 +5608,7 @@ ol#LC_TabMainMenuContent li { line-height: 140%; font-weight: bold; white-space:nowrap; - background: url(lonIcons/lightGreyBG.png) repeat-x left top; + background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top; } ol#LC_TabMainMenuContent li a{ @@ -5592,7 +5629,7 @@ ul.LC_TabContent li{ border-right:solid 1px $lg_border_color; padding:5px 10px 5px 10px; margin-right:2px; - background: url(lonIcons/lightGreyBG.png) repeat-x left top; + background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top; } ul.LC_TabContent li a, ul.LC_TabContent li{ color:rgb(47,47,47); @@ -5615,11 +5652,11 @@ ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcr margin: 0px 0px 30px 0px; padding-left: 10px; list-style-position: inside; - background: url(lonIcons/lightGreyBG.png) repeat-x left top; + background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top; } ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li { - background: url(lonIcons/arrow_white.png) no-repeat left center; + background: url(/adm/lonIcons/arrow_white.png) no-repeat left center; display: inline; padding: 0px 0px 0px 10px; vertical-align: bottom; @@ -7943,7 +7980,7 @@ sub upfile_select_html { # xml => &mt('HTML/XML'), ); my $Str = ''. - '
Type: '; foreach my $type (sort(keys(%Types))) { $Str .= '\n"; } @@ -8031,7 +8068,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('