version 1.396, 2007/09/11 23:36:39
|
version 1.402, 2007/10/12 18:45:03
|
Line 42 use lib '/home/httpd/lib/perl/';
|
Line 42 use lib '/home/httpd/lib/perl/';
|
use LONCAPA; |
use LONCAPA; |
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag')); |
&Apache::lonxml::register('Apache::structuretags',('block','languageblock','translated','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag')); |
} |
} |
|
|
sub start_web { |
sub start_web { |
Line 92 sub end_tex {
|
Line 92 sub end_tex {
|
return ''; |
return ''; |
} |
} |
|
|
|
sub homework_js { |
|
return &Apache::loncommon::resize_textarea_js(). |
|
<<'JS'; |
|
<script type="text/javascript"> |
|
function setSubmittedPart (part) { |
|
this.document.lonhomework.submitted.value="part_"+part; |
|
} |
|
|
|
function image_response_click (which, e) { |
|
init_geometry(); |
|
if (!e) { e = window.event; } //IE |
|
var input_element = document.lonhomework.elements[which]; |
|
var token_element = document.lonhomework.elements[which+'_token']; |
|
var token = token_element.value; |
|
var img_element = document.getElementById(which+'_imageresponse'); |
|
var x= e.clientX-getX(img_element)+Geometry.getHorizontalScroll(); |
|
var y= e.clientY-getY(img_element)+Geometry.getVerticalScroll(); |
|
var click = x+':'+y; |
|
input_element.value = click; |
|
img_element.src = '/adm/randomlabel.png?token='+token+'&clickdata='+click; |
|
} |
|
</script> |
|
JS |
|
} |
|
|
sub page_start { |
sub page_start { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name, |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name, |
$extra_head)=@_; |
$extra_head)=@_; |
Line 108 sub page_start {
|
Line 133 sub page_start {
|
$parstack,$parser,$safeeval); |
$parstack,$parser,$safeeval); |
} |
} |
|
|
$extra_head.= ' |
$extra_head .= &homework_js(); |
<script type="text/javascript"> |
|
function setSubmittedPart (part) { |
|
this.document.lonhomework.submitted.value="part_"+part; |
|
} |
|
</script> |
|
'; |
|
|
|
my %body_args; |
my %body_args; |
if (defined($found{'html'})) { |
if (defined($found{'html'})) { |
Line 139 function setSubmittedPart (part) {
|
Line 158 function setSubmittedPart (part) {
|
} elsif (!defined($found{'body'}) |
} elsif (!defined($found{'body'}) |
&& $env{'request.state'} eq 'construct') { |
&& $env{'request.state'} eq 'construct') { |
if ($target eq 'web' || $target eq 'edit') { |
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'})) { |
} elsif (!defined($found{'body'})) { |
my %add_entries; |
my %add_entries; |
Line 1143 sub start_languageblock {
|
Line 1164 sub start_languageblock {
|
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
my $include = $token->[2]->{'include'}; |
my $include = $token->[2]->{'include'}; |
my $exclude = $token->[2]->{'exclude'}; |
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 |
# 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 |
# If the languageblock has no arguments, show the contents |
$result='1'; |
$result=1; |
|
my $found=0; |
# Do we have an include argument? |
# Do we have an include argument? |
if ($include) { |
if ($include) { |
# If include is specified, by default, don't render the block |
# If include is specified, by default, don't render the block |
$result=''; |
$result=0; |
foreach my $included_language (split(/\,/,$include)) { |
foreach my $included_language (split(/\,/,$include)) { |
# ... but if my preferred language is included, render it |
# ... 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? |
# Do we have an exclude argument? |
if ($exclude) { |
if ($exclude) { |
$result='1'; |
$result=1; |
foreach my $excluded_language (split(/\,/,$exclude)) { |
foreach my $excluded_language (split(/\,/,$exclude)) { |
if ($excluded_language eq $preferred_language) { $result='0'; } |
if ($excluded_language eq $preferred_language) { |
} |
$result=0; |
} |
$found=1; |
|
} |
|
} |
|
} |
|
if ($found) { last; } |
|
} |
if ( ! $result ) { |
if ( ! $result ) { |
my $skip=&Apache::lonxml::get_all_text("/languageblock",$parser, |
my $skip=&Apache::lonxml::get_all_text("/languageblock",$parser, |
$style); |
$style); |
Line 1195 sub end_languageblock {
|
Line 1227 sub end_languageblock {
|
return $result; |
return $result; |
} |
} |
|
|
|
{ |
|
my %available_texts; |
|
sub start_translated { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
|
&Apache::lonxml::register('Apache::structuretags',('lang')); |
|
undef(%available_texts); |
|
} |
|
|
|
sub end_translated { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
|
my $result; |
|
#show the translation on viewable targets |
|
if ($target eq 'web' || $target eq 'tex' || $target eq 'webgrade'|| |
|
# or non-viewable targets, if it's embedded in something that |
|
# wants the output |
|
(($target eq 'answer' || $target eq 'analyze'|| $target eq 'grade') |
|
&& &Apache::lonxml::in_redirection() ) ) { |
|
my @possibilities = keys(%available_texts); |
|
my $which = |
|
&Apache::loncommon::languages(\@possibilities) || 'default'; |
|
$result = $available_texts{$which}; |
|
} |
|
undef(%available_texts); |
|
&Apache::lonxml::deregister('Apache::structuretags',('lang')); |
|
return $result; |
|
} |
|
|
|
|
|
sub start_lang { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
|
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
|
&Apache::lonxml::startredirection(); |
|
} |
|
return ''; |
|
} |
|
|
|
sub end_lang { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
|
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
|
my $result = &Apache::lonxml::endredirection(); |
|
my $which = &Apache::lonxml::get_param('which',$parstack, |
|
$safeeval); |
|
$available_texts{$which} = $result; |
|
} |
|
return ''; |
|
} |
|
} |
|
|
sub start_instructorcomment { |
sub start_instructorcomment { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
|
|