4require_once
'./Modules/TestQuestionPool/classes/class.assQuestion.php';
5require_once
'./Modules/Test/classes/inc.AssessmentConstants.php';
6require_once
'./Modules/TestQuestionPool/interfaces/interface.ilObjQuestionScoringAdjustable.php';
7require_once
'./Modules/TestQuestionPool/interfaces/interface.iQuestionCondition.php';
49 $this->parameters = array();
63 if (strlen($this->title)
92 array( $this->
getId() )
95 ) .
" (question_fi, width, height, applet, params) VALUES (%s, %s, %s, %s, %s)",
96 array(
"integer",
"integer",
"integer",
"text",
"text" ),
110 unset(
$_SESSION[
"flash_upload_filename"]);
131 $this->
setId($question_id);
142 include_once(
"./Services/RTE/classes/class.ilRTE.php");
165 $this->parameters = unserialize(
$data[
"params"]);
167 unset(
$_SESSION[
"flash_upload_filename"]);
170 parent::loadFromDb($question_id);
188 $this_id = $this->
getId();
192 include_once (
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
196 if( (
int)$testObjId > 0 )
198 $clone->setObjId($testObjId);
225 $clone->copyPageOfQuestion($this_id);
227 $clone->copyXHTMLMediaObjectsOfQuestion($this_id);
229 $clone->duplicateApplet($this_id, $thisObjId);
231 $clone->onDuplicate($thisObjId, $this_id, $clone->getObjId(), $clone->getId());
252 include_once (
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
255 $source_questionpool_id = $this->
getObjId();
256 $clone->setObjId($target_questionpool_id);
268 $clone->copyApplet(
$original_id, $source_questionpool_id);
270 $clone->onCopy($source_questionpool_id,
$original_id, $clone->getObjId(), $clone->getId());
283 include_once (
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
286 $sourceParentId = $this->
getObjId();
292 $clone->setObjId($targetParentId);
294 if ($targetQuestionTitle)
296 $clone->setTitle($targetQuestionTitle);
301 $clone->copyPageOfQuestion($sourceQuestionId);
303 $clone->copyXHTMLMediaObjectsOfQuestion($sourceQuestionId);
305 $clone->copyApplet($sourceQuestionId, $sourceParentId);
307 $clone->onCopy($sourceParentId, $sourceQuestionId, $clone->getObjId(), $clone->getId());
321 $flashpath_original = preg_replace(
"/([^\d])$this->id([^\d])/",
"\${1}$question_id\${2}", $flashpath);
323 if( (
int)$objectId > 0 )
325 $flashpath_original = str_replace(
"/$this->obj_id/",
"/$objectId/", $flashpath_original);
328 if (!file_exists($flashpath))
334 print "flash applet could not be duplicated!!!! ";
344 protected function copyApplet($question_id, $source_questionpool)
347 $flashpath_original = preg_replace(
"/([^\d])$this->id([^\d])/",
"\${1}$question_id\${2}", $flashpath);
348 $flashpath_original = str_replace(
"/$this->obj_id/",
"/$source_questionpool/", $flashpath_original);
349 if (!file_exists($flashpath))
356 print "flash applet could not be copied!!!! ";
385 throw new ilTestException(
'return details not implemented for '.__METHOD__);
390 $found_values = array();
395 $result =
$ilDB->queryF(
"SELECT * FROM tst_solutions WHERE active_fi = %s AND question_fi = %s AND pass = %s",
396 array(
"integer",
"integer",
"integer"),
414 if( isset($solution[
'points']) )
416 $points += $solution[
'points'];
424 $params = array(
'http' => array(
428 if ($optional_headers !==
null)
430 $params[
'http'][
'header'] = $optional_headers;
432 $ctx = stream_context_create($params);
433 $fp = @fopen($url,
'rb',
false, $ctx);
436 throw new Exception(
"Problem with $url, $php_errormsg");
438 $response = @stream_get_contents($fp);
439 if ($response ===
false)
441 throw new Exception(
"Problem reading data from $url, $php_errormsg");
457 if (!empty($tmpfile))
459 $flashfile = str_replace(
" ",
"_", $flashfile);
461 if (!file_exists($flashpath))
528 return "assFlashQuestion";
541 return "qpl_qst_flash";
573 $text = parent::getRTETextWithMediaObjects();
591 include_once (
"./Services/Excel/classes/class.ilExcelUtils.php");
594 return $startrow + 1;
610 function fromXML(&$item, &$questionpool_id, &$tst_id, &$tst_object, &$question_counter, &$import_mapping)
612 include_once
"./Modules/TestQuestionPool/classes/import/qti12/class.assFlashQuestionImport.php";
614 $import->fromXML($item, $questionpool_id, $tst_id, $tst_object, $question_counter, $import_mapping);
624 function toXML($a_include_header =
true, $a_include_binary =
true, $a_shuffle =
false, $test_output =
false, $force_image_references =
false)
626 include_once
"./Modules/TestQuestionPool/classes/export/qti12/class.assFlashQuestionExport.php";
628 return $export->toXML($a_include_header, $a_include_binary, $a_shuffle, $test_output, $force_image_references);
639 $user_solution = array();
640 return $user_solution;
645 if (!$a_height) $a_height = 400;
646 $this->height = $a_height;
656 if (!$a_width) $a_width = 550;
657 $this->width = $a_width;
667 $this->applet = $a_applet;
677 $this->parameters[$name] = $value;
682 if (is_array($params))
684 $this->parameters = $params;
688 $this->parameters = array();
694 unset($this->parameters[$name]);
699 $this->parameters = array();
722 require_once
"./Modules/TestQuestionPool/classes/class.ilOperatorsExpressionMapping.php";
Class for flash question exports.
Class for flash question imports.
Class for Flash based questions.
getRTETextWithMediaObjects()
Collects all text in the question which could contain media objects which were created with the Rich ...
moveUploadedFile($tmpfile, $flashfile)
Uploads a flash file.
getAdditionalTableName()
Returns the name of the additional question data table in the database.
getAvailableAnswerOptions($index=null)
If index is null, the function returns an array with all anwser options Else it returns the specific ...
duplicate($for_test=true, $title="", $author="", $owner="", $testObjId=null)
Duplicates an assFlashQuestion.
getOperators($expression)
Get all available operations for a specific question.
getBestSolution($active_id, $pass)
Returns the best solution for a given pass of a participant.
fromXML(&$item, &$questionpool_id, &$tst_id, &$tst_object, &$question_counter, &$import_mapping)
Creates a question from a QTI file.
saveToDb($original_id="")
Saves a assFlashQuestion object to a database.
savePreviewData(ilAssQuestionPreviewSession $previewSession)
getAnswerTableName()
Returns the name of the answer table in the database.
isComplete()
Returns true, if a single choice question is complete for use.
sendToHost($url, $data, $optional_headers=null)
getExpressionTypes()
Get all available expression types for a specific question.
getQuestionType()
Returns the question type of the question.
saveWorkingData($active_id, $pass=NULL)
Saves the learners input of the question to the database.
__construct( $title="", $comment="", $author="", $owner=-1, $question="")
assFlashQuestion constructor
getMaximumPoints()
Returns the maximum points, a learner can reach answering the question.
copyApplet($question_id, $source_questionpool)
Copy the flash applet.
saveAdditionalQuestionDataToDb()
Saves a record to the question types additional data table.
addParameter($name, $value)
calculateReachedPoints($active_id, $pass=NULL, $returndetails=FALSE)
Returns the points, a learner has reached answering the question.
toXML($a_include_header=true, $a_include_binary=true, $a_shuffle=false, $test_output=false, $force_image_references=false)
Returns a QTI xml representation of the question and sets the internal domxml variable with the DOM X...
reworkWorkingData($active_id, $pass, $obligationsAnswered)
Reworks the allready saved working data if neccessary.
loadFromDb($question_id)
Loads a assFlashQuestion object from a database.
deleteAnswers($question_id)
Deletes datasets from answers tables.
duplicateApplet($question_id, $objectId=null)
Duplicate the flash applet.
getUserQuestionResult($active_id, $pass)
Get the user solution for a question by active_id and the test pass.
calculateReachedPointsFromPreviewSession(ilAssQuestionPreviewSession $previewSession)
copyObject($target_questionpool_id, $title="")
Copies an assFlashQuestion object.
createNewOriginalFromThisDuplicate($targetParentId, $targetQuestionTitle="")
setExportDetailsXLS(&$worksheet, $startrow, $active_id, $pass, &$format_title, &$format_bold)
Creates an Excel worksheet for the detailed cumulated results of this question.
Abstract basic class which is to be extended by the concrete assessment question type classes.
static _getOriginalId($question_id)
Returns the original id of a question.
setId($id=-1)
Sets the id of the assQuestion object.
setOriginalId($original_id)
setObjId($obj_id=0)
Set the object id of the container object.
getSolutionMaxPass($active_id)
Returns the maximum pass a users question solution.
setSuggestedSolution($solution_id="", $subquestion_index=0, $is_import=false)
Sets a suggested solution for the question.
saveQuestionDataToDb($original_id="")
getId()
Gets the id of the assQuestion object.
getObjId()
Get the object id of the container object.
setTitle($title="")
Sets the title string of the assQuestion object.
setOwner($owner="")
Sets the creator/owner ID of the assQuestion object.
setEstimatedWorkingTime($hour=0, $min=0, $sec=0)
Sets the estimated working time of a question from given hour, minute and second.
getFlashPath()
Returns the image path for web accessable flash files of a question.
setAuthor($author="")
Sets the authors name of the assQuestion object.
getTitle()
Gets the title string of the assQuestion object.
setPoints($a_points)
Sets the maximum available points for the question.
setComment($comment="")
Sets the comment string of the assQuestion object.
setNrOfTries($a_nr_of_tries)
setAdditionalContentEditingMode($additinalContentEditingMode)
setter for additional content editing mode for this question
setQuestion($question="")
Sets the question string of the question object.
getParticipantsSolution()
_convert_text($a_text, $a_target="has been removed")
static getOperatorsByExpression($expression)
static _replaceMediaObjectImageSrc($a_text, $a_direction=0, $nic=IL_INST_ID)
replaces image source from mob image urls with the mob id or replaces mob id with the correct image s...
Base Exception for all Exceptions relating to Modules/Test.
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
static makeDirParents($a_dir)
Create a new directory and all parent directories.
Class iQuestionCondition.
const PercentageResultExpression
const NumericResultExpression
const EmptyAnswerExpression
Interface ilObjQuestionScoringAdjustable.