4 require_once
'./Modules/TestQuestionPool/classes/class.assQuestion.php';
5 require_once
'./Modules/Test/classes/inc.AssessmentConstants.php';
6 require_once
'./Modules/TestQuestionPool/interfaces/interface.ilObjQuestionScoringAdjustable.php';
7 require_once
'./Modules/TestQuestionPool/interfaces/interface.iQuestionCondition.php';
8 require_once
'./Modules/TestQuestionPool/classes/class.ilUserQuestionResult.php';
49 $this->ordertext =
"";
59 if (strlen($this->title) and ($this->author) and ($this->question) and ($this->
getMaximumPoints() > 0))
106 $this->
setId($question_id);
115 include_once(
"./Services/RTE/classes/class.ilRTE.php");
130 parent::loadFromDb($question_id);
144 $this_id = $this->
getId();
148 include_once (
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
152 if( (
int)$testObjId > 0 )
154 $clone->setObjId($testObjId);
181 $clone->copyPageOfQuestion($this_id);
183 $clone->copyXHTMLMediaObjectsOfQuestion($this_id);
185 $clone->onDuplicate($thisObjId, $this_id, $clone->getObjId(), $clone->getId());
202 include_once (
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
205 $source_questionpool_id = $this->
getObjId();
206 $clone->setObjId($target_questionpool_id);
217 $clone->onCopy($source_questionpool_id,
$original_id, $clone->getObjId(), $clone->getId());
230 include_once (
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
233 $sourceParentId = $this->
getObjId();
239 $clone->setObjId($targetParentId);
241 if ($targetQuestionTitle)
243 $clone->setTitle($targetQuestionTitle);
248 $clone->copyPageOfQuestion($sourceQuestionId);
250 $clone->copyXHTMLMediaObjectsOfQuestion($sourceQuestionId);
252 $clone->onCopy($sourceParentId, $sourceQuestionId, $clone->getObjId(), $clone->getId());
281 throw new ilTestException(
'return details not implemented for '.__METHOD__);
286 $found_values = array();
291 $result = $this->getCurrentSolutionResultSet($active_id,
$pass);
312 include_once
"./Services/Utilities/classes/class.ilStr.php";
316 $result = preg_split(
"/\\s+/", $in_string);
323 foreach (
$result as $key => $value)
333 return $_POST[
"orderresult"];
351 include_once
"./Modules/Test/classes/class.ilObjTest.php";
357 $affectedRows = $this->removeCurrentSolution($active_id,
$pass);
361 $entered_values =
false;
362 if (strlen($solutionSubmit))
364 $affectedRows = $this->saveCurrentSolution($active_id,
$pass,
$_POST[
'orderresult'], null);
365 $entered_values =
true;
372 include_once (
"./Modules/Test/classes/class.ilObjAssessmentFolder.php");
380 include_once (
"./Modules/Test/classes/class.ilObjAssessmentFolder.php");
396 .
" WHERE question_fi = %s",
398 array( $this->
getId() )
402 .
" (question_fi, ordertext, textsize) VALUES (%s, %s, %s)",
403 array(
"integer",
"text",
"float" ),
432 return "assOrderingHorizontal";
442 return "qpl_qst_horder";
470 $text = parent::getRTETextWithMediaObjects();
487 include_once (
"./Services/Excel/classes/class.ilExcelUtils.php");
493 $solutionvalue = str_replace(
"{::}",
" ", $solutions[0][
"value1"]);
497 return $startrow + $i + 1;
512 public function fromXML(&$item, &$questionpool_id, &$tst_id, &$tst_object, &$question_counter, &$import_mapping)
514 include_once
"./Modules/TestQuestionPool/classes/import/qti12/class.assOrderingHorizontalImport.php";
516 $import->fromXML($item, $questionpool_id, $tst_id, $tst_object, $question_counter, $import_mapping);
525 public function toXML($a_include_header =
true, $a_include_binary =
true, $a_shuffle =
false, $test_output =
false, $force_image_references =
false)
527 include_once
"./Modules/TestQuestionPool/classes/export/qti12/class.assOrderingHorizontalExport.php";
529 return $export->toXML($a_include_header, $a_include_binary, $a_shuffle, $test_output, $force_image_references);
539 $user_solution = array();
540 return $user_solution;
582 $this->ordertext = $a_value;
604 $this->textsize = $a_value;
625 $this->separator = $a_value;
645 return parent::__get($value);
667 parent::__set($key, $value);
687 include_once(
"./Services/RTE/classes/class.ilRTE.php");
694 $result[
'shuffle'] = (bool)
true;
700 'onenotcorrect' => $this->
formatSAQuestion($this->feedbackOBJ->getGenericFeedbackTestPresentation($this->getId(),
false)),
701 'allcorrect' => $this->
formatSAQuestion($this->feedbackOBJ->getGenericFeedbackTestPresentation($this->getId(),
true))
707 array_push($arr, array(
708 "answertext" => (
string) $answer,
709 "order" => (
int) $order+1
730 require_once
"./Modules/TestQuestionPool/classes/class.ilOperatorsExpressionMapping.php";
762 $data = $ilDB->queryF(
763 "SELECT value1 FROM tst_solutions WHERE active_fi = %s AND pass = %s AND question_fi = %s AND step = ( 764 SELECT MAX(step) FROM tst_solutions WHERE active_fi = %s AND pass = %s AND question_fi = %s 766 array(
"integer",
"integer",
"integer",
"integer",
"integer",
"integer"),
773 $solutions = array();
775 foreach($answer_elements as $answer)
777 foreach($elements as $key => $element)
779 if($element == $answer)
781 $result->addKeyValue($key+1, $answer);
787 if($this->answer_separator =
'{::}')
791 $result->addKeyValue(null, join($glue, $answer_elements));
814 if(array_key_exists($index, $elements))
816 return $elements[$index];
833 $value = join($value, $this->answer_separator);
getId()
Gets the id of the assQuestion object.
Class for horizontal ordering questions.
createNewOriginalFromThisDuplicate($targetParentId, $targetQuestionTitle="")
static _getOriginalId($question_id)
Returns the original id of a question.
formatSAQuestion($a_q)
Format self assessment question.
const PercentageResultExpression
Class iQuestionCondition.
getPoints()
Returns the maximum available points for the question.
reworkWorkingData($active_id, $pass, $obligationsAnswered)
Reworks the allready saved working data if neccessary.
& getSolutionValues($active_id, $pass=NULL)
Loads solutions of a given user from the database an returns it.
Abstract basic class which is to be extended by the concrete assessment question type classes...
_getPass($active_id)
Retrieves the actual pass of a given user for a given test.
_convert_text($a_text, $a_target="has been removed")
static strPos($a_haystack, $a_needle, $a_offset=NULL)
getSeparator()
Get order text separator.
copyObject($target_questionpool_id, $title="")
Copies an assOrderingHorizontal object.
setId($id=-1)
Sets the id of the assQuestion object.
getSolutionMaxPass($active_id)
Returns the maximum pass a users question solution.
setEstimatedWorkingTime($hour=0, $min=0, $sec=0)
Sets the estimated working time of a question from given hour, minute and second. ...
splitAndTrimOrderElementText($in_string, $separator)
Splits the answer string either by space(s) or the separator (eg.
setOrderText($a_value)
Set order text.
getUserQuestionResult($active_id, $pass)
Get the user solution for a question by active_id and the test pass.
setNrOfTries($a_nr_of_tries)
_enabledAssessmentLogging()
check wether assessment logging is enabled or not
const StringResultExpression
setAdditionalContentEditingMode($additinalContentEditingMode)
setter for additional content editing mode for this question
getOrderText()
Get order text.
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...
getObjId()
Get the object id of the container object.
getBestSolution($active_id, $pass)
Returns the best solution for a given pass of a participant.
loadFromDb($question_id)
Loads a assOrderingHorizontal object from a database.
Base Exception for all Exceptions relating to Modules/Test.
__get($value)
Object getter.
getTextSize()
Get text size.
toJSON()
Returns a JSON representation of the question.
supportsJavascriptOutput()
getAdditionalTableName()
Returns the name of the additional question data table in the database.
setAuthor($author="")
Sets the authors name of the assQuestion object.
__construct( $title="", $comment="", $author="", $owner=-1, $question="")
assOrderingHorizontal constructor
Class ilUserQuestionResult.
saveWorkingData($active_id, $pass=NULL)
Saves the learners input of the question to the database.
isComplete()
Returns true, if a single choice question is complete for use.
const NumericResultExpression
Class for formula question question exports.
getQuestion()
Gets the question string of the question object.
Class for formula question imports.
const OrderingResultExpression
calculateReachedPointsForSolution($value)
setTextSize($a_value)
Set text size.
fromXML(&$item, &$questionpool_id, &$tst_id, &$tst_object, &$question_counter, &$import_mapping)
Creates a question from a QTI file.
_getLogLanguage()
retrieve the log language for assessment logging
static getOperatorsByExpression($expression)
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...
getRTETextWithMediaObjects()
Collects all text in the question which could contain media objects which were created with the Rich ...
getRandomOrderingElements()
Get ordering elements from order text in random sequence.
setPoints($a_points)
Sets the maximum available points for the question.
saveQuestionDataToDb($original_id="")
__set($key, $value)
Object setter.
setSeparator($a_value)
Set order text separator.
deleteAnswers($question_id)
Deletes datasets from answers tables.
saveAdditionalQuestionDataToDb()
Saves a record to the question types additional data table.
setQuestion($question="")
Sets the question string of the question object.
Interface ilObjQuestionScoringAdjustable.
getQuestionType()
Returns the question type of the question.
setOriginalId($original_id)
logAction($logtext="", $active_id="", $question_id="")
Logs an action into the Test&Assessment log.
getAvailableAnswerOptions($index=null)
If index is null, the function returns an array with all anwser options Else it returns the specific ...
getTitle()
Gets the title string of the assQuestion object.
getExpressionTypes()
Get all available expression types for a specific question.
getMaximumPoints()
Returns the maximum points, a learner can reach answering the question.
saveToDb($original_id="")
Saves a assOrderingHorizontal object to a database.
calculateReachedPoints($active_id, $pass=NULL, $returndetails=FALSE)
Returns the points, a learner has reached answering the question.
setTitle($title="")
Sets the title string of the assQuestion object.
setObjId($obj_id=0)
Set the object id of the container object.
duplicate($for_test=true, $title="", $author="", $owner="", $testObjId=null)
Duplicates an assOrderingHorizontal.
setComment($comment="")
Sets the comment string of the assQuestion object.
setExportDetailsXLS(&$worksheet, $startrow, $active_id, $pass, &$format_title, &$format_bold)
Creates an Excel worksheet for the detailed cumulated results of this question.
setOwner($owner="")
Sets the creator/owner ID of the assQuestion object.
getAnswerTableName()
Returns the name of the answer table in the database.
getOrderingElements()
Get ordering elements from order text.
getOperators($expression)
Get all available operations for a specific question.