Diff for /loncom/interface/loncommon.pm between versions 1.715 and 1.736

version 1.715, 2008/12/14 00:33:35 version 1.736, 2009/01/28 13:49:50
Line 943  ENDTEMPLATE Line 943  ENDTEMPLATE
 # This is a quicky function for Latex cheatsheet editing, since it   # This is a quicky function for Latex cheatsheet editing, since it 
 # appears in at least four places  # appears in at least four places
 sub helpLatexCheatsheet {  sub helpLatexCheatsheet {
     my $other = shift;      my ($topic,$text,$not_author) = @_;
       my $out;
     my $addOther = '';      my $addOther = '';
     if ($other) {      if ($topic) {
  $addOther = Apache::loncommon::help_open_topic($other, shift,   $addOther = &Apache::loncommon::help_open_topic($topic,$text,
        undef, undef, 600) .         undef, undef, 600).
    '</td><td>';     '</td><td>';
     }      }
     return '<table><tr><td>'.      $out = '<table><tr><td>'.
  $addOther .     $addOther .
  &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'),     &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'),
     undef,undef,600)         undef,undef,600).
  .'</td><td>'.     '</td><td>'.
  &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),     &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),
     undef,undef,600)         undef,undef,600).
  .'</td><td>'.     '</td>';
  &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),      unless ($not_author) {
                                     undef,undef,600)          $out .= '<td>'.
  .'</td></tr></table>';          &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),
                                               undef,undef,600).
           '</td>';
       }
       $out .= '</tr></table>';
       return $out;
 }  }
   
 sub general_help {  sub general_help {
Line 1629  sub multiple_select_form { Line 1635  sub multiple_select_form {
             $size = scalar(keys(%$hash));              $size = scalar(keys(%$hash));
         }          }
     }      }
     $output.="\n<select name='$name' size='$size' multiple='1'>";      $output.="\n".'<select name="'.$name.'" size="'.$size.'" multiple="multiple">';
     my @order;      my @order;
     if (ref($order) eq 'ARRAY')  {      if (ref($order) eq 'ARRAY')  {
         @order = @{$order};          @order = @{$order};
Line 2717  sub flush_email_cache { Line 2723  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 3168  sub relative_to_absolute { Line 3211  sub relative_to_absolute {
     }      }
     $thisdir=~s-/[^/]*$--;      $thisdir=~s-/[^/]*$--;
     foreach my $link (@rlinks) {      foreach my $link (@rlinks) {
  unless (($link=~/^http:\/\//i) ||   unless (($link=~/^https?\:\/\//i) ||
  ($link=~/^\//) ||   ($link=~/^\//) ||
  ($link=~/^javascript:/i) ||   ($link=~/^javascript:/i) ||
  ($link=~/^mailto:/i) ||   ($link=~/^mailto:/i) ||
Line 4443  table.thinborder tr td { Line 4486  table.thinborder tr td {
 }  }
   
 form, .inline { display: inline; }  form, .inline { display: inline; }
 .center { text-align: center; }  
 .left { text-align:left; }  .LC_center { text-align: center; }
 .right {text-align:right;}  .LC_left { text-align:left; }
 .middle {vertical-align:middle;}  .LC_right {text-align:right;}
 .top {vertical-align:top;}  .LC_middle {vertical-align:middle;}
 .bottom {vertical-align:bottom;}  .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; }
   /* end */
   
 .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 4482  form, .inline { display: inline; } Line 4534  form, .inline { display: inline; }
 }  }
   
 .LC_internal_info {  .LC_internal_info {
   color: #999;    color: #999999;
 }  }
   
 table.LC_pastsubmission {  table.LC_pastsubmission {
Line 4704  table.LC_prior_tries tr th { Line 4756  table.LC_prior_tries tr th {
   font-size:90%;    font-size:90%;
 }  }
 table.LC_data_table tr.LC_info_row > td {  table.LC_data_table tr.LC_info_row > td {
   background-color: #CCC;    background-color: #CCCCCC;
   font-weight: bold;    font-weight: bold;
   text-align: left;    text-align: left;
 }  }
Line 4752  table.LC_nested_outer tr td.LC_subheader Line 4804  table.LC_nested_outer tr td.LC_subheader
   text-align: right;    text-align: right;
 }  }
 table.LC_nested tr.LC_info_row td {  table.LC_nested tr.LC_info_row td {
   background-color: #CCC;    background-color: #CCCCCC;
   font-weight: bold;    font-weight: bold;
   font-size: small;    font-size: small;
   text-align: center;    text-align: center;
Line 4762  table.LC_nested_outer tr th.LC_left_item Line 4814  table.LC_nested_outer tr th.LC_left_item
   text-align: left;    text-align: left;
 }  }
 table.LC_nested td {  table.LC_nested td {
   background-color: #FFF;    background-color: #FFFFFF;
   font-size: small;    font-size: small;
 }  }
 table.LC_nested_outer tr th.LC_right_item,  table.LC_nested_outer tr th.LC_right_item,
Line 4773  table.LC_nested tr td.LC_right_item { Line 4825  table.LC_nested tr td.LC_right_item {
 }  }
   
 table.LC_nested tr.LC_odd_row td {  table.LC_nested tr.LC_odd_row td {
   background-color: #EEE;    background-color: #EEEEEE;
 }  }
   
 table.LC_createuser {  table.LC_createuser {
Line 4784  table.LC_createuser tr.LC_section_row td Line 4836  table.LC_createuser tr.LC_section_row td
 }  }
   
 table.LC_createuser tr.LC_info_row td  {  table.LC_createuser tr.LC_info_row td  {
   background-color: #CCC;    background-color: #CCCCCC;
   font-weight: bold;    font-weight: bold;
   text-align: center;    text-align: center;
 }  }
Line 5215  table.LC_docs_documents td.LC_docs_docum Line 5267  table.LC_docs_documents td.LC_docs_docum
   padding: 4px;    padding: 4px;
 }  }
   
 .LC_docs_course_commands div {  
   float: left;  
   border: 4px solid #AAAAAA;  
   padding: 4px;  
   background: #DDDDCC;  
 }  
   
 .LC_docs_entry_move {  .LC_docs_entry_move {
   border: 0px;    border: 0px;
   border-collapse: collapse;    border-collapse: collapse;
Line 5448  table#LC_mainmenu td.LC_mainmenu_col_fie Line 5493  table#LC_mainmenu td.LC_mainmenu_col_fie
   font-weight: bold;    font-weight: bold;
 }  }
   
   div.LC_createcourse {
       margin: 10px 10px 10px 10px;
   }
   
 /* ---- Remove when done ----  /* ---- Remove when done ----
 # The following styles is part of the redesign of LON-CAPA and are  # The following styles is part of the redesign of LON-CAPA and are
 # subject to change during this project.  # subject to change during this project.
Line 5456  table#LC_mainmenu td.LC_mainmenu_col_fie Line 5505  table#LC_mainmenu td.LC_mainmenu_col_fie
 # --------------------------*/  # --------------------------*/
   
 a:hover,  a:hover,
 ol.smallMenu a:hover,  ol.LC_smallMenu a:hover,
 ol#MenuBreadcrumbs a:hover,  ol#LC_MenuBreadcrumbs a:hover,
 ul#TabMainMenuContent a:hover,  ol#LC_PathBreadcrumbs a:hover,
 .FormSectionClearButton input:hover{  ul#LC_TabMainMenuContent a:hover,
   .LC_FormSectionClearButton input:hover
   ul.LC_TabContent   li:hover a{
  color:#BF2317;   color:#BF2317;
         text-decoration:none;          text-decoration:none;
 }  }
   
 h1 {   h1 { 
  padding:5px 10px 5px 0px;   padding:5px 10px 5px 20px;
  line-height:130%;   line-height:130%;
 }  }
   
 h2,h3,h4,h5,h6  h2,h3,h4,h5,h6
 {  {
 margin:5px 0px 5px 0px;   margin:5px 0px 5px 0px;
 line-height:130%;   padding:0px;
    line-height:130%;
 }  }
 .hcell{  .LC_hcell{
         padding:3px 15px 3px 15px;          padding:3px 15px 3px 15px;
         margin:0px;          margin:0px;
  background-color:$tabbg;   background-color:$tabbg;
  border-bottom:solid 1px $lg_border_color;          border-bottom:solid 1px $lg_border_color;       
 }  }
 .noBorder {  .LC_noBorder {
         border:0px;          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 top; 
   }
   .LC_bgLightGreyYellow {
    background-color:#EFECE0;
   }
   
 /* Main Header with discription of Person, Course, etc. */  /* Main Header with discription of Person, Course, etc. */
 .HeadRight {  .LC_HeadRight {
  text-align: right;   text-align: right;
  float: right;   float: right;
  margin: 0px;   margin: 0px;
Line 5500  line-height:130%; Line 5554  line-height:130%;
         overflow:hidden;          overflow:hidden;
 }  }
   
 p {  p, .LC_ContentBox {
  padding: 10px;   padding: 10px;
   
 }  }
 .FormSectionClearButton input {  .LC_FormSectionClearButton input {
         background-color:transparent;         
         border:0px;          border:0px;
         cursor:pointer;          cursor:pointer;
         text-decoration:underline;          text-decoration:underline;
Line 5516  dl,ul,div,fieldset { Line 5570  dl,ul,div,fieldset {
  margin: 10px 10px 10px 0px;   margin: 10px 10px 10px 0px;
  overflow:hidden;   overflow:hidden;
 }  }
 ol.smallMenu {  ol.LC_smallMenu, ol#LC_PathBreadcrumbs {
  margin: 0px;   margin: 0px;
 }  }
   
 ol.smallMenu li {  ol.LC_smallMenu li {
  display: inline;   display: inline;
  padding: 5px 5px 0px 10px;   padding: 5px 5px 0px 10px;
  vertical-align: top;   vertical-align: top;
 }  }
   
 ol.smallMenu li img {  ol.LC_smallMenu li img {
  vertical-align: bottom;   vertical-align: bottom;
 }  }
   
 ol.smallMenu a {  ol.LC_smallMenu a {
  font-size: 90%;   font-size: 90%;
  color: RGB(80, 80, 80);   color: RGB(80, 80, 80);
  text-decoration: none;   text-decoration: none;
 }  }
   
 ol#TabMainMenuContent {  ol#LC_TabMainMenuContent {
    display:block;
    list-style:none;
  margin: 0px 0px 10px 0px;   margin: 0px 0px 10px 0px;
  padding: 0px;   padding: 0px;
 }  }
   
 ol#TabMainMenuContent li {  ol#LC_TabMainMenuContent li {
  display: inline;   display: inline;
  vertical-align: bottom;   vertical-align: bottom;
  border-bottom: solid 1px RGB(175, 175, 175);   border-bottom: solid 1px RGB(175, 175, 175);
  border-right: solid 1px RGB(175, 175, 175);   border-right: solid 1px RGB(175, 175, 175);
  padding: 5px 15px 5px 15px;   padding: 5px 10px 5px 10px;
  margin-right:4px;   margin-right:3px;
  line-height: 140%;   line-height: 140%;
  font-weight: bold;   font-weight: bold;
  overflow:hidden;   white-space:nowrap;
 /* 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);   color: RGB(47, 47, 47);
  text-decoration: none;   text-decoration: none;
 }  }
   ul.LC_TabContent {
 ol#TabMainMenuContent div.columnSection {   margin:0px;
  margin-bottom: 0px;   padding:0px;
    display:block;
    list-style:none;
    min-height:1.5em;
   }
   ul.LC_TabContent li{
    display:inline;
    vertical-align:top;
    border-bottom:solid 1px $lg_border_color;
    border-right:solid 1px $lg_border_color;
    padding:5px 10px 5px 10px;
    margin-right:2px;
    background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
   }
   ul.LC_TabContent li a, ul.LC_TabContent li{
    color:rgb(47,47,47);
    text-decoration:none;
    font-size:95%;
    font-weight:bold;
    white-space:nowrap;
   }
   .LC_hideThis
   {
    display:none;
    visibility:hidden;
 }  }
   
 ol#MenuBreadcrumbs, ol#PathBreadcrumbs {  ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcrumbs {
  border-top: solid 1px RGB(255, 255, 255);   border-top: solid 1px RGB(255, 255, 255);
  height: 20px;   height: 20px;
  line-height: 20px;   line-height: 20px;
Line 5572  ol#MenuBreadcrumbs, ol#PathBreadcrumbs { Line 5651  ol#MenuBreadcrumbs, ol#PathBreadcrumbs {
  margin: 0px 0px 30px 0px;   margin: 0px 0px 30px 0px;
  padding-left: 10px;   padding-left: 10px;
  list-style-position: inside;   list-style-position: inside;
 /* background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left   background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
  top;*/  
 }  }
   
 ol#MenuBreadcrumbs li, ol#PathBreadcrumbs li {  ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li {
 /* background: url(images/pfeil_white.png) no-repeat left center;*/   background: url(/adm/lonIcons/arrow_white.png) no-repeat left center;
  display: inline;   display: inline;
  padding: 0px 0px 0px 10px;   padding: 0px 0px 0px 10px;
  vertical-align: bottom;   vertical-align: bottom;
  overflow:hidden;   overflow:hidden;
 }  }
   
 ol#MenuBreadcrumbs li a {  ol#LC_MenuBreadcrumbs li a {
  text-decoration: none;   text-decoration: none;
  font-size:90%;   font-size:90%;
 }  }
 ol#PathBreadcrumbs li a{  ol#LC_PathBreadcrumbs li a{
  text-decoration:none;   text-decoration:none;
  font-size:100%;   font-size:100%;
  font-weight:bold;   font-weight:bold;
 }  }
   .LC_ContentBoxSpecial
 .ContentBoxSpecial  
 {  {
  border: solid 1px $lg_border_color;   border: solid 1px $lg_border_color;
 }  }
 .ContentBox {  .LC_PopUp
  padding:10px;  
 }  
 .PopUp  
 {  {
  padding:10px;   padding:10px;
  border-left:solid 1px $lg_border_color;   border-left:solid 1px $lg_border_color;
Line 5615  ol#PathBreadcrumbs li a{ Line 5689  ol#PathBreadcrumbs li a{
  z-index:5;   z-index:5;
 }  }
   
 dl.ListStyleClean dt {  dl.LC_ListStyleClean dt {
  padding-right: 5px;   padding-right: 5px;
  display: table-header-group;   display: table-header-group;
 }  }
   
 dl.ListStyleClean dd {  dl.LC_ListStyleClean dd {
  display: table-row;   display: table-row;
 }  }
   
 .ListStyleClean,  .LC_ListStyleClean,
 .ListStyleSimple,  .LC_ListStyleSimple,
 .ListStyleNormal,  .LC_ListStyleNormal,
 .ListStyleNormal_Border,  .LC_ListStyleNormal_Border,
 .ListStyleSpecial  .LC_ListStyleSpecial
  {   {
  /*display:block; */   /*display:block; */
  list-style-position: inside;   list-style-position: inside;
Line 5637  dl.ListStyleClean dd { Line 5711  dl.ListStyleClean dd {
  padding: 0px;   padding: 0px;
 }  }
   
 .ListStyleSimple li,  .LC_ListStyleSimple li,
 .ListStyleSimple dd,  .LC_ListStyleSimple dd,
 .ListStyleNormal li,  .LC_ListStyleNormal li,
 .ListStyleNormal dd,  .LC_ListStyleNormal dd,
 .ListStyleSpecial li,  .LC_ListStyleSpecial li,
 .ListStyleSpecial dd  .LC_ListStyleSpecial dd
  {   {
  margin: 0px;   margin: 0px;
  padding: 5px 5px 5px 10px;   padding: 5px 5px 5px 10px;
  clear: both;   clear: both;
 }  }
   
 .ListStyleClean li,  .LC_ListStyleClean li,
 .ListStyleClean dd {  .LC_ListStyleClean dd {
  padding-top: 0px;   padding-top: 0px;
  padding-bottom: 0px;   padding-bottom: 0px;
 }  }
   
 .ListStyleSimple dd,  .LC_ListStyleSimple dd,
 .ListStyleSimple li{  .LC_ListStyleSimple li{
  border-bottom: solid 1px $lg_border_color;   border-bottom: solid 1px $lg_border_color;
 }  }
   
 .ListStyleSpecial li,  .LC_ListStyleSpecial li,
 .ListStyleSpecial dd {  .LC_ListStyleSpecial dd {
  list-style-type: none;   list-style-type: none;
  background-color: RGB(220, 220, 220);   background-color: RGB(220, 220, 220);
  margin-bottom: 4px;   margin-bottom: 4px;
 }  }
   
 table.SimpleTable {  table.LC_SimpleTable {
  margin:5px;   margin:5px;
  border:solid 1px $lg_border_color;   border:solid 1px $lg_border_color;
  }   }
   
 table.SimpleTable tr {  table.LC_SimpleTable tr {
  padding:0px;   padding:0px;
  border:solid 1px $lg_border_color;   border:solid 1px $lg_border_color;
 }  }
 table.SimpleTable thead{  table.LC_SimpleTable thead{
  background:rgb(220,220,220);   background:rgb(220,220,220);
 }  }
   
 div.columnSection {  div.LC_columnSection {
  display: block;   display: block;
  clear: both;   clear: both;
  overflow: hidden;   overflow: hidden;
  margin:0px;   margin:0px;
 }  }
   
 div.columnSection>* {  div.LC_columnSection>* {
  float: left;   float: left;
  margin: 10px 20px 10px 0px;   margin: 10px 20px 10px 0px;
  overflow:hidden;   overflow:hidden;
 }  }
 div.columnSection > .ContentBox,  div.LC_columnSection > .LC_ContentBox,
 div.columnSection > .ContentBoxSpecial  div.LC_columnSection > .LC_ContentBoxSpecial
  {   {
  width: 400px;   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 {  .LC_loginpage_container {
Line 5717  div.columnSection > .ContentBoxSpecial Line 5812  div.columnSection > .ContentBoxSpecial
  background-color:$loginbg;   background-color:$loginbg;
 }  }
   
 .LC_loginpage_loginContainer h1{  .LC_loginpage_loginContainer h2{
  margin-top:0;   margin-top:0;
  display:block;   display:block;
  background:$bgcol;   background:$bgcol;
Line 6027  sub start_page { Line 6122  sub start_page {
  $result = &html_encode($result);   $result = &html_encode($result);
     }      }
   
  if (exists $args->{'bread_crumbs'}) {      if (exists($args->{'bread_crumbs'})) {
  &Apache::lonhtmlcommon::clear_breadcrumbs();          &Apache::lonhtmlcommon::clear_breadcrumbs();
  my $temp = $args->{'bread_crumbs'};          if (ref($args->{'bread_crumbs'}) eq 'ARRAY') {         
  foreach my $crumb (@$temp){              foreach my $crumb (@{$args->{'bread_crumbs'}}){
  &Apache::lonhtmlcommon::add_breadcrumb($crumb);                  &Apache::lonhtmlcommon::add_breadcrumb($crumb);
  }              }
  $result .= &Apache::lonhtmlcommon::breadcrumbs();          }
           $result .= &Apache::lonhtmlcommon::breadcrumbs();
     }      }
   
     return $result;      return $result;
Line 7883  sub upfile_select_html { Line 7979  sub upfile_select_html {
 #                 xml   => &mt('HTML/XML'),  #                 xml   => &mt('HTML/XML'),
                  );                   );
     my $Str = '<input type="file" name="upfile" size="50" />'.      my $Str = '<input type="file" name="upfile" size="50" />'.
         '<br />Type: <select name="upfiletype">';          '<br />'.&mt('Type').': <select name="upfiletype">';
     foreach my $type (sort(keys(%Types))) {      foreach my $type (sort(keys(%Types))) {
         $Str .= '<option value="'.$type.'" >'.$Types{$type}."</option>\n";          $Str .= '<option value="'.$type.'" >'.$Types{$type}."</option>\n";
     }      }
Line 7971  sub csv_print_select_table { Line 8067  sub csv_print_select_table {
               &end_data_table_header_row()."\n");                &end_data_table_header_row()."\n");
     foreach my $array_ref (@$d) {      foreach my $array_ref (@$d) {
  my ($value,$display,$defaultcol)=@{ $array_ref };   my ($value,$display,$defaultcol)=@{ $array_ref };
  $r->print(&start_data_table_row().'<tr><td>'.$display.'</td>');   $r->print(&start_data_table_row().'<td>'.$display.'</td>');
   
  $r->print('<td><select name=f'.$i.   $r->print('<td><select name=f'.$i.
   ' onchange="javascript:flip(this.form,'.$i.');">');    ' onchange="javascript:flip(this.form,'.$i.');">');
Line 9307  sub construct_course { Line 9403  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 9765  sub init_user_environment { Line 9863  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 9803  sub _add_to_env { Line 9906  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-^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)));      my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url)));
     if ($symb eq '') {      if ($symb eq '') {
         if (!$silent) {          if (!$silent) {
Line 9830  sub get_annotation { Line 9933  sub get_annotation {
 }  }
   
 sub clean_symb {  sub clean_symb {
     my ($symb) = @_;      my ($symb,$delete_enc) = @_;
   
     &Apache::lonenc::check_decrypt(\$symb);      &Apache::lonenc::check_decrypt(\$symb);
     my $enc = $env{'request.enc'};      my $enc = $env{'request.enc'};
     delete($env{'request.enc'});      if ($delete_enc) {
           delete($env{'request.enc'});
       }
   
     return ($symb,$enc);      return ($symb,$enc);
 }  }

Removed from v.1.715  
changed lines
  Added in v.1.736


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>