[LON-CAPA-cvs] cvs: loncom /homework functionplotresponse.pm structuretags.pm
www
www@source.lon-capa.org
Mon, 04 Oct 2010 18:28:53 -0000
www Mon Oct 4 18:28:53 2010 EDT
Modified files:
/loncom/homework functionplotresponse.pm structuretags.pm
Log:
Enable more than one GeoGebra response on one page
Index: loncom/homework/functionplotresponse.pm
diff -u loncom/homework/functionplotresponse.pm:1.2 loncom/homework/functionplotresponse.pm:1.3
--- loncom/homework/functionplotresponse.pm:1.2 Mon Oct 4 14:34:43 2010
+++ loncom/homework/functionplotresponse.pm Mon Oct 4 18:28:53 2010
@@ -1,7 +1,7 @@
# LearningOnline Network with CAPA
# option list style responses
#
-# $Id: functionplotresponse.pm,v 1.2 2010/10/04 14:34:43 www Exp $
+# $Id: functionplotresponse.pm,v 1.3 2010/10/04 18:28:53 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -37,8 +37,9 @@
}
sub geogebra_startcode {
+ my ($id)=@_;
return (<<ENDSTARTCODE);
-<applet name="ggbApplet" code="geogebra.GeoGebraApplet" archive="geogebra.jar"
+<applet name="ggbApplet_$id" code="geogebra.GeoGebraApplet" archive="geogebra.jar"
codebase="/adm/geogebra/" width="714" height="447" MAYSCRIPT>
<param name="java_arguments" value="-Xmx512m -Djnlp.packEnabled=true"/>
ENDSTARTCODE
@@ -55,6 +56,7 @@
}
sub geogebra_default_parameters {
+ my ($id)=@_;
return(<<ENDDEFAULTPARAMETERS);
<param name="image" value="/adm/lonIcons/lonanim.gif" />
<param name="boxborder" value="false" />
@@ -76,18 +78,58 @@
<param name="enableShiftDragZoom" value="false" />
<param name="allowRescaling" value="false" />
<param name="enableLabelDrags" value="false" />
- <param name="ggbOnInitParam" value="applet1" />
+ <param name="ggbOnInitParam" value="applet_$id" />
ENDDEFAULTPARAMETERS
}
+sub init_script {
+ if ($Apache::functionplotresponse::callscripts) {
+ return (<<ENDGGBINIT);
+<script type="text/javascript">
+// <![CDATA[
+function ggbOnInit(param) {
+$Apache::functionplotresponse::callscripts
+}
+// ]]>
+</script>
+ENDGGBINIT
+ }
+}
+
+sub start_init_script {
+ my ($id)=@_;
+ $Apache::functionplotresponse::callscripts.="if (param=='applet_$id') { ggbInit_$id(); }\n";
+ return (<<ENDSTARTINIT);
+<script type="text/javascript">
+// <![CDATA[
+function ggbInit_$id() {
+ alert("Hello $id");
+ENDSTARTINIT
+}
+
+sub end_init_script {
+ return (<<ENDENDINIT);
+}
+// ]]>
+</script>
+ENDENDINIT
+}
+
sub start_functionplotresponse {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result='';
- my $id = &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 $xmax=&Apache::lonxml::get_param('xmax',$parstack,$safeeval);
+ my $ymin=&Apache::lonxml::get_param('ymin',$parstack,$safeeval);
+ my $ymax=&Apache::lonxml::get_param('ymax',$parstack,$safeeval);
+ my $xaxisvisible=&Apache::lonxml::get_param('xaxisvisible',$parstack,$safeeval);
+ my $yaxisvisible=&Apache::lonxml::get_param('yaxisvisible',$parstack,$safeeval);
+ my $gridvisible=&Apache::lonxml::get_param('gridvisible',$parstack,$safeeval);
+
+
if ($target eq 'web') {
- $result.=&geogebra_startcode();
- $result.=&geogebra_spline_program();
- $result.=&geogebra_default_parameters();
+ $result.=&start_init_script($internalid);
}
return $result;
}
@@ -95,9 +137,16 @@
sub end_functionplotresponse {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
&Apache::response::end_response;
+
my $result;
+ my $internalid = $Apache::inputtags::part.'_'.$Apache::inputtags::response[-1];
+
# if ($target eq 'edit') { $result=&Apache::edit::end_table(); }
if ($target eq 'web') {
+ $result.=&end_init_script();
+ $result.=&geogebra_startcode($internalid);
+ $result.=&geogebra_spline_program();
+ $result.=&geogebra_default_parameters($internalid);
$result.=&geogebra_endcode();
}
return $result;
Index: loncom/homework/structuretags.pm
diff -u loncom/homework/structuretags.pm:1.475 loncom/homework/structuretags.pm:1.476
--- loncom/homework/structuretags.pm:1.475 Mon Aug 30 14:06:16 2010
+++ loncom/homework/structuretags.pm Mon Oct 4 18:28:53 2010
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.475 2010/08/30 14:06:16 raeburn Exp $
+# $Id: structuretags.pm,v 1.476 2010/10/04 18:28:53 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -783,6 +783,7 @@
&Apache::lonhomework::reset_show_problem_status();
$Apache::lonhomework::ignore_response_errors=1;
}
+ $Apache::functionplotresponse::callscripts='';
@Apache::inputtags::responselist = ();
@Apache::inputtags::importlist = ();
@Apache::inputtags::previous=();
@@ -810,6 +811,7 @@
undef($Apache::lonhomework::type);
undef($Apache::lonhomework::scantronmode);
undef($Apache::lonhomework::ignore_response_errors);
+ undef($Apache::functionplotresponse::callscripts);
&Apache::lonhomework::reset_show_problem_status();
}
@@ -1202,6 +1204,9 @@
}
}
}
+ if ($target eq 'web') {
+ $result.=&Apache::functionplotresponse::init_script();
+ }
if ($target eq 'grade') {
&Apache::lonhomework::showhash(%Apache::lonhomework::results);
&finalize_storage();