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';
 
  157            $this->
setId($question_id);
 
  166            include_once(
"./Services/RTE/classes/class.ilRTE.php");
 
  168            $this->ordering_type = strlen(
$data[
"ordering_type"]) ? 
$data[
"ordering_type"] : 
OQ_TERMS;
 
  169            $this->thumb_geometry = 
$data[
"thumb_geometry"];
 
  170            $this->element_height = 
$data[
"element_height"];
 
  185        $this->orderingElementList->setQuestionId($this->
getId());
 
  186        $this->orderingElementList->loadFromDb();
 
  188        parent::loadFromDb($question_id);
 
  198        if ($this->
id <= 0) {
 
  203        $this_id = $this->
getId();
 
  207        include_once(
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
 
  211        if ((
int) $testObjId > 0) {
 
  212            $clone->setObjId($testObjId);
 
  230        $clone->duplicateOrderlingElementList();
 
  233        $clone->copyPageOfQuestion($this_id);
 
  235        $clone->copyXHTMLMediaObjectsOfQuestion($this_id);
 
  237        $clone->duplicateImages($this_id, $thisObjId, $clone->getId(), $testObjId);
 
  239        $clone->onDuplicate($thisObjId, $this_id, $clone->getObjId(), $clone->getId());
 
  258        if ($this->
id <= 0) {
 
  264        include_once(
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
 
  267        $source_questionpool_id = $this->
getObjId();
 
  268        $clone->setObjId($target_questionpool_id);
 
  280        $clone->duplicateImages(
$original_id, $source_questionpool_id, $clone->getId(), $target_questionpool_id);
 
  282        $clone->onCopy($source_questionpool_id, 
$original_id, $clone->getObjId(), $clone->getId());
 
  289        if ($this->
id <= 0) {
 
  294        include_once(
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
 
  297        $sourceParentId = $this->
getObjId();
 
  303        $clone->setObjId($targetParentId);
 
  305        if ($targetQuestionTitle) {
 
  306            $clone->setTitle($targetQuestionTitle);
 
  311        $clone->copyPageOfQuestion($sourceQuestionId);
 
  313        $clone->copyXHTMLMediaObjectsOfQuestion($sourceQuestionId);
 
  315        $clone->duplicateImages($sourceQuestionId, $sourceParentId, $clone->getId(), $clone->getObjId());
 
  317        $clone->onCopy($sourceParentId, $sourceQuestionId, $clone->getObjId(), $clone->getId());
 
  322    public function duplicateImages($src_question_id, $src_object_id, $dest_question_id, $dest_object_id)
 
  327            $imagepath_original = $this->
getImagePath($src_question_id, $src_object_id);
 
  328            $imagepath = $this->
getImagePath($dest_question_id, $dest_object_id);
 
  330            if (!file_exists($imagepath)) {
 
  336                    $ilLog->write(
"image could not be duplicated!!!!");
 
  338                if (@file_exists($imagepath_original . $this->
getThumbPrefix() . $filename)) {
 
  340                        $ilLog->write(
"image thumbnail could not be duplicated!!!!");
 
  352    public function copyImages($question_id, $source_questionpool)
 
  358            $imagepath_original = str_replace(
"/$this->id/images", 
"/$question_id/images", $imagepath);
 
  359            $imagepath_original = str_replace(
"/$this->obj_id/", 
"/$source_questionpool/", $imagepath_original);
 
  360            if (!file_exists($imagepath)) {
 
  366                    $ilLog->write(
"Ordering Question image could not be copied: ${imagepath_original}${filename}");
 
  368                if (@file_exists($imagepath_original . $this->
getThumbPrefix() . $filename)) {
 
  370                        $ilLog->write(
"Ordering Question image thumbnail could not be copied: $imagepath_original" . $this->
getThumbPrefix() . $filename);
 
  424        if ($forceCorrectSolution || !$activeId || $passIndex === 
null) {
 
  428        $solutionValues = $this->
getSolutionValues($activeId, $passIndex, !$getUseIntermediateSolution);
 
  430        if (!count($solutionValues)) {
 
  453        #if( $pass === null && !ilObjTest::_getUsePreviousAnswers($activeId, true) ) 
  456        #       $pass = ilObjTest::_getPass($activeId); 
  466        if (count($indexedSolutionValues)) {
 
  480        $value2 = explode(
':', $value2);
 
  482        $randomIdentifier = $value2[0];
 
  483        $selectedPosition = $value1;
 
  484        $selectedIndentation = $value2[1];
 
  488        $element->setPosition($selectedPosition);
 
  489        $element->setIndentation($selectedIndentation);
 
  501        $solutionIdentifier = $value1;
 
  502        $selectedPosition = ($value2 - 1);
 
  503        $selectedIndentation = 0;
 
  505        $element = $this->
getOrderingElementList()->getElementBySolutionIdentifier($solutionIdentifier)->getClone();
 
  507        $element->setPosition($selectedPosition);
 
  508        $element->setIndentation($selectedIndentation);
 
  521        $solutionOrderingList->setQuestionId($this->
getId());
 
  523        foreach ($indexedSolutionValues as $value1 => $value2) {
 
  530            $solutionOrderingList->addElement($element);
 
  537        return $solutionOrderingList;
 
  547        $shuffledRandomIdentifierIndex = $this->
getShuffler()->shuffle(
 
  552        $shuffledElementList->reorderByRandomIdentifiers($shuffledRandomIdentifierIndex);
 
  553        $shuffledElementList->resetElementsIndentations();
 
  555        return $shuffledElementList;
 
  667        if ($returndetails) {
 
  668            throw new ilTestException(
'return details not implemented for ' . __METHOD__);
 
  671        if (is_null(
$pass)) {
 
  677        if (!count($solutionValuePairs)) {
 
  693        $solutionOrderingElementList = unserialize(
 
  725        if (preg_match(
"/.*\\.(\\w+)$/", 
$filename, $matches)) {
 
  726            $extension = $matches[1];
 
  728        return md5(
$filename) . 
"." . $extension;
 
  736                foreach ($contents as 
$f) {
 
  737                    if (strcmp(
$f[
'type'], 
'file') == 0) {
 
  740                            if (strcmp(
$f[
'entry'], $orderElement->getContent()) == 0) {
 
  743                            if (strcmp(
$f[
'entry'], $this->
getThumbPrefix() . $orderElement->getContent()) == 0) {
 
  748                            if (@file_exists($this->
getImagePath() . $f[
'entry'])) {
 
  770        if (!strlen($imageFilename)) {
 
  782        if (!strlen($imageFilename)) {
 
  786        if (!file_exists($this->
getImagePath() . $imageFilename)) {
 
  816        if (!strlen($uploadFile)) {
 
  833        foreach ($elementList as $element) {
 
  859        if (!$submittedSolutionList->hasElements()) {
 
  878        if (is_null(
$pass)) {
 
  879            include_once 
"./Modules/Test/classes/class.ilObjTest.php";
 
  884            function () use (&$entered_values, $active_id, 
$pass, $authorized) {
 
  888                    $value1 = $orderingElement->getStorageValue1($this->
getOrderingType());
 
  889                    $value2 = $orderingElement->getStorageValue2($this->
getOrderingType());
 
  898        if ($entered_values) {
 
  899            $this->
log($active_id, 
'log_user_entered_values');
 
  901            $this->
log($active_id, 
'log_user_not_entered_values');
 
  924            array( $this->
getId() )
 
  928            "INSERT INTO " . $this->
getAdditionalTableName() . 
" (question_fi, ordering_type, thumb_geometry, element_height)  
  929                                                        VALUES (%s, %s, %s, %s)",
 
  930            array( 
"integer", 
"text", 
"integer", 
"integer" ),
 
  933                                $this->ordering_type,
 
  959        return "assOrderingQuestion";
 
  970        return "qpl_qst_ordering";
 
  981        return "qpl_a_ordering";
 
  990        $text = parent::getRTETextWithMediaObjects();
 
  993            $text .= $orderingElement->getContent();
 
 1029        parent::setExportDetailsXLS($worksheet, $startrow, $active_id, 
$pass);
 
 1033        foreach ($solutions as $solution) {
 
 1034            $sol[$solution[
"value1"]] = $solution[
"value2"];
 
 1037        $sol = array_keys($sol);
 
 1040        foreach ($sol as $idx) {
 
 1041            foreach ($solutions as $solution) {
 
 1042                if ($solution[
"value1"] == $idx) {
 
 1043                    $worksheet->setCell($startrow + 
$i, 0, $solution[
"value2"]);
 
 1047            $worksheet->setCell($startrow + 
$i, 1, $element->getContent());
 
 1051        return $startrow + 
$i + 1;
 
 1076        $this->thumb_geometry = ($a_geometry < 1) ? 100 : $a_geometry;
 
 1096        $this->element_height = ($a_height < 20) ? 
"" : $a_height;
 
 1123            switch (strtoupper($path_info[
'extension'])) {
 
 1143        include_once(
"./Services/RTE/classes/class.ilRTE.php");
 
 1150        $result[
'shuffle'] = (bool) 
true;
 
 1153            'onenotcorrect' => $this->
formatSAQuestion($this->feedbackOBJ->getGenericFeedbackTestPresentation($this->getId(), 
false)),
 
 1154            'allcorrect' => $this->formatSAQuestion($this->feedbackOBJ->getGenericFeedbackTestPresentation($this->getId(), 
true))
 
 1163            $answers[$counter] = $orderingElement->getContent();
 
 1166        $answers = $this->
getShuffler()->shuffle($answers);
 
 1168        foreach ($answers as $order => $answer) {
 
 1169            array_push($arr, array(
 
 1170                "answertext" => (
string) $answer,
 
 1171                "order" => (
int) $order
 
 1215                $formField->setInteractionEnabled(
true);
 
 1223                $formField->setEditElementOccuranceEnabled(
true);
 
 1224                $formField->setEditElementOrderEnabled(
true);
 
 1235        $formField->
setInfo($this->lng->txt(
'ordering_answer_sequence_info'));
 
 1236        $formField->
setTitle($this->lng->txt(
'answers'));
 
 1246        require_once 
'Modules/TestQuestionPool/classes/forms/class.ilAssOrderingTextsInputGUI.php';
 
 1250            self::ORDERING_ELEMENT_FORM_FIELD_POSTVAR
 
 1255        return $orderingElementInput;
 
 1265        require_once 
'Modules/TestQuestionPool/classes/forms/class.ilAssOrderingImagesInputGUI.php';
 
 1269            self::ORDERING_ELEMENT_FORM_FIELD_POSTVAR
 
 1272        $orderingElementInput->setImageRemovalCommand(self::ORDERING_ELEMENT_FORM_CMD_REMOVE_IMG);
 
 1273        $orderingElementInput->setImageUploadCommand(self::ORDERING_ELEMENT_FORM_CMD_UPLOAD_IMG);
 
 1277        return $orderingElementInput;
 
 1287        require_once 
'Modules/TestQuestionPool/classes/forms/class.ilAssNestedOrderingElementsInputGUI.php';
 
 1291            self::ORDERING_ELEMENT_FORM_FIELD_POSTVAR
 
 1294        $orderingElementInput->setUniquePrefix($this->
getId());
 
 1301        return $orderingElementInput;
 
 1310        return $form->
getItemByPostVar(self::ORDERING_ELEMENT_FORM_FIELD_POSTVAR)->getElementList($this->
getId());
 
 1322        $orderingGUI->setValueByArray($userSolutionPost);
 
 1324        if (!$orderingGUI->checkInput()) {
 
 1325            require_once 
'Modules/Test/exceptions/class.ilTestException.php';
 
 1329        require_once 
'Modules/TestQuestionPool/classes/questions/class.ilAssOrderingElementList.php';
 
 1334        foreach ($orderingGUI->getElementList($this->getId()) as $submittedElement) {
 
 1335            $solutionElement = $storedElementList->getElementByRandomIdentifier(
 
 1336                $submittedElement->getRandomIdentifier()
 
 1339            $solutionElement->setPosition($submittedElement->getPosition());
 
 1342                $solutionElement->setIndentation($submittedElement->getIndentation());
 
 1345            $solutionOrderingElementList->addElement($solutionElement);
 
 1348        return $solutionOrderingElementList;
 
 1361        if ($this->postSolutionOrderingElementList === 
null) {
 
 1363            $this->postSolutionOrderingElementList = $list;
 
 1387            $userElement = $solutionOrderingElementList->
getElementByPosition($correctElement->getPosition());
 
 1389            if (!$correctElement->isSameElement($userElement)) {
 
 1395        return $reachedPoints;
 
 1414            'SELECT depth FROM qpl_a_ordering WHERE question_fi = %s ORDER BY position ASC',
 
 1416            array($this->
getId())
 
 1418        while ($row = 
$ilDB->fetchAssoc(
$res)) {
 
 1419            $this->old_ordering_depth[] = $row[
'depth'];
 
 1434            'SELECT solution_key FROM qpl_a_ordering WHERE random_id = %s',
 
 1440        return $row[
'solution_key'];
 
 1450            array(
'solution_key' => array(
'integer', $a_index),
 
 1451              'depth' => array(
'integer', $a_depth)),
 
 1452            array(
'answertext' => array(
'text', $a_answer_text))
 
 1469        require_once 
"./Modules/TestQuestionPool/classes/class.ilOperatorsExpressionMapping.php";
 
 1502        $maxStep = $this->lookupMaxStep($active_id, 
$pass);
 
 1504        if ($maxStep !== 
null) {
 
 1506                "SELECT value1, value2 FROM tst_solutions WHERE active_fi = %s AND pass = %s AND question_fi = %s AND step = %s ORDER BY value1 ASC ",
 
 1507                array(
"integer", 
"integer", 
"integer",
"integer"),
 
 1508                array($active_id, 
$pass, $this->
getId(), $maxStep)
 
 1512                "SELECT value1, value2 FROM tst_solutions WHERE active_fi = %s AND pass = %s AND question_fi = %s ORDER BY value1 ASC ",
 
 1513                array(
"integer", 
"integer", 
"integer"),
 
 1518        $elements = array();
 
 1520            $newKey = explode(
":", $row[
"value2"]);
 
 1525                    if ($answer->getSolutionIdentifier() == $row[
"value1"]) {
 
 1526                        $elements[$row[
"value2"]] = $answer->getSolutionIdentifier() + 1;
 
 1530                    if ($answer->getRandomIdentifier() == $newKey[0]) {
 
 1531                        $elements[$row[
"value1"]] = $answer->getSolutionIdentifier() + 1;
 
 1540        foreach (array_values($elements) as $element) {
 
 1541            $result->addKeyValue($element, $element);
 
 1574        parent::afterSyncWithOriginal($origQuestionId, $dupQuestionId, $origParentObjId, $dupParentObjId);
 
 1575        $this->
duplicateImages($dupQuestionId, $dupParentObjId, $origQuestionId, $origParentObjId);
 
 1588        return parent::buildTestPresentationConfig()
 
 1590            ->setIsUnchangedAnswerPossible(
true)
 
 1591            ->setUseUnchangedAnswerLabel($this->lng->txt(
'tst_unchanged_order_is_correct'));
 
 1607        $solutionSubmit = array();
 
 1609        if (isset($formSubmissionDataStructure[
'orderresult'])) {
 
 1610            $orderresult = $formSubmissionDataStructure[
'orderresult'];
 
 1612            if (strlen($orderresult)) {
 
 1613                $orderarray = explode(
":", $orderresult);
 
 1615                foreach ($orderarray as 
$index) {
 
 1617                    if (preg_match(
"/id_(\\d+)/", 
$index, $idmatch)) {
 
 1618                        $randomid = $idmatch[1];
 
 1620                            if ($answer->getRandomIdentifier() == $randomid) {
 
 1621                                $solutionSubmit[$answeridx] = $ordervalue;
 
 1630            foreach ($formSubmissionDataStructure[
'content'] as $randomId => $content) {
 
 1631                $indentation = $formSubmissionDataStructure[
'indentation'];
 
 1634                $value2 = implode(
':', array($randomId, $indentation));
 
 1636                $solutionSubmit[$value1] = $value2;
 
 1639            foreach ($formSubmissionDataStructure as $key => $value) {
 
 1641                if (preg_match(
"/^order_(\d+)/", $key, $matches)) {
 
 1642                    if (!(preg_match(
"/initial_value_\d+/", $value))) {
 
 1643                        if (strlen($value)) {
 
 1645                                if ($answer->getRandomIdentifier() == $matches[1]) {
 
 1646                                    $solutionSubmit[$answeridx] = $value;
 
 1655        return $solutionSubmit;
 
 1663        require_once 
'Modules/TestQuestionPool/classes/forms/class.ilAssOrderingFormValuesObjectsConverter.php';
 
 1665        $converter->setPostVar(self::ORDERING_ELEMENT_FORM_FIELD_POSTVAR);
 
 1678        $formDataConverter->setImageRemovalCommand(self::ORDERING_ELEMENT_FORM_CMD_REMOVE_IMG);
 
 1680        $formDataConverter->setImageFsPath($this->
getImagePath());
 
 1685        return $formDataConverter;
 
 1695        return $formDataConverter;
 
 1707            $formDataConverter->setImageRemovalCommand(self::ORDERING_ELEMENT_FORM_CMD_REMOVE_IMG);
 
 1715        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()
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()
saveWorkingData($active_id, $pass=null, $authorized=true)
Saves the learners input of the question to the database.
buildNestedOrderingElementInputGui()
toJSON()
Returns a JSON representation of the question.
fetchSolutionListFromFormSubmissionData($userSolutionPost)
dropImageFile($imageFilename)
setOrderingType($ordering_type=OQ_TERMS)
Sets the ordering question type.
createImageThumbnail(ilAssOrderingElement $element)
calculateReachedPoints($active_id, $pass=null, $authorizedSolution=true, $returndetails=false)
Returns the points, a learner has reached answering the question.
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()
duplicateOrderlingElementList()
fetchSolutionSubmit($formSubmissionDataStructure)
const ORDERING_ELEMENT_FORM_FIELD_POSTVAR
setElementHeight($a_height)
buildOrderingTextsInputGui()
getOrderingElementListForSolutionOutput($forceCorrectSolution, $activeId, $passIndex, $getUseIntermediateSolution=false)
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.
validateSolutionSubmit()
Checks the data to be saved for consistency.
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.
getSolutionValues($active_id, $pass=null, $authorized=true)
Loads solutions of a given user from the database an returns it.
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)
setLifecycle(ilAssQuestionLifecycle $lifecycle)
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())
static getDraftInstance()
static getInstance($identifier)
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 convertImage( $a_from, $a_to, $a_target_format="", $a_geometry="", $a_background_color="")
convert image
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
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.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
foreach($_POST as $key=> $value) $res