--- loncom/homework/structuretags.pm 2007/08/03 23:29:57 1.386
+++ loncom/homework/structuretags.pm 2007/09/11 23:36:39 1.396
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.386 2007/08/03 23:29:57 albertel Exp $
+# $Id: structuretags.pm,v 1.396 2007/09/11 23:36:39 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -157,6 +157,10 @@ function setSubmittedPart (part) {
$body_args{'no_title'} = 1;
$body_args{'force_register'} = 1;
$body_args{'add_entries'} = \%add_entries;
+ if ($env{'environment.remote'} eq 'off'
+ && $env{'request.state'} eq 'construct') {
+ $body_args{'only_body'} = 1;
+ }
}
$body_args{'no_auto_mt_title'} = 1;
my $page_start = &Apache::loncommon::start_page($name,$extra_head,
@@ -202,20 +206,27 @@ function setSubmittedPart (part) {
#use Time::HiRes();
sub get_resource_name {
my ($parstack,$safeeval)=@_;
+ my $name;
if (defined($Apache::lonhomework::name)) {
- return $Apache::lonhomework::name;
- }
- my ($symb)=&Apache::lonnet::whichuser();
- my $name=&Apache::lonnet::gettitle($symb);
- if ($name eq '') {
- $name=&Apache::lonnet::EXT('resource.title');
- if ($name eq 'con_lost') { $name = ''; }
- }
- if ($name!~/\S+/) {
- $name=$env{'request.uri'};
- $name=~s-.*/([^/]+)$-$1-;
+ $name = $Apache::lonhomework::name;
+ } else {
+ my ($symb)=&Apache::lonnet::whichuser();
+ $name=&Apache::lonnet::gettitle($symb);
+ if ($name eq '') {
+ $name=&Apache::lonnet::EXT('resource.title');
+ if ($name eq 'con_lost') { $name = ''; }
+ }
+ if ($name!~/\S+/) {
+ $name=$env{'request.uri'};
+ $name=~s-.*/([^/]+)$-$1-;
+ }
+ # The name has had html tags escaped:
+
+ $name=~s/<//gs;
+
+ $Apache::lonhomework::name=$name;
}
- $Apache::lonhomework::name=$name;
return $name;
}
@@ -458,7 +469,6 @@ sub finalize_storage {
}
return $result;
}
-use Data::Dumper;
# -------------------------------------------------------------store_aggregates
# Sends hash of values to be incremented in nohist_resourcetracker.db
@@ -638,7 +648,6 @@ sub start_problem {
}
if ($target ne 'analyze') {
- if ($env{'request.state'} eq 'construct') { &set_problem_state('0'); }
$Apache::lonhomework::type=&Apache::lonnet::EXT('resource.0.type');
if (($env{'request.state'} eq 'construct') &&
defined($env{'form.problemtype'})) {
@@ -659,6 +668,11 @@ sub start_problem {
$Apache::lonhomework::default_type = $Apache::lonhomework::type;
&initialize_storage();
+ if ($target ne 'analyze'
+ && $env{'request.state'} eq 'construct') {
+ &set_problem_state('0');
+ }
+
if ($target eq 'web') {
&Apache::lonxml::debug(" grading history ");
&Apache::lonhomework::showhash(%Apache::lonhomework::history);
@@ -751,7 +765,7 @@ sub start_problem {
$msg.='
'.&mt('Not open to be viewed').'
';
}
if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') {
- $msg.='The problem '.$accessmsg;
+ $msg.=&mt('The problem ').$accessmsg;
} elsif ($status eq 'UNCHECKEDOUT') {
$msg.=&checkout_msg();
} elsif ($status eq 'NOT_YET_VIEWED') {
@@ -1056,16 +1070,19 @@ sub start_definetag {
my $name = $token->[2]->{'name'};
my $skip=&Apache::lonxml::get_all_text("/definetag",$parser,$style);
- if ($name=~/^\//) {
- $result=
- '
END '.$name.' |
';
- } else {
- $result=
- '
BEGIN '.$name.' |
';
+ if ($target eq 'web') {
+ if ($name=~/^\//) {
+ $result=
+ '
'.
+ &mt('END [_1]'.''.$name.'').' |
';
+ } else {
+ $result=
+ '
'.
+ &mt('BEGIN [_1]'.''.$name.'').' |
';
+ }
+ $skip = &HTML::Entities::encode($skip, '<>&"');
+ $result.=''.$skip.' |
';
}
- $skip=~s/\\<\;/gs;
- $skip=~s/\>/\>\;/gs;
- $result.=''.$skip.' |
';
return $result;
}
@@ -1126,17 +1143,25 @@ sub start_languageblock {
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') {
my $include = $token->[2]->{'include'};
my $exclude = $token->[2]->{'exclude'};
- my %languages=&Apache::loncommon::display_languages();
+ my $preferred_language=(&Apache::loncommon::preferred_languages)[0];
+# This should not even happen, since we should at least have the server language
+ if (!$preferred_language) { $preferred_language='en'; }
+# If the languageblock has no arguments, show the contents
$result='1';
+# Do we have an include argument?
if ($include) {
+# If include is specified, by default, don't render the block
$result='';
- foreach (split(/\,/,$include)) {
- if ($languages{$_}) { $result='1'; }
+ foreach my $included_language (split(/\,/,$include)) {
+# ... but if my preferred language is included, render it
+ if ($included_language eq $preferred_language) { $result='1'; }
}
}
+# Do we have an exclude argument?
if ($exclude) {
- foreach (split(/\,/,$exclude)) {
- if ($languages{$_}) { $result='0'; }
+ $result='1';
+ foreach my $excluded_language (split(/\,/,$exclude)) {
+ if ($excluded_language eq $preferred_language) { $result='0'; }
}
}
if ( ! $result ) {
@@ -1428,7 +1453,7 @@ sub start_part {
if ($target eq 'tex') {
if (not $env{'form.problem_split'}=~/yes/) {
if ($$tagstack[-2] eq 'td') {
- $result.='\vskip 0 mm \noindent \begin{minipage}{\textwidth}\noindent';
+ $result.='\noindent \begin{minipage}{\textwidth}\noindent';
} else {
$result.='\noindent \end{minipage}\vskip 0 mm \noindent \begin{minipage}{\textwidth}\noindent';
}