00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00035 include_once "class.ilObjectGUI.php";
00036
00037 class ilObjAssessmentFolderGUI extends ilObjectGUI
00038 {
00043 var $conditions;
00044
00045 function ilObjAssessmentFolderGUI($a_data,$a_id,$a_call_by_reference)
00046 {
00047 global $rbacsystem;
00048
00049 $this->type = "assf";
00050 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,false);
00051
00052 if (!$rbacsystem->checkAccess('read',$this->object->getRefId()))
00053 {
00054 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read_assf"),$this->ilias->error_obj->WARNING);
00055 }
00056 }
00057
00058 function &executeCommand()
00059 {
00060 $next_class = $this->ctrl->getNextClass($this);
00061 $cmd = $this->ctrl->getCmd();
00062 $this->prepareOutput();
00063
00064 switch($next_class)
00065 {
00066 case 'ilpermissiongui':
00067 include_once("./classes/class.ilPermissionGUI.php");
00068 $perm_gui =& new ilPermissionGUI($this);
00069 $ret =& $this->ctrl->forwardCommand($perm_gui);
00070 break;
00071
00072 default:
00073 if($cmd == "" || $cmd == "view")
00074 {
00075 $cmd = "settings";
00076 }
00077 $cmd .= "Object";
00078 $this->$cmd();
00079
00080 break;
00081 }
00082 return true;
00083 }
00084
00085
00090 function saveObject()
00091 {
00092 global $rbacadmin;
00093
00094
00095 $newObj = parent::saveObject();
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106 ilUtil::sendInfo($this->lng->txt("object_added"),true);
00107
00108 $this->ctrl->redirect($this);
00109 }
00110
00111
00115 function settingsObject()
00116 {
00117 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.assessment_settings.html");
00118
00119 include_once "./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php";
00120 $questiontypes =& ilObjQuestionPool::_getQuestionTypes(TRUE);
00121 $manscoring = $this->object->_getManualScoring();
00122 foreach ($questiontypes as $type_name => $qtype)
00123 {
00124 $type_id = $qtype["question_type_id"];
00125 $this->tpl->setCurrentBlock("manual_scoring");
00126 $this->tpl->setVariable("VALUE_MANUAL_SCORING", $type_id);
00127 $this->tpl->setVariable("TXT_MANUAL_SCORING", $type_name);
00128 if (in_array($type_id, $manscoring))
00129 {
00130 $this->tpl->setVariable("CHECKED_MANUAL_SCORING", " checked=\"checked\"");
00131 }
00132 $this->tpl->parseCurrentBlock();
00133
00134 $this->tpl->setCurrentBlock("allowed_questiontypes");
00135 $this->tpl->setVariable("VALUE_ALLOWED_QUESTIONTYPES", $type_id);
00136 $this->tpl->setVariable("TEXT_ALLOWED_QUESTIONTYPES", $type_name);
00137 $forbidden_types = $this->object->_getForbiddenQuestionTypes();
00138 if (!in_array($type_id, $forbidden_types))
00139 {
00140 $this->tpl->setVariable("CHECKED_ALLOWED_QUESTIONTYPES", " checked=\"checked\"");
00141 }
00142 $this->tpl->parseCurrentBlock();
00143 }
00144
00145 $this->tpl->setCurrentBlock("adm_content");
00146 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00147 $this->tpl->setVariable("TXT_LOGGING", $this->lng->txt("assessment_log_logging"));
00148 $this->tpl->setVariable("TXT_ACTIVATE_ASSESSMENT_LOGGING", $this->lng->txt("activate_assessment_logging"));
00149 $this->tpl->setVariable("TXT_ASSESSMENT_SETTINGS", $this->lng->txt("assessment_settings"));
00150 $this->tpl->setVariable("TXT_REPORTING_LANGUAGE", $this->lng->txt("assessment_settings_reporting_language"));
00151 $languages = $this->lng->getInstalledLanguages();
00152 $default_language = $this->object->_getLogLanguage();
00153 if (!in_array($default_language, $languages))
00154 {
00155 $default_language = "en";
00156 }
00157 foreach ($languages as $key)
00158 {
00159 $this->tpl->setCurrentBlock("reporting_lang_row");
00160 $this->tpl->setVariable("LANG_VALUE", $key);
00161 $this->tpl->setVariable("LANG_NAME", $this->lng->txt("lang_" . $key));
00162 if (strcmp($default_language, $key) == 0)
00163 {
00164 $this->tpl->setVariable("LANG_SELECTED", " selected=\"selected\"");
00165 }
00166 $this->tpl->parseCurrentBlock();
00167 }
00168
00169 $this->tpl->setVariable("TXT_QUESTIONTYPES_HEADER", $this->lng->txt("assf_questiontypes"));
00170 $this->tpl->setVariable("TXT_ALLOWED_QUESTIONTYPES", $this->lng->txt("assf_allowed_questiontypes"));
00171 $this->tpl->setVariable("TXT_ALLOWED_QUESTIONTYPES_DESCRIPTION", $this->lng->txt("assf_allowed_questiontypes_desc"));
00172 $this->tpl->setVariable("TXT_MANUAL_SCORING_DESCRIPTION", $this->lng->txt("assessment_log_manual_scoring_desc"));
00173 $this->tpl->setVariable("TXT_MANUAL_SCORING_ACTIVATE", $this->lng->txt("assessment_log_manual_scoring_activate"));
00174 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
00175
00176 if($this->object->_enabledAssessmentLogging())
00177 {
00178 $this->tpl->setVariable("ASSESSMENT_LOGGING_CHECKED", " checked=\"checked\"");
00179 }
00180
00181 $this->tpl->parseCurrentBlock();
00182 }
00183
00187 function saveSettingsObject()
00188 {
00189 if ($_POST["chb_assessment_logging"] == 1)
00190 {
00191 $this->object->_enableAssessmentLogging(1);
00192 }
00193 else
00194 {
00195 $this->object->_enableAssessmentLogging(0);
00196 }
00197 $this->object->_setLogLanguage($_POST["reporting_language"]);
00198 $this->object->_setManualScoring($_POST["chb_manual_scoring"]);
00199 include_once "./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php";
00200 $questiontypes =& ilObjQuestionPool::_getQuestionTypes(TRUE);
00201 $forbidden_types = array();
00202 foreach ($questiontypes as $name => $row)
00203 {
00204 if (!in_array($row["question_type_id"], $_POST["chb_allowed_questiontypes"]))
00205 {
00206 array_push($forbidden_types, $row["question_type_id"]);
00207 }
00208 }
00209 $this->object->_setForbiddenQuestionTypes($forbidden_types);
00210 ilUtil::sendInfo($this->lng->txt("msg_obj_modified"),true);
00211
00212 $this->ctrl->redirect($this,'settings');
00213 }
00214
00218 function showLogObject()
00219 {
00220 $this->logsObject();
00221 }
00222
00226 function exportLogObject()
00227 {
00228 $this->logsObject();
00229 }
00230
00234 function logsObject()
00235 {
00236 $this->lng->loadLanguageModule("jscalendar");
00237 $this->tpl->addBlockFile("CALENDAR_LANG_JAVASCRIPT", "calendar_javascript", "tpl.calendar.html");
00238 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.assessment_logs.html");
00239 $this->tpl->setCurrentBlock("calendar_javascript");
00240 $this->tpl->setVariable("FULL_SUNDAY", $this->lng->txt("l_su"));
00241 $this->tpl->setVariable("FULL_MONDAY", $this->lng->txt("l_mo"));
00242 $this->tpl->setVariable("FULL_TUESDAY", $this->lng->txt("l_tu"));
00243 $this->tpl->setVariable("FULL_WEDNESDAY", $this->lng->txt("l_we"));
00244 $this->tpl->setVariable("FULL_THURSDAY", $this->lng->txt("l_th"));
00245 $this->tpl->setVariable("FULL_FRIDAY", $this->lng->txt("l_fr"));
00246 $this->tpl->setVariable("FULL_SATURDAY", $this->lng->txt("l_sa"));
00247 $this->tpl->setVariable("SHORT_SUNDAY", $this->lng->txt("s_su"));
00248 $this->tpl->setVariable("SHORT_MONDAY", $this->lng->txt("s_mo"));
00249 $this->tpl->setVariable("SHORT_TUESDAY", $this->lng->txt("s_tu"));
00250 $this->tpl->setVariable("SHORT_WEDNESDAY", $this->lng->txt("s_we"));
00251 $this->tpl->setVariable("SHORT_THURSDAY", $this->lng->txt("s_th"));
00252 $this->tpl->setVariable("SHORT_FRIDAY", $this->lng->txt("s_fr"));
00253 $this->tpl->setVariable("SHORT_SATURDAY", $this->lng->txt("s_sa"));
00254 $this->tpl->setVariable("FULL_JANUARY", $this->lng->txt("l_01"));
00255 $this->tpl->setVariable("FULL_FEBRUARY", $this->lng->txt("l_02"));
00256 $this->tpl->setVariable("FULL_MARCH", $this->lng->txt("l_03"));
00257 $this->tpl->setVariable("FULL_APRIL", $this->lng->txt("l_04"));
00258 $this->tpl->setVariable("FULL_MAY", $this->lng->txt("l_05"));
00259 $this->tpl->setVariable("FULL_JUNE", $this->lng->txt("l_06"));
00260 $this->tpl->setVariable("FULL_JULY", $this->lng->txt("l_07"));
00261 $this->tpl->setVariable("FULL_AUGUST", $this->lng->txt("l_08"));
00262 $this->tpl->setVariable("FULL_SEPTEMBER", $this->lng->txt("l_09"));
00263 $this->tpl->setVariable("FULL_OCTOBER", $this->lng->txt("l_10"));
00264 $this->tpl->setVariable("FULL_NOVEMBER", $this->lng->txt("l_11"));
00265 $this->tpl->setVariable("FULL_DECEMBER", $this->lng->txt("l_12"));
00266 $this->tpl->setVariable("SHORT_JANUARY", $this->lng->txt("s_01"));
00267 $this->tpl->setVariable("SHORT_FEBRUARY", $this->lng->txt("s_02"));
00268 $this->tpl->setVariable("SHORT_MARCH", $this->lng->txt("s_03"));
00269 $this->tpl->setVariable("SHORT_APRIL", $this->lng->txt("s_04"));
00270 $this->tpl->setVariable("SHORT_MAY", $this->lng->txt("s_05"));
00271 $this->tpl->setVariable("SHORT_JUNE", $this->lng->txt("s_06"));
00272 $this->tpl->setVariable("SHORT_JULY", $this->lng->txt("s_07"));
00273 $this->tpl->setVariable("SHORT_AUGUST", $this->lng->txt("s_08"));
00274 $this->tpl->setVariable("SHORT_SEPTEMBER", $this->lng->txt("s_09"));
00275 $this->tpl->setVariable("SHORT_OCTOBER", $this->lng->txt("s_10"));
00276 $this->tpl->setVariable("SHORT_NOVEMBER", $this->lng->txt("s_11"));
00277 $this->tpl->setVariable("SHORT_DECEMBER", $this->lng->txt("s_12"));
00278 $this->tpl->setVariable("ABOUT_CALENDAR", $this->lng->txt("about_calendar"));
00279 $this->tpl->setVariable("ABOUT_CALENDAR_LONG", $this->lng->txt("about_calendar_long"));
00280 $this->tpl->setVariable("ABOUT_TIME_LONG", $this->lng->txt("about_time"));
00281 $this->tpl->setVariable("PREV_YEAR", $this->lng->txt("prev_year"));
00282 $this->tpl->setVariable("PREV_MONTH", $this->lng->txt("prev_month"));
00283 $this->tpl->setVariable("GO_TODAY", $this->lng->txt("go_today"));
00284 $this->tpl->setVariable("NEXT_MONTH", $this->lng->txt("next_month"));
00285 $this->tpl->setVariable("NEXT_YEAR", $this->lng->txt("next_year"));
00286 $this->tpl->setVariable("SEL_DATE", $this->lng->txt("select_date"));
00287 $this->tpl->setVariable("DRAG_TO_MOVE", $this->lng->txt("drag_to_move"));
00288 $this->tpl->setVariable("PART_TODAY", $this->lng->txt("part_today"));
00289 $this->tpl->setVariable("DAY_FIRST", $this->lng->txt("day_first"));
00290 $this->tpl->setVariable("CLOSE", $this->lng->txt("close"));
00291 $this->tpl->setVariable("TODAY", $this->lng->txt("today"));
00292 $this->tpl->setVariable("TIME_PART", $this->lng->txt("time_part"));
00293 $this->tpl->setVariable("DEF_DATE_FORMAT", $this->lng->txt("def_date_format"));
00294 $this->tpl->setVariable("TT_DATE_FORMAT", $this->lng->txt("tt_date_format"));
00295 $this->tpl->setVariable("WK", $this->lng->txt("wk"));
00296 $this->tpl->setVariable("TIME", $this->lng->txt("time"));
00297 $this->tpl->parseCurrentBlock();
00298 $this->tpl->setCurrentBlock("CalendarJS");
00299 $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR", "./Modules/Test/js/calendar/calendar.js");
00300 $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR_SETUP", "./Modules/Test/js/calendar/calendar-setup.js");
00301 $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR_STYLESHEET", "./Modules/Test/js/calendar/calendar.css");
00302 $this->tpl->parseCurrentBlock();
00303 $this->tpl->setCurrentBlock("javascript_call_calendar");
00304 $this->tpl->setVariable("INPUT_FIELDS_STARTING_DATE", "starting_date");
00305 $this->tpl->setVariable("INPUT_FIELDS_ENDING_DATE", "ending_date");
00306 $this->tpl->setVariable("INPUT_FIELDS_REPORTING_DATE", "reporting_date");
00307 $this->tpl->parseCurrentBlock();
00308 include_once "./Modules/Test/classes/class.ilObjTest.php";
00309 include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php";
00310 $available_tests =& ilObjTest::_getAvailableTests(1);
00311 foreach ($available_tests as $key => $value)
00312 {
00313 $this->tpl->setCurrentBlock("sel_test_row");
00314 $this->tpl->setVariable("TXT_OPTION", ilUtil::prepareFormOutput($value) . " [" . $this->object->getNrOfLogEntries($key) . " " . $this->lng->txt("assessment_log_log_entries") . "]");
00315 $this->tpl->setVariable("VALUE_OPTION", $key);
00316 if (($_POST["sel_test"] > -1) && ($_POST["sel_test"] == $key))
00317 {
00318 $this->tpl->setVariable("SELECTED_OPTION", " selected=\"selected\"");
00319 }
00320 $this->tpl->parseCurrentBlock();
00321 }
00322
00323 if ((strcmp($this->ctrl->getCmd(), "showLog") == 0) ||
00324 (strcmp($this->ctrl->getCmd(), "exportLog") == 0))
00325 {
00326 include_once "./Services/Utilities/classes/class.ilUtil.php";
00327 $separator = ";";
00328 $csv = array();
00329 if (strcmp($this->ctrl->getCmd(), "exportLog") == 0)
00330 {
00331 $row = array(
00332 $this->lng->txt("assessment_log_datetime"),
00333 $this->lng->txt("user"),
00334 $this->lng->txt("assessment_log_text"),
00335 $this->lng->txt("question")
00336 );
00337 array_push($csv, ilUtil::processCSVRow($row, TRUE, $separator));
00338 }
00339 $ts_from = sprintf("%04d%02d%02d%02d%02d%02d", $_POST["log_from_date"]["y"], $_POST["log_from_date"]["m"], $_POST["log_from_date"]["d"], $_POST["log_from_time"]["h"], $_POST["log_from_time"]["m"], 0);
00340 $ts_to = sprintf("%04d%02d%02d%02d%02d%02d", $_POST["log_to_date"]["y"], $_POST["log_to_date"]["m"], $_POST["log_to_date"]["d"], $_POST["log_to_time"]["h"], $_POST["log_to_time"]["m"], 0);
00341 $log_output =& $this->object->getLog($ts_from, $ts_to, $_POST["sel_test"]);
00342 $users = array();
00343 foreach ($log_output as $key => $log)
00344 {
00345 if (array_key_exists("value1", $log))
00346 {
00347 $tblrow = array("tblrow1light", "tblrow2light");
00348 }
00349 else
00350 {
00351 $tblrow = array("tblrow1", "tblrow2");
00352 }
00353 $title = "";
00354 if (!array_key_exists($log["user_fi"], $users))
00355 {
00356 $users[$log["user_fi"]] = ilObjUser::_lookupName($log["user_fi"]);
00357 }
00358 $this->tpl->setCurrentBlock("output_row");
00359 $this->tpl->setVariable("ROW_CLASS", $tblrow[$key % 2]);
00360 $this->tpl->setVariable("TXT_DATETIME", ilFormat::formatDate(ilFormat::ftimestamp2datetimeDB($log["TIMESTAMP14"]), "datetime"));
00361 $csvrow = array();
00362 if (strcmp($this->ctrl->getCmd(), "exportLog") == 0)
00363 {
00364 array_push($csvrow, ilFormat::formatDate(ilFormat::ftimestamp2datetimeDB($log["TIMESTAMP14"]), "datetime"));
00365 }
00366 if ($log["question_fi"] || $log["original_fi"])
00367 {
00368 $title = assQuestion::_getQuestionTitle($log["question_fi"]);
00369 if (strlen($title) == 0)
00370 {
00371 $title = assQuestion::_getQuestionTitle($log["original_fi"]);
00372 }
00373 $title = $this->lng->txt("assessment_log_question") . ": " . $title;
00374 }
00375 $this->tpl->setVariable("TXT_USER", trim($users[$log["user_fi"]]["title"] . " " . $users[$log["user_fi"]]["firstname"] . " " . $users[$log["user_fi"]]["lastname"]));
00376 if (strcmp($this->ctrl->getCmd(), "exportLog") == 0)
00377 {
00378 array_push($csvrow, trim($users[$log["user_fi"]]["title"] . " " . $users[$log["user_fi"]]["firstname"] . " " . $users[$log["user_fi"]]["lastname"]));
00379 }
00380 if (array_key_exists("value1", $log))
00381 {
00382 if (strlen($title))
00383 {
00384 $this->tpl->setVariable("TXT_LOGTEXT", ilUtil::prepareFormOutput($this->lng->txt("assessment_log_user_answer") . " (" . $title . ")"));
00385 }
00386 else
00387 {
00388 $this->tpl->setVariable("TXT_LOGTEXT", ilUtil::prepareFormOutput($this->lng->txt("assessment_log_user_answer")));
00389 }
00390 if (strcmp($this->ctrl->getCmd(), "exportLog") == 0)
00391 {
00392 array_push($csvrow, $this->lng->txt("assessment_log_user_answer"));
00393 array_push($csvrow, $title);
00394 }
00395 }
00396 else
00397 {
00398 if (strlen($title))
00399 {
00400 $this->tpl->setVariable("TXT_LOGTEXT", trim(ilUtil::prepareFormOutput($log["logtext"]) . " (" . $title . ")"));
00401 }
00402 else
00403 {
00404 $this->tpl->setVariable("TXT_LOGTEXT", trim(ilUtil::prepareFormOutput($log["logtext"])));
00405 }
00406 if (strcmp($this->ctrl->getCmd(), "exportLog") == 0)
00407 {
00408 array_push($csvrow, trim($log["logtext"]));
00409 array_push($csvrow, $title);
00410 }
00411 }
00412 $this->tpl->parseCurrentBlock();
00413 if (strcmp($this->ctrl->getCmd(), "exportLog") == 0)
00414 {
00415 array_push($csv, ilUtil::processCSVRow($csvrow, TRUE, $separator));
00416 }
00417 }
00418 if (count($log_output) == 0)
00419 {
00420 $this->tpl->setCurrentBlock("empty_row");
00421 $this->tpl->setVariable("TXT_NOLOG", $this->lng->txt("assessment_log_no_log"));
00422 $this->tpl->parseCurrentBlock();
00423 }
00424 else
00425 {
00426 if (strcmp($this->ctrl->getCmd(), "exportLog") == 0)
00427 {
00428 $csvoutput = "";
00429 foreach ($csv as $row)
00430 {
00431 $csvoutput .= join($row, $separator) . "\n";
00432 }
00433 ilUtil::deliverData($csvoutput, str_replace(" ", "_", "log_" . $ts_from . "_" . $ts_to . "_" . $available_tests[$_POST["sel_test"]]).".csv");
00434 return;
00435 }
00436 }
00437 $this->tpl->setCurrentBlock("log_output");
00438 $this->tpl->setVariable("HEADER_DATETIME", $this->lng->txt("assessment_log_datetime"));
00439 $this->tpl->setVariable("HEADER_USER", $this->lng->txt("user"));
00440 $this->tpl->setVariable("HEADER_LOGTEXT", $this->lng->txt("assessment_log_text"));
00441 $this->tpl->parseCurrentBlock();
00442 }
00443
00444 $this->tpl->setCurrentBlock("adm_content");
00445 $this->tpl->setVariable("FORMACTION",
00446 $this->ctrl->getFormAction($this));
00447 $this->tpl->setVariable("TXT_ASSESSMENT_LOG", $this->lng->txt("assessment_log"));
00448 $this->tpl->setVariable("TXT_LOG_FROM", $this->lng->txt("from"));
00449 if (!is_array($_POST["log_from_date"]))
00450 {
00451 $date_input = ilUtil::makeDateSelect("log_from_date", "", "1", "1", 2004);
00452 $time_input = ilUtil::makeTimeSelect("log_from_time", TRUE, 0, 0);
00453 }
00454 else
00455 {
00456 $date_input = ilUtil::makeDateSelect("log_from_date", $_POST["log_from_date"]["y"], $_POST["log_from_date"]["m"], $_POST["log_from_date"]["d"], 2004);
00457 $time_input = ilUtil::makeTimeSelect("log_from_time", TRUE, $_POST["log_from_time"]["h"], $_POST["log_from_time"]["m"]);
00458 }
00459 $this->tpl->setVariable("INPUT_LOG_FROM", $date_input." / ".$time_input);
00460 $this->tpl->setVariable("IMG_CALENDAR", ilUtil::getImagePath("calendar.png"));
00461 $this->tpl->setVariable("TXT_LOG_FROM_CALENDAR", $this->lng->txt("assessment_log_open_calendar"));
00462 $this->tpl->setVariable("INPUT_FIELDS_LOG_FROM", "log_from_date");
00463 $this->tpl->setVariable("TXT_LOG_TO", $this->lng->txt("to"));
00464 if (!is_array($_POST["log_to_date"]))
00465 {
00466 $date_input = ilUtil::makeDateSelect("log_to_date", "", "", "", 2004);
00467 $time_input = ilUtil::makeTimeSelect("log_to_time");
00468 }
00469 else
00470 {
00471 $date_input = ilUtil::makeDateSelect("log_to_date", $_POST["log_to_date"]["y"], $_POST["log_to_date"]["m"], $_POST["log_to_date"]["d"], 2004);
00472 $time_input = ilUtil::makeTimeSelect("log_to_time", TRUE, $_POST["log_to_time"]["h"], $_POST["log_to_time"]["m"]);
00473 }
00474 $this->tpl->setVariable("INPUT_LOG_TO", $date_input." / ".$time_input);
00475 $this->tpl->setVariable("TXT_LOG_TO_CALENDAR", $this->lng->txt("assessment_log_open_calendar"));
00476 $this->tpl->setVariable("INPUT_FIELDS_LOG_TO", "log_to_date");
00477 $this->tpl->setVariable("TXT_CREATE", $this->lng->txt("show"));
00478 $this->tpl->setVariable("TXT_EXPORT", $this->lng->txt("export"));
00479 $this->tpl->setVariable("TXT_TEST", $this->lng->txt("assessment_log_for_test"));
00480 $this->tpl->setVariable("TXT_SELECT_TEST", $this->lng->txt("assessment_log_select_test"));
00481 $this->tpl->parseCurrentBlock();
00482 }
00483
00489 function deleteLogObject()
00490 {
00491 if (is_array($_POST["chb_test"]) && (count($_POST["chb_test"])))
00492 {
00493 $this->object->deleteLogEntries($_POST["chb_test"]);
00494 ilUtil::sendInfo($this->lng->txt("ass_log_deleted"));
00495 }
00496 else
00497 {
00498 ilUtil::sendInfo($this->lng->txt("ass_log_delete_no_selection"));
00499 }
00500 $this->logAdminObject();
00501 }
00502
00508 function logAdminObject()
00509 {
00510 global $ilUser;
00511
00512 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.assessment_log_admin.html");
00513
00514
00515 include_once "./Modules/Test/classes/class.ilObjTest.php";
00516 $available_tests =& ilObjTest::_getAvailableTests(FALSE);
00517 $count = count($available_tests);
00518 if ($count)
00519 {
00520 $data = array();
00521 $i=0;
00522 foreach ($available_tests as $ref_id => $title)
00523 {
00524 $path = $this->object->getFullPath($ref_id);
00525 $obj_id = $this->object->_lookupObjectId($ref_id);
00526 $nr = $this->object->getNrOfLogEntries($obj_id);
00527 array_push($data, array("<input type=\"checkbox\" name=\"chb_test[]\" value=\"$obj_id\" />", $title, $nr, $path));
00528 }
00529
00530 $offset = ($_GET["offset"]) ? $_GET["offset"] : 0;
00531 $orderdirection = ($_GET["sort_order"]) ? $_GET["sort_order"] : "asc";
00532 $ordercolumn = ($_GET["sort_by"]) ? $_GET["sort_by"] : "title";
00533
00534 $maxentries = $ilUser->getPref("hits_per_page");
00535 if ($maxentries < 1)
00536 {
00537 $maxentries = 9999;
00538 }
00539
00540 include_once("./Services/Table/classes/class.ilTableGUI.php");
00541 $table = new ilTableGUI(0, FALSE);
00542 $table->setTitle($this->lng->txt("ass_log_available_tests"));
00543
00544 $header_names = array(
00545 "",
00546 $this->lng->txt("title"),
00547 $this->lng->txt("ass_log_count_datasets"),
00548 $this->lng->txt("ass_log_path")
00549 );
00550 $table->setHeaderNames($header_names);
00551
00552 $table->enable("auto_sort");
00553 $table->enable("sort");
00554 $table->enable("select_all");
00555 $table->enable("action");
00556 $table->setLimit($maxentries);
00557
00558 $table->addActionButton("deleteLog", $this->lng->txt("ass_log_delete_entries"));
00559
00560 $table->setFormName("formLogAdmin");
00561 $table->setSelectAllCheckbox("chb_test");
00562 $header_params = $this->ctrl->getParameterArray($this, "logAdmin");
00563 $header_vars = array("", "title", "count", "path");
00564 $table->setHeaderVars($header_vars, $header_params);
00565 $table->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
00566
00567 $table->setOffset($offset);
00568 $table->setMaxCount(count($available_tests));
00569 $table->setOrderColumn($ordercolumn);
00570 $table->setOrderDirection($orderdirection);
00571 $table->setData($data);
00572
00573
00574 $table->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
00575
00576
00577 $tableoutput = $table->render();
00578 $this->tpl->setVariable("TABLE_DATA", $tableoutput);
00579 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this, "deleteLog"));
00580 }
00581 }
00582
00583 function getAdminTabs(&$tabs_gui)
00584 {
00585 $this->getTabs($tabs_gui);
00586 }
00587
00588 function getLogdataSubtabs()
00589 {
00590 global $ilTabs;
00591
00592
00593 $ilTabs->addSubTabTarget("ass_log_output",
00594 $this->ctrl->getLinkTarget($this, "logs"),
00595 array("logs", "showLog", "exportLog")
00596 , "");
00597
00598
00599 $ilTabs->addSubTabTarget("ass_log_admin",
00600 $this->ctrl->getLinkTarget($this, "logAdmin"),
00601 array("logAdmin", "deleteLog"),
00602 "", "");
00603
00604 }
00605
00611 function defaultsObject()
00612 {
00613 global $ilAccess, $rbacreview, $lng, $ilCtrl, $tpl;
00614
00615 $assessmentSetting = new ilSetting("assessment");
00616 $use_javascript = array_key_exists("use_javascript", $_GET) ? $_GET["use_javascript"] : $assessmentSetting->get("use_javascript");
00617 $imap_line_color = array_key_exists("imap_line_color", $_GET) ? $_GET["imap_line_color"] : $assessmentSetting->get("imap_line_color");
00618 if (strlen($imap_line_color) == 0) $imap_line_color = "FF0000";
00619
00620 if (!$ilAccess->checkAccess("write", "", $this->object->getRefId()))
00621 {
00622 $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
00623 }
00624
00625 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
00626 $form = new ilPropertyFormGUI();
00627 $form->setFormAction($ilCtrl->getFormAction($this));
00628 $form->setTitle($lng->txt("assessment_defaults"));
00629
00630
00631 $enable = new ilCheckboxInputGUI($lng->txt("assessment_use_javascript"), "use_javascript");
00632 $enable->setChecked($use_javascript);
00633 $enable->setInfo($lng->txt("assessment_use_javascript_desc"));
00634 $form->addItem($enable);
00635
00636 $linepicker = new ilTextInputGUI($lng->txt("assessment_imap_line_color"), "imap_line_color");
00637 $linepicker->setValue($imap_line_color);
00638 $linepicker->setMaxLength(6);
00639 $linepicker->setSize(6);
00640 $form->addItem($linepicker);
00641
00642 $form->addCommandButton("saveDefaults", $lng->txt("save"));
00643 $form->addCommandButton("defaults", $lng->txt("cancel"));
00644
00645 $tpl->setVariable("ADM_CONTENT", $form->getHTML());
00646 }
00647
00653 function saveDefaultsObject()
00654 {
00655 global $ilCtrl;
00656
00657 $assessmentSetting = new ilSetting("assessment");
00658 if ($_POST["use_javascript"])
00659 {
00660 $assessmentSetting->set("use_javascript", "1");
00661 }
00662 else
00663 {
00664 $assessmentSetting->set("use_javascript", "0");
00665 }
00666 if (strlen($_POST["imap_line_color"]) == 6)
00667 {
00668 $assessmentSetting->set("imap_line_color", $_POST["imap_line_color"]);
00669 }
00670 $ilCtrl->redirect($this, "defaults");
00671 }
00672
00673
00679 function getTabs(&$tabs_gui)
00680 {
00681 global $rbacsystem;
00682
00683 switch ($this->ctrl->getCmd())
00684 {
00685 case "logs":
00686 case "showLog":
00687 case "exportLog":
00688 case "logAdmin":
00689 case "deleteLog":
00690 $this->getLogdataSubtabs();
00691 break;
00692 }
00693
00694 if ($rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
00695 {
00696 $tabs_gui->addTarget("settings",
00697 $this->ctrl->getLinkTarget($this, "settings"), array("settings","","view"), "", "");
00698
00699 $tabs_gui->addTarget("logs",
00700 $this->ctrl->getLinkTarget($this, "logs"),
00701 array("logs","showLog", "exportLog", "logAdmin", "deleteLog"),
00702 "", "");
00703
00704 $tabs_gui->addTarget("defaults",
00705 $this->ctrl->getLinkTarget($this, "defaults"), array("defaults","saveDefaults"), "", "");
00706 }
00707
00708 if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
00709 {
00710 $tabs_gui->addTarget("perm_settings",
00711 $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');
00712 }
00713 }
00714 }
00715 ?>