function &_getQuestionTypes($all_tags = FALSE, $fixOrder = false) { global $ilDB; global $lng; include_once "./Modules/Test/classes/class.ilObjAssessmentFolder.php"; $forbidden_types = ilObjAssessmentFolder::_getForbiddenQuestionTypes(); $lng->loadLanguageModule("assessment"); $result = $ilDB->query("SELECT * FROM qpl_qst_type"); $types = array(); while ($row = $ilDB->fetchAssoc($result)) { if ($all_tags || !in_array($row["question_type_id"], $forbidden_types)) { global $ilLog; if ($row["plugin"] == 0) { $types[$lng->txt($row["type_tag"])] = $row; } else { global $ilPluginAdmin; $pl_names = $ilPluginAdmin->getActivePluginsForSlot(IL_COMP_MODULE, "TestQuestionPool", "qst"); foreach ($pl_names as $pl_name) { $pl = ilPlugin::getPluginObject(IL_COMP_MODULE, "TestQuestionPool", "qst", $pl_name); if (strcmp($pl->getQuestionType(), $row["type_tag"]) == 0) { $types[$pl->getQuestionTypeTranslation()] = $row; } } } } } require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionTypeOrderer.php'; $orderMode = $fixOrder ? ilAssQuestionTypeOrderer::ORDER_MODE_FIX : ilAssQuestionTypeOrderer::ORDER_MODE_ALPHA; $orderer = new ilAssQuestionTypeOrderer($types, $orderMode); $types = $orderer->getOrderedTypes(); return $types; }