--- loncom/interface/loncommon.pm 2008/12/21 15:32:30 1.692.2.8 +++ loncom/interface/loncommon.pm 2009/01/08 19:51:28 1.692.2.11 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.692.2.8 2008/12/21 15:32:30 raeburn Exp $ +# $Id: loncommon.pm,v 1.692.2.11 2009/01/08 19:51:28 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2717,6 +2717,42 @@ 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 @@ -4598,7 +4634,7 @@ table#LC_mainmenu td.LC_mainmenu_column .LC_menubuttons_link { text-decoration: none; } -#2008--9-5: new menu style sheet.Changed category +/*2008--9-5: new menu style sheet.Changed category*/ .LC_menubuttons_category { color: $font; background: $pgbg; @@ -9560,11 +9596,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); }