Diff for /loncom/homework/structuretags.pm between versions 1.497.2.5 and 1.501

version 1.497.2.5, 2011/12/26 13:45:10 version 1.501, 2012/03/25 14:35:58
Line 61  use Apache::lonlocal; Line 61  use Apache::lonlocal;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::londefdef;  use Apache::londefdef;
 use Apache::lonenc();  use Apache::lonenc();
   use Apache::loncommon();
 use Time::HiRes qw( gettimeofday tv_interval );  use Time::HiRes qw( gettimeofday tv_interval );
 use lib '/home/httpd/lib/perl/';  use lib '/home/httpd/lib/perl/';
 use LONCAPA;  use LONCAPA;
Line 110  sub select_hyphenation { Line 111  sub select_hyphenation {
     }      }
 }  }
 ##  ##
   # Selects hyphenation based on the current problem metadata.
   # This requires that
   # - There is a language metadata item set for the problem.
   # - The language has a latex/babel hyphenation.
   #
   # @note: Uses &Apache::lonxml::request to locate the Uri associated with
   #        this problem.
   # @return string (possibly empty).
   # @retval If not empty an appropriate \selectlanguage{} directive.
   #
   sub select_metadata_hyphenation {
       my $uri      = $Apache::lonxml::request->uri;
       my $language = &Apache::lonnet::metadata($uri, 'language'); 
       my $latex_language = &Apache::loncommon::latexhyphenation($language);
       if ($latex_language) {
    return '\selectlanguage{'.$latex_language."}\n";
       }
       return ''; # no latex hyphenation or no lang metadata.
   }
   
   
   ##
 #  Clears the set of languages required by the document being rendered.  #  Clears the set of languages required by the document being rendered.
 #  #
 sub clear_required_languages {  sub clear_required_languages {
Line 1037  sub reset_problem_globals { Line 1060  sub reset_problem_globals {
     undef(%Apache::lonhomework::history);      undef(%Apache::lonhomework::history);
     undef(%Apache::lonhomework::results);      undef(%Apache::lonhomework::results);
     undef($Apache::inputtags::part);      undef($Apache::inputtags::part);
       if ($type eq 'Task') {
           undef($Apache::inputtags::slot_name);
       }
 #don't undef this, lonhomework.pm takes care of this, we use this to   #don't undef this, lonhomework.pm takes care of this, we use this to 
 #detect if we try to do 2 problems in one file  #detect if we try to do 2 problems in one file
 #   undef($Apache::lonhomework::parsing_a_problem);  #   undef($Apache::lonhomework::parsing_a_problem);
Line 1153  sub start_problem { Line 1179  sub start_problem {
     my @interval=&Apache::lonnet::EXT("resource.0.interval");      my @interval=&Apache::lonnet::EXT("resource.0.interval");
     &Apache::lonnet::set_first_access($interval[1]);      &Apache::lonnet::set_first_access($interval[1]);
  }   }
    my $resource_due =  &Apache::lonhomework::due_date(0, $env{'request.symb'});
    my $time_left = $resource_due - time();
    if ($resource_due && ($time_left > 0)) {
       $result .= &Apache::lonhtmlcommon::set_due_date($resource_due);
    }
   
       
         ($status,$accessmsg,my $slot_name,my $slot) =          ($status,$accessmsg,my $slot_name,my $slot) =
             &Apache::lonhomework::check_slot_access('0','problem');              &Apache::lonhomework::check_slot_access('0','problem');
         push (@Apache::inputtags::status,$status);          push (@Apache::inputtags::status,$status);
Line 1206  sub start_problem { Line 1238  sub start_problem {
     ( $status eq 'BANNED') ||      ( $status eq 'BANNED') ||
     ( $status eq 'UNAVAILABLE') ||      ( $status eq 'UNAVAILABLE') ||
     ( $status eq 'NOT_IN_A_SLOT') ||      ( $status eq 'NOT_IN_A_SLOT') ||
               ( $status eq 'NOTRESERVABLE') ||
               ( $status eq 'RESERVABLE') ||
               ( $status eq 'RESERVABLE_LATER') ||
     ( $status eq 'INVALID_ACCESS')) {      ( $status eq 'INVALID_ACCESS')) {
     my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser,      my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser,
        $style);         $style);
Line 1215  sub start_problem { Line 1250  sub start_problem {
     $msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>';      $msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>';
                 } elsif ($status eq 'NOT_IN_A_SLOT') {                  } elsif ($status eq 'NOT_IN_A_SLOT') {
                     $msg.='<h1>'.&mt('You are not currently signed up to work at this time and/or place.').'</h1>';                      $msg.='<h1>'.&mt('You are not currently signed up to work at this time and/or place.').'</h1>';
                   } elsif (($status eq 'RESERVABLE') || ($status eq 'RESERVABLE_LATER') ||
                            ($status eq 'NOTRESERVABLE')) {
                       $msg.='<h1>'.&mt('Access requires reservation to work at specific time/place.').'</h1>';
  } elsif ($status ne 'NOT_YET_VIEWED') {   } elsif ($status ne 'NOT_YET_VIEWED') {
     $msg.='<h1>'.&mt('Not open to be viewed').'</h1>';      $msg.='<h1>'.&mt('Not open to be viewed').'</h1>';
  }                  }
  if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') {   if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') {
     $msg.=&mt('The problem ').$accessmsg;      $msg.=&mt('The problem ').$accessmsg;
  } elsif ($status eq 'UNCHECKEDOUT') {   } elsif ($status eq 'UNCHECKEDOUT') {
Line 1226  sub start_problem { Line 1264  sub start_problem {
     $msg.=&firstaccess_msg($accessmsg,$symb);      $msg.=&firstaccess_msg($accessmsg,$symb);
  } elsif ($status eq 'NOT_IN_A_SLOT') {   } elsif ($status eq 'NOT_IN_A_SLOT') {
     $msg.=&Apache::bridgetask::add_request_another_attempt_button("Sign up for time to work");      $msg.=&Apache::bridgetask::add_request_another_attempt_button("Sign up for time to work");
                   } elsif ($status eq 'RESERVABLE') {
                       $msg.=&mt('Available to make a reservation.').' '.&mt('Reservation window closes [_1].',
                                 &Apache::lonnavmaps::timeToHumanString($accessmsg,'end')).
                             '<br />'.
                             &Apache::bridgetask::add_request_another_attempt_button("Sign up for time to work");
                   } elsif ($status eq 'RESERVABLE_LATER') {
                       $msg.=&mt('Window to make a reservation will open [_1].',
                                 &Apache::lonnavmaps::timeToHumanString($accessmsg,'start'));
                   } elsif ($status eq 'NOTRESERVABLE') {
                       $msg.=&mt('Not available to make a reservation.');  
  }   }
  $result.=$msg.'<br />';   $result.=$msg.'<br />';
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
Line 1286  sub start_problem { Line 1334  sub start_problem {
             }              }
  } elsif ($target eq 'tex') {   } elsif ($target eq 'tex') {
     $result .= 'INSERTTEXFRONTMATTERHERE';      $result .= 'INSERTTEXFRONTMATTERHERE';
       $result .= &select_metadata_hyphenation();
       
   
  }   }
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
Line 1799  sub end_languageblock { Line 1849  sub end_languageblock {
  $result = &select_hyphenation($which);   $result = &select_hyphenation($which);
     }      }
     $result .= $available_texts{$which};      $result .= $available_texts{$which};
       if ($target eq 'tex') {
    $result .= &select_metadata_hyphenation(); # Restore original language.
       }
  }   }
  undef(%available_texts);   undef(%available_texts);
  &Apache::lonxml::deregister('Apache::structuretags',('lang'));   &Apache::lonxml::deregister('Apache::structuretags',('lang'));

Removed from v.1.497.2.5  
changed lines
  Added in v.1.501


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