/** * 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); }