4 include_once 
"./Modules/Test/classes/inc.AssessmentConstants.php";
 
   34                 $this->
ilObject($a_id,$a_call_by_reference);
 
   75                 if (!parent::update())
 
   88                 include_once 
"./Services/MetaData/classes/class.ilMD.php";
 
   90                 $md_gen =& $md->getGeneral();
 
   93                         include_once 
"./Services/MetaData/classes/class.ilMDCreator.php";
 
   95                         $md_creator->setTitle($this->
getTitle());
 
   96                         $md_creator->setTitleLanguage($ilUser->getPref(
'language'));
 
   97                         $md_creator->create();
 
  107         function read($a_force_db = 
false)
 
  123                 if (!parent::delete())
 
  141                 if (count($questions))
 
  143                         foreach ($questions as $question_id)
 
  150                 include_once 
"./Services/Utilities/classes/class.ilUtil.php";
 
  152                 $directory = $qpl_data_dir.
"/qpl_".$this->
getId();
 
  153                 if (is_dir($directory))
 
  155                         include_once 
"./Services/Utilities/classes/class.ilUtil.php";
 
  185         function notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params = 0)
 
  225                 if ($a_node_id==
$_GET[
"ref_id"])
 
  227                         $parent_obj =& $this->ilias->obj_factory->getInstanceByRefId($a_node_id);
 
  228                         $parent_type = $parent_obj->getType();
 
  229                         if($parent_type == $this->
getType())
 
  231                                 $a_node_id = (int) $tree->getParentId($a_node_id);
 
  235                 parent::notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params);
 
  246                 include_once 
