• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

classes/class.ilObjAssessmentFolderGUI.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2006 ILIAS open source, University of Cologne            |
00007         |                                                                             |
00008         | This program is free software; you can redistribute it and/or               |
00009         | modify it under the terms of the GNU General Public License                 |
00010         | as published by the Free Software Foundation; either version 2              |
00011         | of the License, or (at your option) any later version.                      |
00012         |                                                                             |
00013         | This program is distributed in the hope that it will be useful,             |
00014         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00015         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00016         | GNU General Public License for more details.                                |
00017         |                                                                             |
00018         | You should have received a copy of the GNU General Public License           |
00019         | along with this program; if not, write to the Free Software                 |
00020         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
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                 // create and insert forum in objecttree
00095                 $newObj = parent::saveObject();
00096 
00097                 // setup rolefolder & default local roles
00098                 //$roles = $newObj->initDefaultRoles();
00099 
00100                 // ...finally assign role to creator of object
00101                 //$rbacadmin->assignUser($roles[0], $newObj->getOwner(), "y");
00102 
00103                 // put here object specific stuff
00104 
00105                 // always send a message
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                 // get test titles with ref_id
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                         // footer
00574                         $table->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
00575 
00576                         // render table
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                 // log output
00593                 $ilTabs->addSubTabTarget("ass_log_output",
00594                          $this->ctrl->getLinkTarget($this, "logs"),
00595                          array("logs", "showLog", "exportLog")
00596                          , "");
00597         
00598                 // log administration
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                 // Enable javascript
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 } // END class.ilObjAssessmentFolderGUI
00715 ?>

Generated on Fri Dec 13 2013 17:56:47 for ILIAS Release_3_9_x_branch .rev 46835 by  doxygen 1.7.1