protected function buildTestPassQuestionList() { global $ilPluginAdmin; require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionList.php'; $questionList = new ilAssQuestionList($this->db, $this->lng, $ilPluginAdmin); $questionList->setParentObjId($this->object->getId()); $questionList->setQuestionInstanceTypeFilter(ilAssQuestionList::QUESTION_INSTANCE_TYPE_DUPLICATES); $questionList->setQuestionIdsFilter($this->testSequence->getQuestionIds()); return $questionList; }
protected function getFilteredTestResult($active_id, $pass) { global $ilDB, $ilPluginAdmin; $testResults = $this->object->getTestResult($active_id, $pass); $questionIds = array(); foreach ($testResults as $resultItemKey => $resultItemValue) { if ($resultItemKey === 'test' || $resultItemKey === 'pass') { continue; } $questionIds[] = $resultItemValue['qid']; } $table_gui = $this->buildPassDetailsOverviewTableGUI($this, 'outUserPassDetails'); $table_gui->initFilter(); require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionList.php'; $questionList = new ilAssQuestionList($ilDB, $this->lng, $ilPluginAdmin, null); $questionList->setQuestionIdsFilter($questionIds); $questionList->setQuestionInstanceTypeFilter(null); foreach ($table_gui->getFilterItems() as $item) { if (substr($item->getPostVar(), 0, strlen('tax_')) == 'tax_') { $v = $item->getValue(); if (is_array($v) && count($v) && !(int) $v[0]) { continue; } $taxId = substr($item->getPostVar(), strlen('tax_')); $questionList->addTaxonomyFilter($taxId, $item->getValue()); } elseif ($item->getValue() !== false) { $questionList->addFieldFilter($item->getPostVar(), $item->getValue()); } } $questionList->load(); $filteredTestResult = array(); foreach ($testResults as $resultItemKey => $resultItemValue) { if ($resultItemKey === 'test' || $resultItemKey === 'pass') { continue; } if (!$questionList->isInList($resultItemValue['qid'])) { continue; } $filteredTestResult[] = $resultItemValue; } return $filteredTestResult; }
private static function getQuestionData($testObjId, $questionIds) { global $ilDB, $lng, $ilPluginAdmin; require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionList.php'; $questionList = new ilAssQuestionList($ilDB, $lng, $ilPluginAdmin, $testObjId); $questionList->setQuestionInstanceTypeFilter(ilAssQuestionList::QUESTION_INSTANCE_TYPE_DUPLICATES); $questionList->setQuestionIdsFilter($questionIds); $questionList->load(); return $questionList->getQuestionDataArray(); }