|
@@ -1,6 +1,28 @@
|
|
|
<?php
|
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
|
|
+/**
|
|
|
+ * Interface ImsAnswerInterface
|
|
|
+ */
|
|
|
+interface ImsAnswerInterface
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * @param $questionIdent
|
|
|
+ * @param $questionStatment
|
|
|
+ *
|
|
|
+ * @return mixed
|
|
|
+ */
|
|
|
+ public function imsExportResponses($questionIdent, $questionStatment);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param $questionIdent
|
|
|
+ * @param Question|null $question
|
|
|
+ *
|
|
|
+ * @return mixed
|
|
|
+ */
|
|
|
+ public function imsExportResponsesDeclaration($questionIdent, Question $question = null);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* @author Claro Team <cvs@claroline.net>
|
|
|
* @author Yannick Warnier <yannick.warnier@beeznest.com> -
|
|
@@ -74,7 +96,7 @@ class Ims2Question extends Question
|
|
|
*
|
|
|
* @package chamilo.exercise
|
|
|
*/
|
|
|
-class ImsAnswerMultipleChoice extends Answer
|
|
|
+class ImsAnswerMultipleChoice extends Answer implements ImsAnswerInterface
|
|
|
{
|
|
|
/**
|
|
|
* Return the XML flow for the possible answers.
|
|
@@ -105,7 +127,7 @@ class ImsAnswerMultipleChoice extends Answer
|
|
|
/**
|
|
|
* Return the XML flow of answer ResponsesDeclaration.
|
|
|
*/
|
|
|
- public function imsExportResponsesDeclaration($questionIdent)
|
|
|
+ public function imsExportResponsesDeclaration($questionIdent, Question $question = null)
|
|
|
{
|
|
|
$this->answerList = $this->getAnswersList(true);
|
|
|
$type = $this->getQuestionType();
|
|
@@ -150,8 +172,11 @@ class ImsAnswerMultipleChoice extends Answer
|
|
|
*
|
|
|
* @package chamilo.exercise
|
|
|
*/
|
|
|
-class ImsAnswerFillInBlanks extends Answer
|
|
|
+class ImsAnswerFillInBlanks extends Answer implements ImsAnswerInterface
|
|
|
{
|
|
|
+ private $answerList = [];
|
|
|
+ private $gradeList = [];
|
|
|
+
|
|
|
/**
|
|
|
* Export the text with missing words.
|
|
|
*/
|
|
@@ -171,7 +196,7 @@ class ImsAnswerFillInBlanks extends Answer
|
|
|
return $text;
|
|
|
}
|
|
|
|
|
|
- public function imsExportResponsesDeclaration($questionIdent)
|
|
|
+ public function imsExportResponsesDeclaration($questionIdent, Question $question = null)
|
|
|
{
|
|
|
$this->answerList = $this->getAnswersList(true);
|
|
|
$this->gradeList = $this->getGradesList();
|
|
@@ -203,10 +228,11 @@ class ImsAnswerFillInBlanks extends Answer
|
|
|
*
|
|
|
* @package chamilo.exercise
|
|
|
*/
|
|
|
-class ImsAnswerMatching extends Answer
|
|
|
+class ImsAnswerMatching extends Answer implements ImsAnswerInterface
|
|
|
{
|
|
|
- public $leftList;
|
|
|
- public $rightList;
|
|
|
+ public $leftList = [];
|
|
|
+ public $rightList = [];
|
|
|
+ private $answerList = [];
|
|
|
|
|
|
/**
|
|
|
* Export the question part as a matrix-choice, with only one possible answer per line.
|
|
@@ -250,7 +276,7 @@ class ImsAnswerMatching extends Answer
|
|
|
return $out;
|
|
|
}
|
|
|
|
|
|
- public function imsExportResponsesDeclaration($questionIdent)
|
|
|
+ public function imsExportResponsesDeclaration($questionIdent, Question $question = null)
|
|
|
{
|
|
|
$this->answerList = $this->getAnswersList(true);
|
|
|
$out = ' <responseDeclaration identifier="'.$questionIdent.'" cardinality="single" baseType="identifier">'."\n";
|
|
@@ -290,8 +316,11 @@ class ImsAnswerMatching extends Answer
|
|
|
*
|
|
|
* @package chamilo.exercise
|
|
|
*/
|
|
|
-class ImsAnswerHotspot extends Answer
|
|
|
+class ImsAnswerHotspot extends Answer implements ImsAnswerInterface
|
|
|
{
|
|
|
+ private $answerList = [];
|
|
|
+ private $gradeList = [];
|
|
|
+
|
|
|
/**
|
|
|
* TODO update this to match hot spots instead of copying matching
|
|
|
* Export the question part as a matrix-choice, with only one possible answer per line.
|
|
@@ -347,7 +376,7 @@ class ImsAnswerHotspot extends Answer
|
|
|
return $text;
|
|
|
}
|
|
|
|
|
|
- public function imsExportResponsesDeclaration($questionIdent)
|
|
|
+ public function imsExportResponsesDeclaration($questionIdent, Question $question = null)
|
|
|
{
|
|
|
$this->answerList = $this->getAnswersList(true);
|
|
|
$this->gradeList = $this->getGradesList();
|
|
@@ -372,7 +401,7 @@ class ImsAnswerHotspot extends Answer
|
|
|
*
|
|
|
* @package chamilo.exercise
|
|
|
*/
|
|
|
-class ImsAnswerFree extends Answer
|
|
|
+class ImsAnswerFree extends Answer implements ImsAnswerInterface
|
|
|
{
|
|
|
/**
|
|
|
* TODO implement
|
|
@@ -393,7 +422,7 @@ class ImsAnswerFree extends Answer
|
|
|
</extendedTextInteraction>';
|
|
|
}
|
|
|
|
|
|
- public function imsExportResponsesDeclaration($questionIdent, $question)
|
|
|
+ public function imsExportResponsesDeclaration($questionIdent, Question $question = null)
|
|
|
{
|
|
|
$out = ' <responseDeclaration identifier="'.$questionIdent.'" cardinality="single" baseType="string">';
|
|
|
$out .= '<outcomeDeclaration identifier="SCORE" cardinality="single" baseType="float">
|