"./Modules/Test/classes/class.ilObjTest.php";
 
  249                 $question->delete($question_id);
 
  261                 $result = $ilDB->queryF(
"SELECT * FROM qpl_questionpool WHERE obj_fi = %s",
 
  263                         array($this->
getId())
 
  281                 $result = $ilDB->queryF(
"SELECT id_questionpool FROM qpl_questionpool WHERE obj_fi = %s",
 
  283                         array($this->
getId())
 
  287                         $result = $ilDB->manipulateF(
"UPDATE qpl_questionpool SET isonline = %s, tstamp = %s WHERE obj_fi = %s",
 
  288                                 array(
'text',
'integer',
'integer'),
 
  294                         $next_id = $ilDB->nextId(
'qpl_questionpool');
 
  295                         $result = $ilDB->manipulateF(
"INSERT INTO qpl_questionpool (id_questionpool, isonline, tstamp, obj_fi) VALUES (%s, %s, %s, %s)",
 
  296                                 array(
'integer',
'text',
'integer',
'integer'),
 
  313                 if ($question_id < 1)
 
  318                 $result = $ilDB->queryF(
"SELECT qpl_qst_type.type_tag FROM qpl_questions, qpl_qst_type WHERE qpl_questions.question_type_fi = qpl_qst_type.question_type_id AND qpl_questions.question_id = %s",
 
  325                         return $data[
"type_tag"];
 
  380                 $result = $ilDB->queryF(
"SELECT COUNT(solution_id) solution_count FROM tst_solutions WHERE question_fi = %s",
 
  385                 return $row[
"solution_count"];
 
  390                 include_once 
"./Modules/TestQuestionPool/classes/class.assQuestion.php";
 
  393                 $question_type_gui = $question_type . 
"GUI";
 
  394                 $question_gui =& 
new $question_type_gui();
 
  395                 return $question_gui;
 
  407                 $newtitle = $question->object->getTitle(); 
 
  408                 if ($question->object->questionTitleExists($this->getId(), $question->object->getTitle()))
 
  411                         while ($question->object->questionTitleExists($this->getId(), $question->object->getTitle() . 
" ($counter)"))
 
  415                         $newtitle = $question->object->getTitle() . 
" ($counter)";
 
  417                 $question->object->duplicate(
false, $newtitle);
 
  432                 if ($question_gui->object->getObjId() == $questionpool_to)
 
  440                         $newtitle = $question_gui->object->getTitle(); 
 
  441                         if ($question_gui->object->questionTitleExists($this->getId(), $question_gui->object->getTitle()))
 
  444                                 while ($question_gui->object->questionTitleExists($this->getId(), $question_gui->object->getTitle() . 
" ($counter)"))
 
  448                                 $newtitle = $question_gui->object->getTitle() . 
" ($counter)";
 
  450                         $question_gui->object->copyObject($this->
getId(), $newtitle);
 
  465                 if (is_array($arrFilter))
 
  467                         if (array_key_exists(
'title', $arrFilter) && strlen($arrFilter[
'title']))
 
  469                                 $where .= 
" AND " . $ilDB->like(
'qpl_questions.title', 
'text', 
"%%" . $arrFilter[
'title'] . 
"%%");
 
  471                         if (array_key_exists(
'description', $arrFilter) && strlen($arrFilter[
'description']))
 
  473                                 $where .= 
" AND " . $ilDB->like(
'qpl_questions.description', 
'text', 
"%%" . $arrFilter[
'description'] . 
"%%");
 
  475                         if (array_key_exists(
'author', $arrFilter) && strlen($arrFilter[
'author']))
 
  477                                 $where .= 
" AND " . $ilDB->like(
'qpl_questions.author', 
'text', 
"%%" . $arrFilter[
'author'] . 
"%%");
 
  479                         if (array_key_exists(
'type', $arrFilter) && strlen($arrFilter[
'type']))
 
  481                                 $where .= 
" AND qpl_qst_type.type_tag = " . $ilDB->quote($arrFilter[
'type'], 
'text');
 
  484                 $query_result = $ilDB->queryF(
"SELECT qpl_questions.*, qpl_qst_type.type_tag, qpl_qst_type.plugin FROM qpl_questions, qpl_qst_type WHERE qpl_questions.original_id IS NULL AND qpl_questions.tstamp > 0 AND qpl_questions.question_type_fi = qpl_qst_type.question_type_id AND qpl_questions.obj_fi = %s" . $where,
 
  486                         array($this->
getId())
 
  490                 if ($query_result->numRows())
 
  492                         while (
$row = $ilDB->fetchAssoc($query_result))
 
  494                                 $row[
'ttype'] = $types[
$row[
'type_tag']];
 
  499                                                 array_push($rows, $row);
 
  504                                         array_push($rows, $row);
 
  520                 $query_result = $ilDB->queryF(
"SELECT qpl_questions.*, qpl_qst_type.type_tag, qpl_qst_type.plugin FROM qpl_questions, qpl_qst_type WHERE qpl_questions.original_id IS NULL AND qpl_questions.tstamp > 0 AND qpl_questions.question_type_fi = qpl_qst_type.question_type_id AND qpl_questions.obj_fi = %s",
 
  522                         array($this->
getId())
 
  526                 if ($query_result->numRows())
 
  528                         while (
$row = $ilDB->fetchAssoc($query_result))
 
  530                                 $row[
'ttype'] = $types[
$row[
'type_tag']];
 
  535                                                 array_push($rows, $row);
 
  540                                         array_push($rows, $row);
 
  553         function exportPagesXML(&$a_xml_writer, $a_inst, $a_target_dir, &$expLog, $questions)
 
  557                 $this->mob_ids = array();
 
  558                 $this->file_ids = array();
 
  561                 $attrs[
"Type"] = 
"Questionpool_Test";
 
  562                 $a_xml_writer->xmlStartTag(
"ContentObject", $attrs);
 
  568                 $expLog->write(date(
"[y-m-d H:i:s] ").
"Start Export Page Objects");
 
  569                 $ilBench->start(
"ContentObjectExport", 
"exportPageObjects");
 
  571                 $ilBench->stop(
"ContentObjectExport", 
"exportPageObjects");
 
  572                 $expLog->write(date(
"[y-m-d H:i:s] ").
"Finished Export Page Objects");
 
  575                 $expLog->write(date(
"[y-m-d H:i:s] ").
"Start Export Media Objects");
 
  576                 $ilBench->start(
"ContentObjectExport", 
"exportMediaObjects");
 
  578                 $ilBench->stop(
"ContentObjectExport", 
"exportMediaObjects");
 
  579                 $expLog->write(date(
"[y-m-d H:i:s] ").
"Finished Export Media Objects");
 
  582                 $expLog->write(date(
"[y-m-d H:i:s] ").
"Start Export File Items");
 
  583                 $ilBench->start(
"ContentObjectExport", 
"exportFileItems");
 
  585                 $ilBench->stop(
"ContentObjectExport", 
"exportFileItems");
 
  586                 $expLog->write(date(
"[y-m-d H:i:s] ").
"Finished Export File Items");
 
  588                 $a_xml_writer->xmlEndTag(
"ContentObject");
 
  599                 include_once(
"Services/MetaData/classes/class.ilMD2XML.php");
 
  601                 $md2xml->setExportMode(
true);
 
  602                 $md2xml->startExport();
 
  603                 $a_xml_writer->appendXML($md2xml->getXML());
 
  608                 if ($a_tag == 
"Identifier" && $a_param == 
"Entry")
 
  610                         include_once 
"./Services/Utilities/classes/class.ilUtil.php";
 
  628                 include_once 
"./Modules/LearningModule/classes/class.ilLMPageObject.php";
 
  630                 foreach ($questions as $question_id)
 
  632                         $ilBench->start(
"ContentObjectExport", 
"exportPageObject");
 
  633                         $expLog->write(date(
"[y-m-d H:i:s] ").
"Page Object ".$question_id);
 
  636                         $a_xml_writer->xmlStartTag(
"PageObject", $attrs);
 
  640                         $ilBench->start(
"ContentObjectExport", 
"exportPageObject_XML");
 
  642                         $page_object->buildDom();
 
  643                         $page_object->insertInstIntoIDs($a_inst);
 
  644                         $mob_ids = $page_object->collectMediaObjects(
false);
 
  645                         $file_ids = $page_object->collectFileItems();
 
  646                         $xml = $page_object->getXMLFromDom(
false, 
false, 
false, 
"", 
true);
 
  647                         $xml = str_replace(
"&",
"&", $xml);
 
  648                         $a_xml_writer->appendXML($xml);
 
  649                         $page_object->freeDom();
 
  650                         unset ($page_object);
 
  652                         $ilBench->stop(
"ContentObjectExport", 
"exportPageObject_XML");
 
  655                         $ilBench->start(
"ContentObjectExport", 
"exportPageObject_CollectMedia");
 
  657                         foreach($mob_ids as $mob_id)
 
  659                                 $this->mob_ids[$mob_id] = $mob_id;
 
  661                         $ilBench->stop(
"ContentObjectExport", 
"exportPageObject_CollectMedia");
 
  664                         $ilBench->start(
"ContentObjectExport", 
"exportPageObject_CollectFileItems");
 
  666                         foreach($file_ids as $file_id)
 
  668                                 $this->file_ids[$file_id] = $file_id;
 
  670                         $ilBench->stop(
"ContentObjectExport", 
"exportPageObject_CollectFileItems");
 
  672                         $a_xml_writer->xmlEndTag(
"PageObject");
 
  675                         $ilBench->stop(
"ContentObjectExport", 
"exportPageObject");
 
  689                 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
 
  691                 foreach ($this->mob_ids as $mob_id)
 
  693                         $expLog->write(date(
"[y-m-d H:i:s] ").
"Media Object ".$mob_id);
 
  697                                 $media_obj->exportXML($a_xml_writer, $a_inst);
 
  698                                 $media_obj->exportFiles($a_target_dir);
 
  710                 include_once(
"./Modules/File/classes/class.ilObjFile.php");
 
  712                 foreach ($this->file_ids as $file_id)
 
  714                         $expLog->write(date(
"[y-m-d H:i:s] ").
"File Item ".$file_id);
 
  715                         $file_obj = 
new ilObjFile($file_id, 
false);
 
  716                         $file_obj->export($a_target_dir);
 
  728                 include_once 
"./Services/Utilities/classes/class.ilUtil.php";
 
  731                 if(!is_writable($qpl_data_dir))
 
  733                         $this->ilias->raiseError(
"Questionpool Data Directory (".$qpl_data_dir
 
  734                                 .
") not writeable.",$this->ilias->error_obj->FATAL);
 
  738                 $qpl_dir = $qpl_data_dir.
"/qpl_".$this->
getId();
 
  740                 if(!@is_dir($qpl_dir))
 
  742                         $this->ilias->raiseError(
"Creation of Questionpool Directory failed.",$this->ilias->error_obj->FATAL);
 
  745                 $export_dir = $qpl_dir.
"/export";
 
  747                 if(!@is_dir($export_dir))
 
  749                         $this->ilias->raiseError(
"Creation of Export Directory failed.",$this->ilias->error_obj->FATAL);
 
  758                 include_once 
"./Services/Utilities/classes/class.ilUtil.php";
 
  769                 if (!@is_dir(
$dir) or
 
  781                 while ($entry = 
$dir->read())
 
  783                         if ($entry != 
"." and
 
  785                                 (substr($entry, -4) == 
".zip" or substr($entry, -4) == 
".xls") and
 
  786                                 ereg(
"^[0-9]{10}_{2}[0-9]+_{2}(qpl__)*[0-9]+\.(zip|xls)\$", $entry))
 
  810                 include_once 
"./Services/Utilities/classes/class.ilUtil.php";
 
  814                 if(!is_writable($qpl_data_dir))
 
  816                         $ilias->raiseError(
"Questionpool Data Directory (".$qpl_data_dir
 
  817                                 .
") not writeable.",$ilias->error_obj->FATAL);
 
  821                 $qpl_dir = $qpl_data_dir.
"/qpl_import";
 
  823                 if(!@is_dir($qpl_dir))
 
  825                         $ilias->raiseError(
"Creation of Questionpool Directory failed.",$ilias->error_obj->FATAL);
 
  834                 include_once 
"./Services/Utilities/classes/class.ilUtil.php";
 
  836                 if(@is_dir($import_dir))
 
  851                 include_once 
"./Services/Utilities/classes/class.ilUtil.php";
 
  853                 if(@is_dir($import_dir))
 
  872                 $result = $ilDB->queryF(
"SELECT question_id FROM qpl_questions WHERE obj_fi = %s AND qpl_questions.tstamp > 0 AND original_id IS NULL",
 
  874                         array($this->
getId())
 
  876                 $questions = array();
 
  879                         array_push($questions, 
$row[
"question_id"]);
 
  888                 $query_result = $ilDB->queryF(
"SELECT question_id, qpl_qst_type.type_tag, qpl_qst_type.plugin FROM qpl_questions, qpl_qst_type WHERE original_id IS NULL AND qpl_questions.tstamp > 0 AND obj_fi = %s AND complete = %s AND qpl_questions.question_type_fi = qpl_qst_type.question_type_id",
 
  889                         array(
'integer',
'text'),
 
  890                         array($this->
getId(), 1)
 
  892                 $questions = array();
 
  893                 if ($query_result->numRows())
 
  895                         while (
$row = $ilDB->fetchAssoc($query_result))
 
  901                                                 array_push($questions, 
$row[
"question_id"]);
 
  906                                         array_push($questions, 
$row[
"question_id"]);
 
  919                 if (!is_array($this->import_mapping))
 
  925                         return $this->import_mapping;
 
  940                 if (count($questions) > 0)
 
  942                         foreach ($questions as $key => $value)
 
  945                                 $xml .= $question->object->toXML();
 
  947                         if (count($questions) > 1)
 
  949                                 $xml = preg_replace(
"/<\/questestinterop>\s*<.xml.*?>\s*<questestinterop>/", 
"", $xml);
 
  952                 $xml = preg_replace(
"/(<\?xml[^>]*?>)/", 
"\\1" . 
"<!DOCTYPE questestinterop SYSTEM \"ims_qtiasiv1p2p1.dtd\">", $xml);
 
  967                 if ($complete_questions_only)
 
  969                         $result = $ilDB->queryF(
"SELECT COUNT(question_id) question_count FROM qpl_questions WHERE obj_fi = %s AND qpl_questions.tstamp > 0 AND original_id IS NULL AND complete = %s",
 
  970                                 array(
'integer', 
'text'),
 
  971                                 array($questionpool_id, 1)
 
  976                         $result = $ilDB->queryF(
"SELECT COUNT(question_id) question_count FROM qpl_questions WHERE obj_fi = %s AND qpl_questions.tstamp > 0 AND original_id IS NULL",
 
  978                                 array($questionpool_id)
 
  982                 return $row[
"question_count"];
 
  994                 switch ($a_online_status)
 
  998                                 $this->online = $a_online_status;
 
 1008                 if (strcmp($this->online, 
"") == 0) $this->online = 
"0";
 
 1018                         $result = $ilDB->queryF(
"SELECT qpl_questionpool.isonline FROM qpl_questionpool,object_reference WHERE object_reference.ref_id = %s AND object_reference.obj_id = qpl_questionpool.obj_fi",
 
 1025                         $result = $ilDB->queryF(
"SELECT isonline FROM qpl_questionpool WHERE obj_fi = %s",
 
 1033                         return $row[
"isonline"];
 
 1050                         $result = $ilDB->queryF(
"SELECT count(DISTINCT qpl_questions.points) equal_points FROM qpl_questions, object_reference WHERE object_reference.ref_id = %s AND qpl_questions.tstamp > 0 AND object_reference.obj_id = qpl_questions.obj_fi AND qpl_questions.original_id IS NULL",
 
 1057                         $result = $ilDB->queryF(
"SELECT count(DISTINCT points) equal_points FROM qpl_questions WHERE obj_fi = %s AND qpl_questions.tstamp > 0 AND qpl_questions.original_id IS NULL",
 
 1065                         if (
$row[
"equal_points"] == 1)
 
 1086                 if (array_key_exists(
"qpl_clipboard", 
$_SESSION))
 
 1088                         foreach (
$_SESSION[
"qpl_clipboard"] as $question_object)
 
 1090                                 if (strcmp($question_object[
"action"], 
"move") == 0)
 
 1092                                         $result = $ilDB->queryF(
"SELECT obj_fi FROM qpl_questions WHERE question_id = %s",
 
 1094                                                 array($question_object[
"question_id"])
 
 1099                                                 $source_questionpool = 
$row[
"obj_fi"];
 
 1101                                                 $affectedRows = $ilDB->manipulateF(
"UPDATE qpl_questions SET obj_fi = %s WHERE question_id = %s",
 
 1102                                                         array(
'integer',
'integer'),
 
 1103                                                         array($this->
getId(), $question_object[
"question_id"])
 
 1107                                                 $source_path = CLIENT_WEB_DIR . 
"/assessment/" . $source_questionpool . 
"/" . $question_object[
"question_id"] . 
"/";
 
 1108                                                 if (@is_dir($source_path))
 
 1110                                                         $target_path = CLIENT_WEB_DIR . 
"/assessment/" . $this->
getId() . 
"/";
 
 1111                                                         if (!@is_dir($target_path))
 
 1113                                                                 include_once 
"./Services/Utilities/classes/class.ilUtil.php";
 
 1116                                                         @rename($source_path, $target_path . $question_object[
"question_id"]);
 
 1141                 if (!array_key_exists(
"qpl_clipboard", 
$_SESSION))
 
 1145                 $_SESSION[
"qpl_clipboard"][$question_id] = array(
"question_id" => $question_id, 
"action" => 
"copy");
 
 1156                 if (!array_key_exists(
"qpl_clipboard", 
$_SESSION))
 
 1160                 $_SESSION[
"qpl_clipboard"][$question_id] = array(
"question_id" => $question_id, 
"action" => 
"move");
 
 1174                 include_once 
"./classes/class.ilObject.php";
 
 1201                 $query_result = $ilDB->query(
"SELECT qpl_questions.*, qpl_qst_type.type_tag FROM qpl_questions, qpl_qst_type WHERE qpl_questions.question_type_fi = qpl_qst_type.question_type_id AND " . $ilDB->in(
'qpl_questions.question_id', $question_ids, 
false, 
'integer') . 
" ORDER BY qpl_questions.title");
 
 1202                 if ($query_result->numRows())
 
 1204                         while (
$row = $ilDB->fetchAssoc($query_result))
 
 1225                 $query_result = $ilDB->query(
"SELECT qpl_questions.*, qpl_qst_type.type_tag FROM qpl_questions, qpl_qst_type WHERE qpl_questions.question_type_fi = qpl_qst_type.question_type_id AND " . $ilDB->in(
'qpl_questions.question_id', $question_ids, 
false, 
'integer') . 
" ORDER BY qpl_questions.title");
 
 1226                 if ($query_result->numRows())
 
 1228                         include_once 
"./Modules/TestQuestionPool/classes/class.assQuestion.php";
 
 1229                         while (
$row = $ilDB->fetchAssoc($query_result))
 
 1244                                         $duplicate_id = $question->object->duplicate(
true);
 
 1245                                         if ($duplicate_id > 0)
 
 1248                                                 $affectedRows = $ilDB->manipulateF(
"UPDATE tst_solutions SET question_fi = %s WHERE question_fi = %s",
 
 1249                                                         array(
'integer',
'integer'),
 
 1250                                                         array($duplicate_id, 
$row[
"question_id"])
 
 1254                                                 $affectedRows = $ilDB->manipulateF(
"UPDATE tst_test_rnd_qst SET question_fi = %s WHERE question_fi = %s",
 
 1255                                                         array(
'integer',
'integer'),
 
 1256                                                         array($duplicate_id, 
$row[
"question_id"])
 
 1260                                                 $affectedRows = $ilDB->manipulateF(
"UPDATE tst_test_result SET question_fi = %s WHERE question_fi = %s",
 
 1261                                                         array(
'integer',
'integer'),
 
 1262                                                         array($duplicate_id, 
$row[
"question_id"])
 
 1266                                                 $affectedRows = $ilDB->manipulateF(
"UPDATE ass_log SET question_fi = %s WHERE question_fi = %s",
 
 1267                                                         array(
'integer',
'integer'),
 
 1268                                                         array($duplicate_id, 
$row[
"question_id"])
 
 1292                 foreach (
$path as $item)
 
 1294                         if (($counter > 0) && ($counter < count(
$path)-1))
 
 1296                                 array_push($items, $item[
"title"]);
 
 1300                 $fullpath = join(
" > ", $items);
 
 1301                 include_once 
"./Services/Utilities/classes/class.ilStr.php";
 
 1302                 if (strlen($fullpath) > 60)
 
 1315         function &
_getAvailableQuestionpools($use_object_id = FALSE, $equal_points = FALSE, $could_be_offline = FALSE, $showPath = FALSE, $with_questioncount = FALSE, $permission = 
"read", 
$usr_id = 
"")
 
 1320                 $result_array = array();
 
 1321                 $permission = (strlen($permission) == 0) ? 
"read" : $permission;
 
 1330                 if (count($obj_ids))
 
 1332                         $in = $ilDB->in(
'object_data.obj_id', $obj_ids, 
false, 
'integer');
 
 1333                         if ($could_be_offline)
 
 1335                                 $result = $ilDB->query(
"SELECT qpl_questionpool.*, object_data.title FROM qpl_questionpool, object_data WHERE ".
 
 1336                                         "qpl_questionpool.obj_fi = object_data.obj_id AND $in ORDER BY object_data.title");
 
 1340                                 $result = $ilDB->queryF(
"SELECT qpl_questionpool.*, object_data.title FROM qpl_questionpool, object_data WHERE ".
 
 1341                                         "qpl_questionpool.obj_fi = object_data.obj_id AND $in AND qpl_questionpool.isonline = %s ".
 
 1342                                         "ORDER BY object_data.title",
 
 1359                                         $ref_id = array_search(
$row[
"obj_fi"], $obj_ids);
 
 1360                                         $title = (($showPath) ? $titles[$ref_id] : 
$row[
"title"]);
 
 1361                                         if ($with_questioncount)
 
 1363                                                 $title .= 
" [" . $row[
"questioncount"] . 
" " . ($row[
"questioncount"] == 1 ? $this->lng->txt(
"ass_question") : $this->lng->txt(
"assQuestions")) . 
"]";
 
 1368                                                 $result_array[$row[
"obj_fi"]] = array(
"title" => 
$title, 
"count" => $row[
"questioncount"]);
 
 1372                                                 $result_array[
$ref_id] = array(
"title" => 
$title, 
"count" => $row[
"questioncount"]);
 
 1377                 return $result_array;
 
 1384                 $questions = array();
 
 1385                 $result = $ilDB->queryF(
"SELECT qpl_questions.question_id FROM qpl_questions WHERE qpl_questions.original_id IS NULL AND qpl_questions.tstamp > 0 AND qpl_questions.obj_fi = %s",
 
 1387                         array($this->
getId())
 
 1391                         array_push($questions, 
$row[
"question_id"]);
 
 1406                 $newObj->saveToDb();
 
 1409                 foreach ($questions as $question_id)
 
 1411                         $newObj->copyQuestion($question_id, $newObj->getId());
 
 1415                 include_once 
"./Services/MetaData/classes/class.ilMD.php";
 
 1417                 $new_md =& $md->cloneMD($newObj->getId(),0,$newObj->getType());
 
 1420                 $newObj->updateMetaData();
 
 1434                 include_once 
"./Modules/Test/classes/class.ilObjAssessmentFolder.php";
 
 1436                 $lng->loadLanguageModule(
"assessment");
 
 1437                 $result = $ilDB->query(
"SELECT * FROM qpl_qst_type");
 
 1441                         if ($all_tags || (!in_array(
$row[
"question_type_id"], $forbidden_types)))
 
 1445                                 if (
$row[
"plugin"] == 0)
 
 1447                                         $types[$lng->txt(
$row[
"type_tag"])] = 
$row;
 
 1451                                         global $ilPluginAdmin;
 
 1452                                         $pl_names = $ilPluginAdmin->getActivePluginsForSlot(
IL_COMP_MODULE, 
"TestQuestionPool", 
"qst");
 
 1453                                         foreach ($pl_names as $pl_name)
 
 1456                                                 if (strcmp($pl->getQuestionType(), 
$row[
"type_tag"]) == 0)
 
 1458                                                         $types[$pl->getQuestionTypeTranslation()] = 
$row;
 
 1473                 global $ilPluginAdmin;
 
 1475                 $lng->loadLanguageModule(
"assessment");
 
 1476                 $result = $ilDB->query(
"SELECT * FROM qpl_qst_type");
 
 1480                         if (
$row[
"plugin"] == 0)
 
 1482                                 $types[
$row[
'type_tag']] = $lng->txt($row[
"type_tag"]);
 
 1486                                 $pl_names = $ilPluginAdmin->getActivePluginsForSlot(
IL_COMP_MODULE, 
"TestQuestionPool", 
"qst");
 
 1487                                 foreach ($pl_names as $pl_name)
 
 1490                                         if (strcmp($pl->getQuestionType(), 
$row[
"type_tag"]) == 0)
 
 1492                                                 $types[
$row[
'type_tag']] = $pl->getQuestionTypeTranslation();
 
 1508                 $allowed_types = array(
"assImagemapQuestion", 
"assMatchingQuestion",
 
 1510                         "assClozeTest", 
"assMultipleChoice", 
"assSingleChoice", 
"assOrderingQuestion");
 
 1513                 foreach($qtypes as $k => 
$t)
 
 1515                         if (in_array(
$t[
"type_tag"], $allowed_types))
 
 1528                 $questions = array();
 
 1529                 $result = $ilDB->queryF(
"SELECT qpl_questions.*, qpl_qst_type.* FROM qpl_questions, qpl_qst_type WHERE qpl_questions.original_id IS NULL AND qpl_questions.obj_fi = %s AND qpl_questions.tstamp > 0 AND qpl_questions.question_type_fi = qpl_qst_type.question_type_id",
 
 1531                         array($this->
getId())
 
 1535                         array_push($questions, 
$row);
 
 1549                 $result = $ilDB->manipulateF(
"UPDATE qpl_questionpool SET questioncount = %s, tstamp = %s WHERE obj_fi = %s",
 
 1550                         array(
'integer',
'integer',
'integer'),
 
 1563                 global $ilPluginAdmin;
 
 1564                 if ($ilPluginAdmin->isActive(
IL_COMP_MODULE, 
"TestQuestionPool", 
"qst", $a_pname))
 
 1579                 global 
$ilDB, $ilUser;
 
 1581                 $result = $ilDB->queryF(
"SELECT question_id FROM qpl_questions WHERE owner = %s AND tstamp = %s", 
 
 1582                         array(
"integer", 
"integer"),
 
 1583                         array($ilUser->getId(), 0)