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.ilObjAnswerScoringAdjustable.php';
 
    8require_once 
'./Modules/TestQuestionPool/interfaces/interface.iQuestionCondition.php';
 
    9require_once 
'./Modules/TestQuestionPool/classes/class.ilUserQuestionResult.php';
 
   11require_once 
'Modules/TestQuestionPool/classes/questions/class.ilAssOrderingElementList.php';
 
  161                        $this->
setId($question_id);
 
  170                        include_once(
"./Services/RTE/classes/class.ilRTE.php");
 
  172                        $this->ordering_type = strlen(
$data[
"ordering_type"]) ? 
$data[
"ordering_type"] : 
OQ_TERMS;
 
  173                        $this->thumb_geometry = 
$data[
"thumb_geometry"];
 
  174                        $this->element_height = 
$data[
"element_height"];
 
  186                $this->orderingElementList->setQuestionId($this->
getId());
 
  187                $this->orderingElementList->loadFromDb();
 
  189                parent::loadFromDb($question_id);
 
  205                $this_id = $this->
getId();
 
  209                include_once (
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
 
  213                if( (
int)$testObjId > 0 )
 
  215                        $clone->setObjId($testObjId);
 
  239                $clone->duplicateOrderlingElementList();
 
  242                $clone->copyPageOfQuestion($this_id);
 
  244                $clone->copyXHTMLMediaObjectsOfQuestion($this_id);
 
  246                $clone->duplicateImages($this_id, $thisObjId, $clone->getId(), $testObjId);
 
  248                $clone->onDuplicate($thisObjId, $this_id, $clone->getObjId(), $clone->getId());
 
  274                include_once (
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
 
  277                $source_questionpool_id = $this->
getObjId();
 
  278                $clone->setObjId($target_questionpool_id);
 
  291                $clone->duplicateImages(
$original_id, $source_questionpool_id, $clone->getId(), $target_questionpool_id);
 
  293                $clone->onCopy($source_questionpool_id, 
$original_id, $clone->getObjId(), $clone->getId());
 
  306                include_once (
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
 
  309                $sourceParentId = $this->
getObjId();
 
  315                $clone->setObjId($targetParentId);
 
  317                if ($targetQuestionTitle)
 
  319                        $clone->setTitle($targetQuestionTitle);
 
  324                $clone->copyPageOfQuestion($sourceQuestionId);
 
  326                $clone->copyXHTMLMediaObjectsOfQuestion($sourceQuestionId);
 
  328                $clone->duplicateImages($sourceQuestionId, $sourceParentId, $clone->getId(), $clone->getObjId());
 
  330                $clone->onCopy($sourceParentId, $sourceQuestionId, $clone->getObjId(), $clone->getId());
 
  335        function duplicateImages($src_question_id, $src_object_id, $dest_question_id, $dest_object_id)
 
  340                        $imagepath_original = $this->
getImagePath($src_question_id, $src_object_id);
 
  341                        $imagepath = $this->
getImagePath($dest_question_id, $dest_object_id);
 
  343                        if (!file_exists($imagepath)) {
 
  351                                        $ilLog->write(
"image could not be duplicated!!!!");
 
  353                                if (@file_exists($imagepath_original. $this->getThumbPrefix(). 
$filename))
 
  357                                                $ilLog->write(
"image thumbnail could not be duplicated!!!!");
 
  375                        $imagepath_original = str_replace(
"/$this->id/images", 
"/$question_id/images", $imagepath);
 
  376                        $imagepath_original = str_replace(
"/$this->obj_id/", 
"/$source_questionpool/", $imagepath_original);
 
  377                        if (!file_exists($imagepath)) {
 
  385                                        $ilLog->write(
"Ordering Question image could not be copied: ${imagepath_original}${filename}");
 
  387                                if (@file_exists($imagepath_original. $this->getThumbPrefix(). 
$filename))
 
  391                                                $ilLog->write(
"Ordering Question image thumbnail could not be copied: $imagepath_original" . $this->
getThumbPrefix() . $filename);
 
  445                if( $forceCorrectSolution || !$activeId || $passIndex === 
null )
 
  452                if( !count($solutionValues) )
 
  477                #if( $pass === null && !ilObjTest::_getUsePreviousAnswers($activeId, true) ) 
  480                #       $pass = ilObjTest::_getPass($activeId); 
  490                if( count($indexedSolutionValues) )
 
  505                $value2 = explode(
':', $value2);
 
  507                $randomIdentifier = $value2[0];
 
  508                $selectedPosition = $value1;
 
  509                $selectedIndentation = $value2[1];
 
  513                $element->setPosition($selectedPosition);
 
  514                $element->setIndentation($selectedIndentation);
 
  526                $solutionIdentifier = $value1;
 
  527                $selectedPosition = ($value2 - 1);
 
  528                $selectedIndentation = 0;
 
  530                $element = $this->
getOrderingElementList()->getElementBySolutionIdentifier($solutionIdentifier)->getClone();
 
  532                $element->setPosition($selectedPosition);
 
  533                $element->setIndentation($selectedIndentation);
 
  546                $solutionOrderingList->setQuestionId($this->
getId());
 
  548                foreach($indexedSolutionValues as $value1 => $value2)
 
  559                        $solutionOrderingList->addElement($element);
 
  567                return $solutionOrderingList;
 
  577                $shuffledRandomIdentifierIndex = $this->
getShuffler()->shuffle(
 
  582                $shuffledElementList->reorderByRandomIdentifiers($shuffledRandomIdentifierIndex);
 
  583                $shuffledElementList->resetElementsIndentations();
 
  585                return $shuffledElementList;
 
  704                        throw new ilTestException(
'return details not implemented for '.__METHOD__);
 
  714                if( !count($solutionValuePairs) )
 
  732                $solutionOrderingElementList = unserialize(
 
  764                if (preg_match(
"/.*\\.(\\w+)$/", 
$filename, $matches))
 
  766                        $extension = $matches[1];
 
  768                return md5(
$filename) . 
"." . $extension;
 
  780                                        if (strcmp($f[
'type'], 
'file') == 0)
 
  785                                                        if (strcmp($f[
'entry'], $orderElement->getContent()) == 0) $found = 
true;
 
  786                                                        if (strcmp($f[
'entry'], $this->
getThumbPrefix() .  $orderElement->getContent()) == 0) $found = 
true;
 
  813                if( !strlen($imageFilename) )
 
  826                if( !strlen($imageFilename) )
 
  831                if( !file_exists($this->
getImagePath().$imageFilename) )
 
  864                if( !strlen($uploadFile) )
 
  883                foreach($elementList as $element)
 
  927                        include_once 
"./Modules/Test/classes/class.ilObjTest.php";
 
  932                        function() use (&$entered_values, $active_id, 
$pass, $authorized)
 
  938                                        $value1 = $orderingElement->getStorageValue1($this->
getOrderingType());
 
  939                                        $value2 = $orderingElement->getStorageValue2($this->
getOrderingType());
 
  950                        $this->
log($active_id, 
'log_user_entered_values');
 
  954                        $this->
log($active_id, 
'log_user_not_entered_values');
 
  976                                                        array( $this->
getId() )
 
  979                $ilDB->manipulateF( 
"INSERT INTO " . $this->
getAdditionalTableName() . 
" (question_fi, ordering_type, thumb_geometry, element_height)  
  980                                                        VALUES (%s, %s, %s, %s)",
 
  981                                                        array( 
"integer", 
"text", 
"integer", 
"integer" ),
 
  984                                                                $this->ordering_type,
 
 1019                return "assOrderingQuestion";
 
 1030                return "qpl_qst_ordering";
 
 1041                return "qpl_a_ordering";
 
 1050                $text = parent::getRTETextWithMediaObjects();
 
 1054                        $text .= $orderingElement->getContent();
 
 1090                parent::setExportDetailsXLS(
$worksheet, $startrow, $active_id, 
$pass);
 
 1094                foreach ($solutions as $solution)
 
 1096                        $sol[$solution[
"value1"]] = $solution[
"value2"];
 
 1099                $sol = array_keys($sol);
 
 1102                foreach ($sol as $idx)
 
 1104                        foreach ($solutions as $solution)
 
 1106                                if ($solution[
"value1"] == $idx) 
$worksheet->setCell($startrow + $i, 0, $solution[
"value2"]);
 
 1109                        $worksheet->setCell($startrow + $i, 1, $element->getContent());
 
 1113                return $startrow + $i + 1;
 
 1138                $this->thumb_geometry = ($a_geometry < 1) ? 100 : $a_geometry;
 
 1158                $this->element_height = ($a_height < 20) ? 
"" : $a_height;
 
 1188                        switch (strtoupper($path_info[
'extension']))
 
 1209                include_once(
"./Services/RTE/classes/class.ilRTE.php");
 
 1216                $result[
'shuffle'] = (bool) 
true;
 
 1219                        'onenotcorrect' => $this->
formatSAQuestion($this->feedbackOBJ->getGenericFeedbackTestPresentation($this->getId(), 
false)),
 
 1220                        'allcorrect' => $this->formatSAQuestion($this->feedbackOBJ->getGenericFeedbackTestPresentation($this->getId(), 
true))
 
 1231                        $answers[
$counter] = $orderingElement->getContent();
 
 1234                $answers = $this->
getShuffler()->shuffle($answers);
 
 1236                foreach ($answers as $order => $answer)
 
 1238                        array_push($arr, array(
 
 1239                                "answertext" => (
string) $answer,
 
 1240                                "order" => (
int) $order
 
 1286                                $formField->setInteractionEnabled(
true);
 
 1294                                $formField->setEditElementOccuranceEnabled(
true);
 
 1295                                $formField->setEditElementOrderEnabled(
true);
 
 1306                $formField->
setInfo($this->lng->txt(
'ordering_answer_sequence_info'));
 
 1307                $formField->
setTitle($this->lng->txt(
'answers'));
 
 1317                require_once 
'Modules/TestQuestionPool/classes/forms/class.ilAssOrderingTextsInputGUI.php';
 
 1320                        $formDataConverter, self::ORDERING_ELEMENT_FORM_FIELD_POSTVAR
 
 1325                return $orderingElementInput;
 
 1335                require_once 
'Modules/TestQuestionPool/classes/forms/class.ilAssOrderingImagesInputGUI.php';
 
 1338                        $formDataConverter, self::ORDERING_ELEMENT_FORM_FIELD_POSTVAR
 
 1341                $orderingElementInput->setImageRemovalCommand(self::ORDERING_ELEMENT_FORM_CMD_REMOVE_IMG);
 
 1342                $orderingElementInput->setImageUploadCommand(self::ORDERING_ELEMENT_FORM_CMD_UPLOAD_IMG);
 
 1346                return $orderingElementInput;
 
 1356                require_once 
'Modules/TestQuestionPool/classes/forms/class.ilAssNestedOrderingElementsInputGUI.php';
 
 1359                        $formDataConverter, self::ORDERING_ELEMENT_FORM_FIELD_POSTVAR
 
 1362                $orderingElementInput->setUniquePrefix($this->
getId());
 
 1369                return $orderingElementInput;
 
 1378                return $form->
getItemByPostVar(self::ORDERING_ELEMENT_FORM_FIELD_POSTVAR)->getElementList($this->
getId());
 
 1390                $orderingGUI->setValueByArray($userSolutionPost);
 
 1392                if( !$orderingGUI->checkInput() )
 
 1394                        require_once 
'Modules/Test/exceptions/class.ilTestException.php';
 
 1398                require_once 
'Modules/TestQuestionPool/classes/questions/class.ilAssOrderingElementList.php';
 
 1403                foreach($orderingGUI->getElementList($this->getId()) as $submittedElement)
 
 1405                        $solutionElement = $storedElementList->getElementByRandomIdentifier(
 
 1406                                $submittedElement->getRandomIdentifier()
 
 1409                        $solutionElement->setPosition($submittedElement->getPosition());
 
 1413                                $solutionElement->setIndentation($submittedElement->getIndentation());
 
 1416                        $solutionOrderingElementList->addElement($solutionElement);
 
 1419                return $solutionOrderingElementList;
 
 1432                if( $this->postSolutionOrderingElementList === 
null )
 
 1435                        $this->postSolutionOrderingElementList = $list;
 
 1460                        $userElement = $solutionOrderingElementList->
getElementByPosition( $correctElement->getPosition() );
 
 1462                        if( !$correctElement->isSameElement($userElement) )
 
 1469                return $reachedPoints;
 
 1486                $res = 
$ilDB->queryF(
'SELECT depth FROM qpl_a_ordering WHERE question_fi = %s ORDER BY position ASC',
 
 1487                        array(
'integer'), array($this->
getId()));
 
 1488                while(
$row = $ilDB->fetchAssoc(
$res))
 
 1490                        $this->old_ordering_depth[] = 
$row[
'depth'];
 
 1503                $res = 
$ilDB->queryF(
'SELECT solution_key FROM qpl_a_ordering WHERE random_id = %s',
 
 1504                array(
'integer'), array($a_random_id));
 
 1507                return $row[
'solution_key'];
 
 1514                $ilDB->update(
'qpl_a_ordering',
 
 1515                array(
'solution_key'=> array(
'integer', $a_index),
 
 1516                          'depth'               => array(
'integer', $a_depth)),
 
 1517                array(
'answertext'      => array(
'text', $a_answer_text)));
 
 1533                require_once 
"./Modules/TestQuestionPool/classes/class.ilOperatorsExpressionMapping.php";
 
 1565                $maxStep = $this->lookupMaxStep($active_id, 
$pass);
 
 1567                if( $maxStep !== 
null )
 
 1570                                "SELECT value1, value2 FROM tst_solutions WHERE active_fi = %s AND pass = %s AND question_fi = %s AND step = %s ORDER BY value1 ASC ",
 
 1571                                array(
"integer", 
"integer", 
"integer",
"integer"),
 
 1572                                array($active_id, 
$pass, $this->
getId(), $maxStep)
 
 1578                                "SELECT value1, value2 FROM tst_solutions WHERE active_fi = %s AND pass = %s AND question_fi = %s ORDER BY value1 ASC ",
 
 1579                                array(
"integer", 
"integer", 
"integer"),
 
 1584                $elements = array();
 
 1588                        $newKey = explode(
":", 
$row[
"value2"]);
 
 1595                                        if($answer->getSolutionIdentifier() == 
$row[
"value1"])
 
 1597                                                $elements[
$row[
"value2"]] = $answer->getSolutionIdentifier() + 1;
 
 1603                                        if($answer->getRandomIdentifier() == $newKey[0])
 
 1605                                                $elements[
$row[
"value1"]] = $answer->getSolutionIdentifier() + 1;
 
 1614                foreach(array_values($elements) as $element)
 
 1616                        $result->addKeyValue($element, $element);
 
 1650                parent::afterSyncWithOriginal($origQuestionId, $dupQuestionId, $origParentObjId, $dupParentObjId);
 
 1651                $this->
duplicateImages($dupQuestionId, $dupParentObjId, $origQuestionId, $origParentObjId);
 
 1664                return parent::buildTestPresentationConfig()
 
 1666                        ->setIsUnchangedAnswerPossible(
true)
 
 1667                        ->setUseUnchangedAnswerLabel($this->lng->txt(
'tst_unchanged_order_is_correct'));
 
 1684                $solutionSubmit = array();
 
 1686                if( isset($formSubmissionDataStructure[
'orderresult']) )
 
 1688                        $orderresult = $formSubmissionDataStructure[
'orderresult'];
 
 1690                        if( strlen($orderresult) )
 
 1692                                $orderarray = explode(
":", $orderresult);
 
 1694                                foreach( $orderarray as $index )
 
 1697                                        if( preg_match(
"/id_(\\d+)/", $index, $idmatch) )
 
 1699                                                $randomid = $idmatch[1];
 
 1702                                                        if( $answer->getRandomIdentifier() == $randomid )
 
 1704                                                                $solutionSubmit[$answeridx] = $ordervalue;
 
 1715                        foreach( $formSubmissionDataStructure[
'content'] as $randomId => $content )
 
 1717                                $indentation = $formSubmissionDataStructure[
'indentation'];
 
 1720                                $value2 = implode(
':', array($randomId, $indentation));
 
 1722                                $solutionSubmit[$value1] = $value2;
 
 1727                        foreach( $formSubmissionDataStructure as $key => $value )
 
 1730                                if( preg_match(
"/^order_(\d+)/", $key, $matches) )
 
 1732                                        if( !( preg_match(
"/initial_value_\d+/", $value) ) )
 
 1734                                                if( strlen($value) )
 
 1738                                                                if( $answer->getRandomIdentifier() == $matches[1] )
 
 1740                                                                        $solutionSubmit[$answeridx] = $value;
 
 1749                return $solutionSubmit;
 
 1757                require_once 
'Modules/TestQuestionPool/classes/forms/class.ilAssOrderingFormValuesObjectsConverter.php';
 
 1759                $converter->setPostVar(self::ORDERING_ELEMENT_FORM_FIELD_POSTVAR);
 
 1772                $formDataConverter->setImageRemovalCommand(self::ORDERING_ELEMENT_FORM_CMD_REMOVE_IMG);
 
 1774                $formDataConverter->setImageFsPath($this->
getImagePath());
 
 1780                return $formDataConverter;
 
 1790                return $formDataConverter;
 
 1803                        $formDataConverter->setImageRemovalCommand(self::ORDERING_ELEMENT_FORM_CMD_REMOVE_IMG);
 
 1812                return $formDataConverter;
 
An exception for terminatinating execution or to throw for unit testing.
Class for ordering questions.
getOrderElements()
Returns the answers array.
const ORDERING_ELEMENT_FORM_CMD_UPLOAD_IMG
buildOrderingImagesFormDataConverter()
reworkWorkingData($active_id, $pass, $obligationsAnswered, $authorized)
{Reworks the allready saved working data if neccessary.}
const ORDERING_ELEMENT_FORM_CMD_REMOVE_IMG
setOrderingElementList($orderingElementList)
getShuffledOrderingElementList()
getOperators($expression)
Get all available operations for a specific question.
getSolutionValuePairBrandedOrderingElementBySolutionIdentifier($value1, $value2)
getAnswer($index=0)
Returns the ordering element from the given position.
getExpressionTypes()
Get all available expression types for a specific question.
getQuestionType()
Returns the question type of the question.
setThumbGeometry($a_geometry)
copyImages($question_id, $source_questionpool)
initOrderingElementAuthoringProperties(ilFormPropertyGUI $formField)
getAnswerTableName()
Returns the name of the answer table in the database.
getSolutionOrderingElementList($indexedSolutionValues)
hasOrderingTypeUploadSupport()
buildNestedOrderingElementInputGui()
toJSON()
Returns a JSON representation of the question.
fetchSolutionListFromFormSubmissionData($userSolutionPost)
dropImageFile($imageFilename)
setOrderingType($ordering_type=OQ_TERMS)
Sets the ordering question type.
saveWorkingData($active_id, $pass=NULL, $authorized=true)
Saves the learners input of the question to the database.
createImageThumbnail(ilAssOrderingElement $element)
getMaximumPoints()
Returns the maximum points, a learner can reach answering the question.
isImageReplaced(ilAssOrderingElement $newElement, ilAssOrderingElement $oldElement)
isComplete()
Returns true, if a ordering question is complete for use.
saveToDb($original_id="")
Saves a assOrderingQuestion object to a database.
buildTestPresentationConfig()
Get the test question configuration.
buildNestedOrderingFormDataConverter()
getOrderingElementListForSolutionOutput($forceCorrectSolution, $activeId, $passIndex)
duplicateOrderlingElementList()
fetchSolutionSubmit($formSubmissionDataStructure)
const ORDERING_ELEMENT_FORM_FIELD_POSTVAR
setElementHeight($a_height)
buildOrderingTextsInputGui()
calculateReachedPoints($active_id, $pass=NULL, $authorizedSolution=true, $returndetails=FALSE)
Returns the points, a learner has reached answering the question.
setExportDetailsXLS($worksheet, $startrow, $active_id, $pass)
{Creates an Excel worksheet for the detailed cumulated results of this question.object}
savePreviewData(ilAssQuestionPreviewSession $previewSession)
__construct( $title="", $comment="", $author="", $owner=-1, $question="", $ordering_type=OQ_TERMS)
assOrderingQuestion constructor
initOrderingElementFormFieldLabels(ilFormPropertyGUI $formField)
$postSolutionOrderingElementList
handleThumbnailCreation(ilAssOrderingElementList $elementList)
duplicate($for_test=true, $title="", $author="", $owner="", $testObjId=null)
Duplicates an assOrderingQuestion.
getAvailableAnswerOptions($index=null)
If index is null, the function returns an array with all anwser options Else it returns the specific ...
getAdditionalTableName()
Returns the name of the additional question data table in the database.
getSolutionValuePairBrandedOrderingElementByRandomIdentifier($value1, $value2)
isImageFileStored($imageFilename)
getSolutionListFromPostSubmit()
buildOrderingTextsFormDataConverter()
buildOrderingElementFormDataConverter()
createNewOriginalFromThisDuplicate($targetParentId, $targetQuestionTitle="")
updateLeveledOrdering($a_index, $a_answer_text, $a_depth)
getOrderingType()
Returns the ordering question type.
loadFromDb($question_id)
Loads a assOrderingQuestion object from a database.
getEncryptedFilename($filename)
lookupSolutionOrderByRandomid($a_random_id)
duplicateImages($src_question_id, $src_object_id, $dest_question_id, $dest_object_id)
getSolutionOrderingElementListForTestOutput(ilAssNestedOrderingElementsInputGUI $inputGUI, $lastPost, $activeId, $pass)
afterSyncWithOriginal($origQuestionId, $dupQuestionId, $origParentObjId, $dupParentObjId)
{}
deleteAnswer($randomIdentifier)
Deletes an answer with a given index.
calculateReachedPointsForSolution(ilAssOrderingElementList $solutionOrderingElementList)
getRTETextWithMediaObjects()
Collects all text in the question which could contain media objects which were created with the Rich ...
fetchSolutionListFromSubmittedForm(ilPropertyFormGUI $form)
buildOrderingImagesInputGui()
supportsJavascriptOutput()
Returns true if the question type supports JavaScript output.
calculateReachedPointsFromPreviewSession(ilAssQuestionPreviewSession $previewSession)
copyObject($target_questionpool_id, $title="")
Copies an assOrderingQuestion object.
buildOrderingElementInputGui()
generateThumbForFile($path, $file)
storeImageFile($uploadFile, $targetFile)
Sets the image file and uploads the image to the object's image directory.
saveAnswerSpecificDataToDb()
Saves the answer specific records into a question types answer table.
moveAnswerDown($position)
getAnswerCount()
Returns the number of answers.
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.
formatSAQuestion($a_q)
Format self assessment 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.
saveQuestionDataToDb($original_id="")
log($active_id, $langVar)
getId()
Gets the id of the assQuestion object.
saveCurrentSolution($active_id, $pass, $value1, $value2, $authorized=true, $tstamp=null)
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.
fetchIndexedValuesFromValuePairs(array $valuePairs)
deductHintPointsFromReachedPoints(ilAssQuestionPreviewSession $previewSession, $reachedPoints)
getImagePath($question_id=null, $object_id=null)
Returns the image path for web accessable images of a question.
removeCurrentSolution($active_id, $pass, $authorized=true)
setAuthor($author="")
Sets the authors name of the assQuestion object.
getPoints()
Returns the maximum available points for the question.
getTestOutputSolutions($activeId, $pass)
getSolutionValues($active_id, $pass=NULL, $authorized=true)
Loads solutions of a given user from the database an returns it.
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.
getAuthor()
Gets the authors name of the assQuestion object.
setNrOfTries($a_nr_of_tries)
getQuestion()
Gets the question string of the question object.
setAdditionalContentEditingMode($additinalContentEditingMode)
setter for additional content editing mode for this question
setQuestion($question="")
Sets the question string of the question object.
getImagePathWeb()
Returns the web image path for web accessable images of a question.
ensureNonNegativePoints($points)
getElementByPosition($position)
static buildInstance($questionId, $orderingElements=array())
getParticipantsSolution()
setParticipantsSolution($participantSolution)
static _getPass($active_id)
Retrieves the actual pass of a given user for a given test.
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.
Class ilUserQuestionResult.
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
static convertImage($a_from, $a_to, $a_target_format="", $a_geometry="", $a_background_color="")
convert image
static makeDirParents($a_dir)
Create a new directory and all parent directories.
const OQ_PICTURES
Ordering question constants.
Class iQuestionCondition.
const PercentageResultExpression
const OrderingResultExpression
getUserQuestionResult($active_id, $pass)
Get the user solution for a question by active_id and the test pass.
const NumericResultExpression
const EmptyAnswerExpression
Interface ilObjAnswerScoringAdjustable.
Interface ilObjQuestionScoringAdjustable.
saveAdditionalQuestionDataToDb()
Saves a record to the question types additional data table.
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file