/**
  * Loads a assSingleChoice object from a database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the multiple choice test in the database
  * @access public
  */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $hasimages = 0;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setTitle($data["title"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setComment($data["description"]);
         $this->setOriginalId($data["original_id"]);
         $this->setAuthor($data["author"]);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $shuffle = is_null($data['shuffle']) ? true : $data['shuffle'];
         $this->setShuffle($shuffle);
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
         $this->setThumbSize($data['thumb_size']);
         $this->isSingleline = $data['allow_images'] ? false : true;
         $this->lastChange = $data['tstamp'];
         try {
             $this->setAdditionalContentEditingMode($data['add_cont_edit_mode']);
         } catch (ilTestQuestionPoolException $e) {
         }
     }
     $result = $ilDB->queryF("SELECT * FROM qpl_a_sc WHERE question_fi = %s ORDER BY aorder ASC", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assAnswerBinaryStateImage.php";
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             $imagefilename = $this->getImagePath() . $data["imagefile"];
             if (!@file_exists($imagefilename)) {
                 $data["imagefile"] = "";
             }
             include_once "./Services/RTE/classes/class.ilRTE.php";
             $data["answertext"] = ilRTE::_replaceMediaObjectImageSrc($data["answertext"], 1);
             array_push($this->answers, new ASS_AnswerBinaryStateImage($data["answertext"], $data["points"], $data["aorder"], 1, $data["imagefile"]));
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Loads a assClozeTest object from a database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the cloze test in the database
  * @access public
  */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setObjId($data["obj_fi"]);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setOriginalId($data["original_id"]);
         $this->setAuthor($data["author"]);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         $this->setQuestion($this->cleanQuestiontext($data["question_text"]));
         $this->setFixedTextLength($data["fixed_textlen"]);
         $this->setIdenticalScoring($data['tstamp'] == 0 ? true : $data["identical_scoring"]);
         // replacement of old syntax with new syntax
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->question = ilRTE::_replaceMediaObjectImageSrc($this->question, 1);
         $this->setTextgapRating($data["textgap_rating"]);
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
         // open the cloze gaps with all answers
         include_once "./Modules/TestQuestionPool/classes/class.assAnswerCloze.php";
         include_once "./Modules/TestQuestionPool/classes/class.assClozeGap.php";
         $result = $ilDB->queryF("SELECT * FROM qpl_a_cloze WHERE question_fi = %s ORDER BY gap_id, aorder ASC", array("integer"), array($question_id));
         if ($result->numRows() > 0) {
             $this->gaps = array();
             while ($data = $ilDB->fetchAssoc($result)) {
                 switch ($data["cloze_type"]) {
                     case CLOZE_TEXT:
                         if (!array_key_exists($data["gap_id"], $this->gaps)) {
                             $this->gaps[$data["gap_id"]] = new assClozeGap(CLOZE_TEXT);
                         }
                         $answer = new assAnswerCloze($data["answertext"], $data["points"], $data["aorder"]);
                         $this->gaps[$data["gap_id"]]->addItem($answer);
                         break;
                     case CLOZE_SELECT:
                         if (!array_key_exists($data["gap_id"], $this->gaps)) {
                             $this->gaps[$data["gap_id"]] = new assClozeGap(CLOZE_SELECT);
                             $this->gaps[$data["gap_id"]]->setShuffle($data["shuffle"]);
                         }
                         $answer = new assAnswerCloze($data["answertext"], $data["points"], $data["aorder"]);
                         $this->gaps[$data["gap_id"]]->addItem($answer);
                         break;
                     case CLOZE_NUMERIC:
                         if (!array_key_exists($data["gap_id"], $this->gaps)) {
                             $this->gaps[$data["gap_id"]] = new assClozeGap(CLOZE_NUMERIC);
                         }
                         $answer = new assAnswerCloze($data["answertext"], $data["points"], $data["aorder"]);
                         $answer->setLowerBound($data["lowerlimit"]);
                         $answer->setUpperBound($data["upperlimit"]);
                         $this->gaps[$data["gap_id"]]->addItem($answer);
                         break;
                 }
             }
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Loads a assJavaApplet object from a database
  *
  * Loads a assJavaApplet object from a database (experimental)
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the multiple choice test in the database
  * @access public
  */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setOriginalId($data["original_id"]);
         $this->setAuthor($data["author"]);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setJavaAppletFilename($data["image_file"]);
         $this->splitParams($data["params"]);
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
     }
     parent::loadFromDb($question_id);
 }
 public function loadFromDb($questionId)
 {
     $res = $this->db->queryF($this->buildQuestionDataQuery(), array('integer'), array($questionId));
     while ($data = $this->db->fetchAssoc($res)) {
         $this->setId($questionId);
         $this->setOriginalId($data['original_id']);
         $this->setObjId($data['obj_fi']);
         $this->setTitle($data['title']);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setComment($data['description']);
         $this->setAuthor($data['author']);
         $this->setPoints($data['points']);
         $this->setOwner($data['owner']);
         $this->setEstimatedWorkingTimeFromDurationString($data['working_time']);
         $this->setLastChange($data['tstamp']);
         require_once 'Services/RTE/classes/class.ilRTE.php';
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data['question_text'], 1));
         $this->setShuffleAnswersEnabled((bool) $data['shuffle_answers']);
         if ($this->isValidAnswerType($data['answer_type'])) {
             $this->setAnswerType($data['answer_type']);
         }
         if (is_numeric($data['thumb_size'])) {
             $this->setThumbSize((int) $data['thumb_size']);
         }
         if ($this->isValidOptionLabel($data['opt_label'])) {
             $this->setOptionLabel($data['opt_label']);
         }
         $this->setCustomTrueOptionLabel($data['custom_true']);
         $this->setCustomFalseOptionLabel($data['custom_false']);
         if ($data['score_partsol'] !== null) {
             $this->setScorePartialSolutionEnabled((bool) $data['score_partsol']);
         }
         if (isset($data['feedback_setting'])) {
             $this->setSpecificFeedbackSetting((int) $data['feedback_setting']);
         }
         try {
             $this->setAdditionalContentEditingMode($data['add_cont_edit_mode']);
         } catch (ilTestQuestionPoolException $e) {
         }
     }
     $this->loadAnswerData($questionId);
     parent::loadFromDb($questionId);
 }
 /**
  * Loads a assFormulaQuestion object from a database
  * @param integer $question_id A unique key which defines the question in the database
  */
 public function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.* FROM qpl_questions WHERE question_id = %s", array('integer'), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setSuggestedSolution($data["solution_hint"]);
         $this->setOriginalId($data["original_id"]);
         $this->setObjId($data["obj_fi"]);
         $this->setAuthor($data["author"]);
         $this->setOwner($data["owner"]);
         try {
             $this->setAdditionalContentEditingMode($data['add_cont_edit_mode']);
         } catch (ilTestQuestionPoolException $e) {
         }
         $this->unitrepository = new ilUnitConfigurationRepository($question_id);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
         // load variables
         $result = $ilDB->queryF("SELECT * FROM il_qpl_qst_fq_var WHERE question_fi = %s", array('integer'), array($question_id));
         if ($result->numRows() > 0) {
             while ($data = $ilDB->fetchAssoc($result)) {
                 $varObj = new assFormulaQuestionVariable($data["variable"], $data["range_min"], $data["range_max"], $this->getUnitrepository()->getUnit($data["unit_fi"]), $data["varprecision"], $data["intprecision"]);
                 $varObj->setRangeMinTxt($data['range_min_txt']);
                 $varObj->setRangeMaxTxt($data['range_max_txt']);
                 $this->addVariable($varObj);
             }
         }
         // load results
         $result = $ilDB->queryF("SELECT * FROM il_qpl_qst_fq_res WHERE question_fi = %s", array('integer'), array($question_id));
         if ($result->numRows() > 0) {
             while ($data = $ilDB->fetchAssoc($result)) {
                 $resObj = new assFormulaQuestionResult($data["result"], $data["range_min"], $data["range_max"], $data["tolerance"], $this->getUnitrepository()->getUnit($data["unit_fi"]), $data["formula"], $data["points"], $data["resprecision"], $data["rating_simple"], $data["rating_sign"], $data["rating_value"], $data["rating_unit"]);
                 $resObj->setResultType($data['result_type']);
                 $resObj->setRangeMinTxt($data['range_min_txt']);
                 $resObj->setRangeMaxTxt($data['range_max_txt']);
                 $this->addResult($resObj);
             }
         }
         // load result units
         $result = $ilDB->queryF("SELECT * FROM il_qpl_qst_fq_res_unit WHERE question_fi = %s", array('integer'), array($question_id));
         if ($result->numRows() > 0) {
             while ($data = $ilDB->fetchAssoc($result)) {
                 $unit = $this->getUnitrepository()->getUnit($data["unit_fi"]);
                 $resObj = $this->getResult($data["result"]);
                 $this->addResultUnit($resObj, $unit);
             }
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Loads a assMatchingQuestion object from a database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the multiple choice test in the database
  */
 public function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setOriginalId($data["original_id"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setAuthor($data["author"]);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setThumbGeometry($data["thumb_geometry"]);
         $this->setElementHeight($data["element_height"]);
         $this->setShuffle($data["shuffle"]);
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
     }
     $termids = array();
     $result = $ilDB->queryF("SELECT * FROM qpl_a_mterm WHERE question_fi = %s ORDER BY term_id ASC", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assAnswerMatchingTerm.php";
     $this->terms = array();
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             $term = new assAnswerMatchingTerm($data['term'], $data['picture'], $data['term_id']);
             array_push($this->terms, $term);
             $termids[$data['term_id']] = $term;
         }
     }
     $definitionids = array();
     $result = $ilDB->queryF("SELECT * FROM qpl_a_mdef WHERE question_fi = %s ORDER BY def_id ASC", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assAnswerMatchingDefinition.php";
     $this->definitions = array();
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             $definition = new assAnswerMatchingDefinition($data['definition'], $data['picture'], $data['morder']);
             array_push($this->definitions, $definition);
             $definitionids[$data['def_id']] = $definition;
         }
     }
     $this->matchingpairs = array();
     $result = $ilDB->queryF("SELECT * FROM qpl_a_matching WHERE question_fi = %s ORDER BY answer_id", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assAnswerMatchingPair.php";
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             array_push($this->matchingpairs, new assAnswerMatchingPair($termids[$data['term_fi']], $definitionids[$data['definition_fi']], $data['points']));
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Loads a assNumeric object from a database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the multiple choice test in the database
  * @access public
  */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setOriginalId($data["original_id"]);
         $this->setAuthor($data["author"]);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setMaxChars($data["maxnumofchars"]);
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
     }
     $result = $ilDB->queryF("SELECT * FROM qpl_num_range WHERE question_fi = %s ORDER BY aorder ASC", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assNumericRange.php";
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             $this->setPoints($data['points']);
             $this->setLowerLimit($data['lowerlimit']);
             $this->setUpperLimit($data['upperlimit']);
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Loads a assFlashQuestion object from a database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the multiple choice test in the database
  * @access public
  */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setSuggestedSolution($data["solution_hint"]);
         $this->setOriginalId($data["original_id"]);
         $this->setObjId($data["obj_fi"]);
         $this->setAuthor($data["author"]);
         $this->setOwner($data["owner"]);
         $this->setPoints($data["points"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
         try {
             $this->setAdditionalContentEditingMode($data['add_cont_edit_mode']);
         } catch (ilTestQuestionPoolException $e) {
         }
         // load additional data
         $result = $ilDB->queryF("SELECT * FROM " . $this->getAdditionalTableName() . " WHERE question_fi = %s", array("integer"), array($question_id));
         if ($result->numRows() == 1) {
             $data = $ilDB->fetchAssoc($result);
             $this->setWidth($data["width"]);
             $this->setHeight($data["height"]);
             $this->setApplet($data["applet"]);
             $this->parameters = unserialize($data["params"]);
             if (!is_array($this->parameters)) {
                 $this->clearParameters();
             }
             unset($_SESSION["flash_upload_filename"]);
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Loads a assOrderingQuestion object from a database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the multiple choice test in the database
  * @access public
  */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setOriginalId($data["original_id"]);
         $this->setAuthor($data["author"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->ordering_type = strlen($data["ordering_type"]) ? $data["ordering_type"] : OQ_TERMS;
         $this->thumb_geometry = $data["thumb_geometry"];
         $this->element_height = $data["element_height"];
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
     }
     $result = $ilDB->queryF("SELECT * FROM qpl_a_ordering WHERE question_fi = %s ORDER BY solution_order ASC", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assAnswerOrdering.php";
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             include_once "./Services/RTE/classes/class.ilRTE.php";
             $data["answertext"] = ilRTE::_replaceMediaObjectImageSrc($data["answertext"], 1);
             array_push($this->answers, new ASS_AnswerOrdering($data["answertext"], $data["random_id"]));
         }
     }
     parent::loadFromDb($question_id);
 }
Beispiel #10
0
 /**
  * Loads a SyntaxTree object from a database
  *
  * Loads a SyntaxTree object from a database (experimental)
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the multiple choice test in the database
  * @access public
  */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $query = sprintf("SELECT qpl_questions.*, il_qpl_qst_st_quest.* FROM qpl_questions, il_qpl_qst_st_quest WHERE question_id = %s AND qpl_questions.question_id = il_qpl_qst_st_quest.question_fi", $ilDB->quote($question_id));
     $result = $ilDB->query($query);
     if ($result->numRows() == 1) {
         $data = $result->fetchRow(MDB2_FETCHMODE_OBJECT);
         $this->id = $question_id;
         $this->title = $data->title;
         $this->comment = $data->description;
         $this->solution_hint = $data->solution_hint;
         $this->original_id = $data->original_id;
         $this->obj_id = $data->obj_fi;
         $this->author = $data->author;
         $this->owner = $data->owner;
         $this->points = $data->points;
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->question = ilRTE::_replaceMediaObjectImageSrc($data->question_text, 1);
         $this->correctanswers = $data->correctanswers;
         $this->text_rating = $data->textgap_rating;
         $this->setEstimatedWorkingTime(substr($data->working_time, 0, 2), substr($data->working_time, 3, 2), substr($data->working_time, 6, 2));
         $query = sprintf("SELECT * FROM il_qpl_qst_st_answer WHERE question_fi = %s ORDER BY aorder ASC", $ilDB->quote($question_id));
         $result = $ilDB->query($query);
         include_once "./Modules/TestQuestionPool/classes/class.assAnswerSimple.php";
         if ($result->numRows() > 0) {
             while ($data = $result->fetchRow(MDB2_FETCHMODE_ASSOC)) {
                 array_push($this->answers, new ASS_AnswerSimple($data["answertext"], $data["points"], $data["aorder"]));
             }
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Loads a assFileUpload object from a database
  *
  * @param integer $question_id A unique key which defines the question in the database
  */
 public function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setSuggestedSolution($data["solution_hint"]);
         $this->setOriginalId($data["original_id"]);
         $this->setObjId($data["obj_fi"]);
         $this->setAuthor($data["author"]);
         $this->setOwner($data["owner"]);
         $this->setPoints($data["points"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
         $this->setMaxSize($data["maxsize"]);
         $this->setAllowedExtensions($data["allowedextensions"]);
         $this->setCompletionBySubmission($data['compl_by_submission'] == 1 ? true : false);
         try {
             $this->setAdditionalContentEditingMode($data['add_cont_edit_mode']);
         } catch (ilTestQuestionPoolException $e) {
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Loads an assAccountingQuestion object from a database
  *
  * @param integer $question_id A unique key which defines the question in the database
  */
 public function loadFromDb($question_id)
 {
     global $ilDB;
     // load the basic question data
     $result = $ilDB->query("SELECT qpl_questions.* FROM qpl_questions WHERE question_id = " . $ilDB->quote($question_id, 'integer'));
     $data = $ilDB->fetchAssoc($result);
     $this->setId($question_id);
     $this->setTitle($data["title"]);
     $this->setComment($data["description"]);
     $this->setSuggestedSolution($data["solution_hint"]);
     $this->setOriginalId($data["original_id"]);
     $this->setObjId($data["obj_fi"]);
     $this->setAuthor($data["author"]);
     $this->setOwner($data["owner"]);
     $this->setPoints($data["points"]);
     include_once "./Services/RTE/classes/class.ilRTE.php";
     $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
     $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
     try {
         $this->setAdditionalContentEditingMode($data['add_cont_edit_mode']);
     } catch (ilTestQuestionPoolException $e) {
     }
     // get the hash value for accounts definition
     $result = $ilDB->query("SELECT h.data FROM il_qpl_qst_accqst_data d" . " INNER JOIN il_qpl_qst_accqst_hash h ON d.account_hash = h.hash" . " WHERE d.question_fi =" . $ilDB->quote($question_id, 'integer'));
     $data = $ilDB->fetchAssoc($result);
     $this->setAccountsXML($data["data"]);
     // load the question parts
     $this->loadParts();
     // loads additional stuff like suggested solutions
     parent::loadFromDb($question_id);
 }
 /**
  * Loads a assMatchingQuestion object from a database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the multiple choice test in the database
  */
 public function loadFromDb($question_id)
 {
     global $ilDB;
     $query = "\n\t\t\tSELECT\t\tqpl_questions.*,\n\t\t\t\t\t\t{$this->getAdditionalTableName()}.*\n\t\t\tFROM\t\tqpl_questions\n\t\t\tLEFT JOIN\t{$this->getAdditionalTableName()}\n\t\t\tON\t\t\t{$this->getAdditionalTableName()}.question_fi = qpl_questions.question_id\n\t\t\tWHERE\t\tqpl_questions.question_id = %s\n\t\t";
     $result = $ilDB->queryF($query, array('integer'), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setOriginalId($data["original_id"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setAuthor($data["author"]);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setThumbGeometry($data["thumb_geometry"]);
         $this->setShuffle($data["shuffle"]);
         $this->setMatchingMode($data['matching_mode'] === null ? self::MATCHING_MODE_1_ON_1 : $data['matching_mode']);
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
         try {
             $this->setAdditionalContentEditingMode($data['add_cont_edit_mode']);
         } catch (ilTestQuestionPoolException $e) {
         }
     }
     $termids = array();
     $result = $ilDB->queryF("SELECT * FROM qpl_a_mterm WHERE question_fi = %s ORDER BY term_id ASC", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assAnswerMatchingTerm.php";
     $this->terms = array();
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             $term = new assAnswerMatchingTerm($data['term'], $data['picture'], $data['term_id']);
             array_push($this->terms, $term);
             $termids[$data['term_id']] = $term;
         }
     }
     $definitionids = array();
     $result = $ilDB->queryF("SELECT * FROM qpl_a_mdef WHERE question_fi = %s ORDER BY def_id ASC", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assAnswerMatchingDefinition.php";
     $this->definitions = array();
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             $definition = new assAnswerMatchingDefinition($data['definition'], $data['picture'], $data['morder']);
             array_push($this->definitions, $definition);
             $definitionids[$data['def_id']] = $definition;
         }
     }
     $this->matchingpairs = array();
     $result = $ilDB->queryF("SELECT * FROM qpl_a_matching WHERE question_fi = %s ORDER BY answer_id", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assAnswerMatchingPair.php";
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             array_push($this->matchingpairs, new assAnswerMatchingPair($termids[$data['term_fi']], $definitionids[$data['definition_fi']], $data['points']));
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Loads a assTextSubset object from a database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the multiple choice test in the database
  * @access public
  */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setOriginalId($data["original_id"]);
         $this->setAuthor($data["author"]);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setCorrectAnswers($data["correctanswers"]);
         $this->setTextRating($data["textgap_rating"]);
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
     }
     $result = $ilDB->queryF("SELECT * FROM qpl_a_textsubset WHERE question_fi = %s ORDER BY aorder ASC", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assAnswerBinaryStateImage.php";
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             array_push($this->answers, new ASS_AnswerBinaryStateImage($data["answertext"], $data["points"], $data["aorder"]));
         }
     }
     parent::loadFromDb($question_id);
 }
Beispiel #15
0
 /**
  * Loads the object from the database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the multiple choice test in the database
  */
 public function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setOriginalId($data["original_id"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setAuthor($data["author"]);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setErrorText($data["errortext"]);
         $this->setTextSize($data["textsize"]);
         $this->setPointsWrong($data["points_wrong"]);
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
         try {
             $this->setAdditionalContentEditingMode($data['add_cont_edit_mode']);
         } catch (ilTestQuestionPoolException $e) {
         }
     }
     $result = $ilDB->queryF("SELECT * FROM qpl_a_errortext WHERE question_fi = %s ORDER BY sequence ASC", array('integer'), array($question_id));
     include_once "./Modules/TestQuestionPool/classes/class.assAnswerErrorText.php";
     if ($result->numRows() > 0) {
         while ($data = $ilDB->fetchAssoc($result)) {
             array_push($this->errordata, new assAnswerErrorText($data["text_wrong"], $data["text_correct"], $data["points"]));
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Loads a assTextQuestion object from a database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the text question in the database
  * @access public
  */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($ilDB->numRows($result) == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setOriginalId($data["original_id"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setAuthor($data["author"]);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setShuffle($data["shuffle"]);
         $this->setMaxNumOfChars($data["maxnumofchars"]);
         $this->setTextRating($data["textgap_rating"]);
         $this->matchcondition = strlen($data['matchcondition']) ? $data['matchcondition'] : 0;
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
         $this->setKeywordRelation($data['keyword_relation']);
     }
     $result = $ilDB->queryF("SELECT * FROM qpl_a_essay WHERE question_fi = %s", array("integer"), array($this->getId()));
     $this->flushAnswers();
     while ($row = $ilDB->fetchAssoc($result)) {
         $this->addAnswer($row['answertext'], $row['points']);
     }
     parent::loadFromDb($question_id);
 }
 /**
 * Loads a assImagemapQuestion object from a database
 *
 * Loads a assImagemapQuestion object from a database (experimental)
 *
 * @param object $db A pear DB object
 * @param integer $question_id A unique key which defines the multiple choice test in the database
 * @access public
 */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.*, " . $this->getAdditionalTableName() . ".* FROM qpl_questions LEFT JOIN " . $this->getAdditionalTableName() . " ON " . $this->getAdditionalTableName() . ".question_fi = qpl_questions.question_id WHERE qpl_questions.question_id = %s", array("integer"), array($question_id));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         $this->setOriginalId($data["original_id"]);
         $this->setNrOfTries($data['nr_of_tries']);
         $this->setAuthor($data["author"]);
         $this->setPoints($data["points"]);
         $this->setOwner($data["owner"]);
         $this->setIsMultipleChoice($data["is_multiple_choice"] == self::MODE_MULTIPLE_CHOICE);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setImageFilename($data["image_file"]);
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
         try {
             $this->setAdditionalContentEditingMode($data['add_cont_edit_mode']);
         } catch (ilTestQuestionPoolException $e) {
         }
         $result = $ilDB->queryF("SELECT * FROM qpl_a_imagemap WHERE question_fi = %s ORDER BY aorder ASC", array("integer"), array($question_id));
         include_once "./Modules/TestQuestionPool/classes/class.assAnswerImagemap.php";
         if ($result->numRows() > 0) {
             while ($data = $ilDB->fetchAssoc($result)) {
                 array_push($this->answers, new ASS_AnswerImagemap($data["answertext"], $data["points"], $data["aorder"], $data["coords"], $data["area"], $data['question_fi'], $data['points_unchecked']));
             }
         }
     }
     parent::loadFromDb($question_id);
 }
 /**
  * Load a assJSMEQuestion object from a database
  *
  * @param object $db A pear DB object
  * @param integer $question_id A unique key which defines the TemplateQuestion test in the database
  * @access public
  */
 function loadFromDb($question_id)
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT qpl_questions.* FROM qpl_questions WHERE question_id = %s", array('integer'), array($question_id));
     if ($ilDB->numRows($result) == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setId($question_id);
         $this->setObjId($data["obj_fi"]);
         $this->setTitle($data["title"]);
         $this->setComment($data["description"]);
         //$this->setSuggestedSolution($data["solution_hint"]);
         $this->setOriginalId($data["original_id"]);
         $this->setAuthor($data["author"]);
         $this->setOwner($data["owner"]);
         $this->setPoints($data["points"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setQuestion(ilRTE::_replaceMediaObjectImageSrc($data["question_text"], 1));
         $this->setEstimatedWorkingTime(substr($data["working_time"], 0, 2), substr($data["working_time"], 3, 2), substr($data["working_time"], 6, 2));
     }
     $resultCheck = $ilDB->queryF("SELECT option_string, solution FROM il_qpl_qst_jsme_data WHERE question_fi = %s", array('integer'), array($question_id));
     if ($ilDB->numRows($resultCheck) == 1) {
         $data = $ilDB->fetchAssoc($resultCheck);
         $this->setOptionString($data["option_string"]);
         $this->setSampleSolution($data["solution"]);
     }
     parent::loadFromDb($question_id);
 }