version 1.3, 2010/10/04 18:28:53
|
version 1.4, 2010/10/04 19:26:39
|
Line 33 use Apache::lonlocal;
|
Line 33 use Apache::lonlocal;
|
use Apache::lonnet; |
use Apache::lonnet; |
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::functionplotresponse',('functionplotresponse')); |
&Apache::lonxml::register('Apache::functionplotresponse',('functionplotresponse','backgroundplot')); |
} |
} |
|
|
sub geogebra_startcode { |
sub geogebra_startcode { |
Line 103 sub start_init_script {
|
Line 103 sub start_init_script {
|
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
function ggbInit_$id() { |
function ggbInit_$id() { |
alert("Hello $id"); |
|
ENDSTARTINIT |
ENDSTARTINIT |
} |
} |
|
|
|
sub axes_script { |
|
my ($id,$xmin,$xmax,$ymin,$ymax,$xvisible,$yvisible,$gvisible)=@_; |
|
return (<<ENDAXESSCRIPT); |
|
// changes (xmin, xmax, ymin, ymax) |
|
document.ggbApplet_$id.setCoordSystem($xmin,$xmax,$ymin,$ymax); |
|
|
|
// makes the (x,y) axis (in)visible |
|
document.ggbApplet_$id.setAxesVisible($xvisible,$yvisible); |
|
// makes the grid (in)visible |
|
document.ggbApplet_$id.setGridVisible($gvisible); |
|
ENDAXESSCRIPT |
|
} |
|
|
|
sub plot_script { |
|
my ($id,$function)=@_; |
|
return (<<ENDPLOTSCRIPT); |
|
document.ggbApplet_$id.evalCommand("y=$function"); |
|
ENDPLOTSCRIPT |
|
} |
|
|
|
sub start_backgroundplot { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
|
my $result=''; |
|
my $internalid = $Apache::inputtags::part.'_'.$Apache::inputtags::response[-1]; |
|
my $function=&Apache::lonxml::get_param('function',$parstack,$safeeval); |
|
unless ($function) { $function="0"; } |
|
if ($target eq 'web') { |
|
$result.=&plot_script($internalid,$function); |
|
} |
|
return $result; |
|
} |
|
|
|
sub end_backgroundplot { |
|
} |
|
|
sub end_init_script { |
sub end_init_script { |
return (<<ENDENDINIT); |
return (<<ENDENDINIT); |
} |
} |
Line 120 sub start_functionplotresponse {
|
Line 154 sub start_functionplotresponse {
|
my $result=''; |
my $result=''; |
my $internalid = $Apache::inputtags::part.'_'.&Apache::response::start_response($parstack,$safeeval); |
my $internalid = $Apache::inputtags::part.'_'.&Apache::response::start_response($parstack,$safeeval); |
my $xmin=&Apache::lonxml::get_param('xmin',$parstack,$safeeval); |
my $xmin=&Apache::lonxml::get_param('xmin',$parstack,$safeeval); |
|
$xmin=($xmin?$xmin:-10); |
my $xmax=&Apache::lonxml::get_param('xmax',$parstack,$safeeval); |
my $xmax=&Apache::lonxml::get_param('xmax',$parstack,$safeeval); |
|
$xmax=($xmax?$xmax:10); |
my $ymin=&Apache::lonxml::get_param('ymin',$parstack,$safeeval); |
my $ymin=&Apache::lonxml::get_param('ymin',$parstack,$safeeval); |
|
$ymin=($ymin?$ymin:-10); |
my $ymax=&Apache::lonxml::get_param('ymax',$parstack,$safeeval); |
my $ymax=&Apache::lonxml::get_param('ymax',$parstack,$safeeval); |
my $xaxisvisible=&Apache::lonxml::get_param('xaxisvisible',$parstack,$safeeval); |
$ymax=($ymax?$ymax:10); |
my $yaxisvisible=&Apache::lonxml::get_param('yaxisvisible',$parstack,$safeeval); |
my $xaxisvisible=(&Apache::lonxml::get_param('xaxisvisible',$parstack,$safeeval)=~/on|true|1/i?'true':'false'); |
my $gridvisible=&Apache::lonxml::get_param('gridvisible',$parstack,$safeeval); |
my $yaxisvisible=(&Apache::lonxml::get_param('yaxisvisible',$parstack,$safeeval)=~/on|true|1/i?'true':'false'); |
|
my $gridvisible=(&Apache::lonxml::get_param('gridvisible',$parstack,$safeeval)=~/on|true|1/i?'true':'false'); |
|
|
|
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$result.=&start_init_script($internalid); |
$result.=&start_init_script($internalid); |
|
$result.=&axes_script($internalid,$xmin,$xmax,$ymin,$ymax,$xaxisvisible,$yaxisvisible,$gridvisible); |
} |
} |
return $result; |
return $result; |
} |
} |