--- loncom/homework/structuretags.pm 2007/09/11 23:53:05 1.397 +++ loncom/homework/structuretags.pm 2007/10/12 18:45:03 1.402 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.397 2007/09/11 23:53:05 albertel Exp $ +# $Id: structuretags.pm,v 1.402 2007/10/12 18:45:03 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -92,6 +92,31 @@ sub end_tex { return ''; } +sub homework_js { + return &Apache::loncommon::resize_textarea_js(). + <<'JS'; + +JS +} + sub page_start { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name, $extra_head)=@_; @@ -108,13 +133,7 @@ sub page_start { $parstack,$parser,$safeeval); } - $extra_head.= ' - -'; + $extra_head .= &homework_js(); my %body_args; if (defined($found{'html'})) { @@ -139,7 +158,9 @@ function setSubmittedPart (part) { } elsif (!defined($found{'body'}) && $env{'request.state'} eq 'construct') { if ($target eq 'web' || $target eq 'edit') { - # no extra args to bodytag + if ($env{'environment.remote'} ne 'off') { + $body_args{'only_body'} = 1; + } } } elsif (!defined($found{'body'})) { my %add_entries; @@ -1143,27 +1164,38 @@ sub start_languageblock { $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { my $include = $token->[2]->{'include'}; my $exclude = $token->[2]->{'exclude'}; - my $preferred_language=(&Apache::loncommon::preferred_languages)[0]; + my @preferred_languages=&Apache::loncommon::preferred_languages(); # This should not even happen, since we should at least have the server language - if (!$preferred_language) { $preferred_language='en'; } + if (!$preferred_languages[0]) { $preferred_languages[0]='en'; } +# Now loop over all languages in order of preference + foreach my $preferred_language (@preferred_languages) { # If the languageblock has no arguments, show the contents - $result='1'; + $result=1; + my $found=0; # Do we have an include argument? - if ($include) { + if ($include) { # If include is specified, by default, don't render the block - $result=''; - foreach my $included_language (split(/\,/,$include)) { + $result=0; + foreach my $included_language (split(/\,/,$include)) { # ... but if my preferred language is included, render it - if ($included_language eq $preferred_language) { $result='1'; } - } - } + if ($included_language eq $preferred_language) { + $result=1; + $found=1; + } + } + } # Do we have an exclude argument? - if ($exclude) { - $result='1'; - foreach my $excluded_language (split(/\,/,$exclude)) { - if ($excluded_language eq $preferred_language) { $result='0'; } - } - } + if ($exclude) { + $result=1; + foreach my $excluded_language (split(/\,/,$exclude)) { + if ($excluded_language eq $preferred_language) { + $result=0; + $found=1; + } + } + } + if ($found) { last; } + } if ( ! $result ) { my $skip=&Apache::lonxml::get_all_text("/languageblock",$parser, $style);