00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00034 require_once "class.ilObjectGUI.php";
00035
00036 class ilObjAssessmentFolderGUI extends ilObjectGUI
00037 {
00042 var $conditions;
00043
00044 function ilObjAssessmentFolderGUI($a_data,$a_id,$a_call_by_reference)
00045 {
00046 global $rbacsystem;
00047
00048 $this->type = "assf";
00049 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference);
00050
00051 if (!$rbacsystem->checkAccess('read',$this->object->getRefId()))
00052 {
00053 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read_assf"),$this->ilias->error_obj->WARNING);
00054 }
00055
00056 }
00057
00062 function saveObject()
00063 {
00064 global $rbacadmin;
00065
00066
00067 $newObj = parent::saveObject();
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 sendInfo($this->lng->txt("object_added"),true);
00079
00080 header("Location:".$this->getReturnLocation("save","adm_object.php?".$this->link_params));
00081 exit();
00082 }
00083
00084
00088 function settingsObject()
00089 {
00090 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.assessment_settings.html");
00091 $this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=gateway");
00092 $this->tpl->setVariable("TXT_ACTIVATE_ASSESSMENT_LOGGING", $this->lng->txt("activate_assessment_logging"));
00093 $this->tpl->setVariable("TXT_ASSESSMENT_SETTINGS", $this->lng->txt("assessment_settings"));
00094 $this->tpl->setVariable("TXT_REPORTING_LANGUAGE", $this->lng->txt("assessment_settings_reporting_language"));
00095 $languages = $this->lng->getInstalledLanguages();
00096 $default_language = $this->object->_getLogLanguage();
00097 if (!in_array($default_language, $languages))
00098 {
00099 $default_language = "en";
00100 }
00101 foreach ($languages as $key)
00102 {
00103 $this->tpl->setCurrentBlock("reporting_lang_row");
00104 $this->tpl->setVariable("LANG_VALUE", $key);
00105 $this->tpl->setVariable("LANG_NAME", $this->lng->txt("lang_" . $key));
00106 if (strcmp($default_language, $key) == 0)
00107 {
00108 $this->tpl->setVariable("LANG_SELECTED", " selected=\"selected\"");
00109 }
00110 $this->tpl->parseCurrentBlock();
00111 }
00112 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
00113
00114 if($this->object->_enabledAssessmentLogging())
00115 {
00116 $this->tpl->setVariable("ASSESSMENT_LOGGING_CHECKED", " checked=\"checked\"");
00117 }
00118
00119 $this->tpl->parseCurrentBlock();
00120 }
00121
00125 function saveSettingsObject()
00126 {
00127 if ($_POST["chb_assessment_logging"] == 1)
00128 {
00129 $this->object->_enableAssessmentLogging(1);
00130 }
00131 else
00132 {
00133 $this->object->_enableAssessmentLogging(0);
00134 }
00135 $this->object->_setLogLanguage($_POST["reporting_language"]);
00136 sendInfo($this->lng->txt("msg_obj_modified"));
00137 $this->settingsObject();
00138 }
00139
00143 function logsObject()
00144 {
00145 $this->lng->loadLanguageModule("jscalendar");
00146 $this->tpl->addBlockFile("CALENDAR_LANG_JAVASCRIPT", "calendar_javascript", "tpl.calendar.html");
00147 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.assessment_logs.html");
00148 $this->tpl->setCurrentBlock("calendar_javascript");
00149 $this->tpl->setVariable("FULL_SUNDAY", $this->lng->txt("l_su"));
00150 $this->tpl->setVariable("FULL_MONDAY", $this->lng->txt("l_mo"));
00151 $this->tpl->setVariable("FULL_TUESDAY", $this->lng->txt("l_tu"));
00152 $this->tpl->setVariable("FULL_WEDNESDAY", $this->lng->txt("l_we"));
00153 $this->tpl->setVariable("FULL_THURSDAY", $this->lng->txt("l_th"));
00154 $this->tpl->setVariable("FULL_FRIDAY", $this->lng->txt("l_fr"));
00155 $this->tpl->setVariable("FULL_SATURDAY", $this->lng->txt("l_sa"));
00156 $this->tpl->setVariable("SHORT_SUNDAY", $this->lng->txt("s_su"));
00157 $this->tpl->setVariable("SHORT_MONDAY", $this->lng->txt("s_mo"));
00158 $this->tpl->setVariable("SHORT_TUESDAY", $this->lng->txt("s_tu"));
00159 $this->tpl->setVariable("SHORT_WEDNESDAY", $this->lng->txt("s_we"));
00160 $this->tpl->setVariable("SHORT_THURSDAY", $this->lng->txt("s_th"));
00161 $this->tpl->setVariable("SHORT_FRIDAY", $this->lng->txt("s_fr"));
00162 $this->tpl->setVariable("SHORT_SATURDAY", $this->lng->txt("s_sa"));
00163 $this->tpl->setVariable("FULL_JANUARY", $this->lng->txt("l_01"));
00164 $this->tpl->setVariable("FULL_FEBRUARY", $this->lng->txt("l_02"));
00165 $this->tpl->setVariable("FULL_MARCH", $this->lng->txt("l_03"));
00166 $this->tpl->setVariable("FULL_APRIL", $this->lng->txt("l_04"));
00167 $this->tpl->setVariable("FULL_MAY", $this->lng->txt("l_05"));
00168 $this->tpl->setVariable("FULL_JUNE", $this->lng->txt("l_06"));
00169 $this->tpl->setVariable("FULL_JULY", $this->lng->txt("l_07"));
00170 $this->tpl->setVariable("FULL_AUGUST", $this->lng->txt("l_08"));
00171 $this->tpl->setVariable("FULL_SEPTEMBER", $this->lng->txt("l_09"));
00172 $this->tpl->setVariable("FULL_OCTOBER", $this->lng->txt("l_10"));
00173 $this->tpl->setVariable("FULL_NOVEMBER", $this->lng->txt("l_11"));
00174 $this->tpl->setVariable("FULL_DECEMBER", $this->lng->txt("l_12"));
00175 $this->tpl->setVariable("SHORT_JANUARY", $this->lng->txt("s_01"));
00176 $this->tpl->setVariable("SHORT_FEBRUARY", $this->lng->txt("s_02"));
00177 $this->tpl->setVariable("SHORT_MARCH", $this->lng->txt("s_03"));
00178 $this->tpl->setVariable("SHORT_APRIL", $this->lng->txt("s_04"));
00179 $this->tpl->setVariable("SHORT_MAY", $this->lng->txt("s_05"));
00180 $this->tpl->setVariable("SHORT_JUNE", $this->lng->txt("s_06"));
00181 $this->tpl->setVariable("SHORT_JULY", $this->lng->txt("s_07"));
00182 $this->tpl->setVariable("SHORT_AUGUST", $this->lng->txt("s_08"));
00183 $this->tpl->setVariable("SHORT_SEPTEMBER", $this->lng->txt("s_09"));
00184 $this->tpl->setVariable("SHORT_OCTOBER", $this->lng->txt("s_10"));
00185 $this->tpl->setVariable("SHORT_NOVEMBER", $this->lng->txt("s_11"));
00186 $this->tpl->setVariable("SHORT_DECEMBER", $this->lng->txt("s_12"));
00187 $this->tpl->setVariable("ABOUT_CALENDAR", $this->lng->txt("about_calendar"));
00188 $this->tpl->setVariable("ABOUT_CALENDAR_LONG", $this->lng->txt("about_calendar_long"));
00189 $this->tpl->setVariable("ABOUT_TIME_LONG", $this->lng->txt("about_time"));
00190 $this->tpl->setVariable("PREV_YEAR", $this->lng->txt("prev_year"));
00191 $this->tpl->setVariable("PREV_MONTH", $this->lng->txt("prev_month"));
00192 $this->tpl->setVariable("GO_TODAY", $this->lng->txt("go_today"));
00193 $this->tpl->setVariable("NEXT_MONTH", $this->lng->txt("next_month"));
00194 $this->tpl->setVariable("NEXT_YEAR", $this->lng->txt("next_year"));
00195 $this->tpl->setVariable("SEL_DATE", $this->lng->txt("select_date"));
00196 $this->tpl->setVariable("DRAG_TO_MOVE", $this->lng->txt("drag_to_move"));
00197 $this->tpl->setVariable("PART_TODAY", $this->lng->txt("part_today"));
00198 $this->tpl->setVariable("DAY_FIRST", $this->lng->txt("day_first"));
00199 $this->tpl->setVariable("CLOSE", $this->lng->txt("close"));
00200 $this->tpl->setVariable("TODAY", $this->lng->txt("today"));
00201 $this->tpl->setVariable("TIME_PART", $this->lng->txt("time_part"));
00202 $this->tpl->setVariable("DEF_DATE_FORMAT", $this->lng->txt("def_date_format"));
00203 $this->tpl->setVariable("TT_DATE_FORMAT", $this->lng->txt("tt_date_format"));
00204 $this->tpl->setVariable("WK", $this->lng->txt("wk"));
00205 $this->tpl->setVariable("TIME", $this->lng->txt("time"));
00206 $this->tpl->parseCurrentBlock();
00207 $this->tpl->setCurrentBlock("CalendarJS");
00208 $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR", ilUtil::getJSPath("calendar.js"));
00209 $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR_SETUP", ilUtil::getJSPath("calendar-setup.js"));
00210 $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR_STYLESHEET", ilUtil::getJSPath("calendar.css"));
00211 $this->tpl->parseCurrentBlock();
00212 $this->tpl->setCurrentBlock("javascript_call_calendar");
00213 $this->tpl->setVariable("INPUT_FIELDS_STARTING_DATE", "starting_date");
00214 $this->tpl->setVariable("INPUT_FIELDS_ENDING_DATE", "ending_date");
00215 $this->tpl->setVariable("INPUT_FIELDS_REPORTING_DATE", "reporting_date");
00216 $this->tpl->parseCurrentBlock();
00217 require_once ("./assessment/classes/class.ilObjTest.php");
00218 $available_tests =& ilObjTest::_getAvailableTests(1);
00219 foreach ($available_tests as $key => $value)
00220 {
00221 $this->tpl->setCurrentBlock("sel_test_row");
00222 $this->tpl->setVariable("TXT_OPTION", ilUtil::prepareFormOutput($value));
00223 $this->tpl->setVariable("VALUE_OPTION", $key);
00224 if (($_POST["sel_test"] > -1) && ($_POST["sel_test"] == $key))
00225 {
00226 $this->tpl->setVariable("SELECTED_OPTION", " selected=\"selected\"");
00227 }
00228 $this->tpl->parseCurrentBlock();
00229 }
00230
00231 if ($_POST["cmd"]["logs"])
00232 {
00233 require_once "./assessment/classes/class.assQuestion.php";
00234 $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);
00235 $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);
00236 $log_output =& $this->object->getLog($ts_from, $ts_to, $_POST["sel_test"], $_POST["log_user_answers"]);
00237 $users = array();
00238 foreach ($log_output as $key => $log)
00239 {
00240 if (array_key_exists("value1", $log))
00241 {
00242 $tblrow = array("tblrow1light", "tblrow2light");
00243 }
00244 else
00245 {
00246 $tblrow = array("tblrow1", "tblrow2");
00247 }
00248 $title = "";
00249 if (!array_key_exists($log["user_fi"], $users))
00250 {
00251 $users[$log["user_fi"]] = ilObjUser::_lookupName($log["user_fi"]);
00252 }
00253 $this->tpl->setCurrentBlock("output_row");
00254 $this->tpl->setVariable("ROW_CLASS", $tblrow[$key % 2]);
00255 $this->tpl->setVariable("TXT_DATETIME", ilFormat::formatDate(ilFormat::ftimestamp2datetimeDB($log["TIMESTAMP14"]), "datetime"));
00256 if ($log["question_fi"] || $log["original_fi"])
00257 {
00258 $title = ASS_Question::_getQuestionTitle($log["question_fi"]);
00259 if (strlen($title) == 0)
00260 {
00261 $title = ASS_Question::_getQuestionTitle($log["original_fi"]);
00262 }
00263 $title = "(" . $this->lng->txt("assessment_log_question") . ": " . $title . ")";
00264 }
00265 $this->tpl->setVariable("TXT_USER", trim($users[$log["user_fi"]]["title"] . " " . $users[$log["user_fi"]]["firstname"] . " " . $users[$log["user_fi"]]["lastname"]));
00266 if (array_key_exists("value1", $log))
00267 {
00268 $this->tpl->setVariable("TXT_LOGTEXT", ilUtil::prepareFormOutput($this->lng->txt("assessment_log_user_answer") . " " . $title));
00269 }
00270 else
00271 {
00272 $this->tpl->setVariable("TXT_LOGTEXT", trim(ilUtil::prepareFormOutput($log["logtext"]) . " " . $title));
00273 }
00274 $this->tpl->parseCurrentBlock();
00275 }
00276 if (count($log_output) == 0)
00277 {
00278 $this->tpl->setCurrentBlock("empty_row");
00279 $this->tpl->setVariable("TXT_NOLOG", $this->lng->txt("assessment_log_no_log"));
00280 $this->tpl->parseCurrentBlock();
00281 }
00282 $this->tpl->setCurrentBlock("log_output");
00283 $this->tpl->setVariable("HEADER_DATETIME", $this->lng->txt("assessment_log_datetime"));
00284 $this->tpl->setVariable("HEADER_USER", $this->lng->txt("user"));
00285 $this->tpl->setVariable("HEADER_LOGTEXT", $this->lng->txt("assessment_log_text"));
00286 $this->tpl->parseCurrentBlock();
00287 }
00288
00289 $this->tpl->setCurrentBlock("adm_content");
00290 $this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=gateway");
00291 $this->tpl->setVariable("TXT_ASSESSMENT_LOG", $this->lng->txt("assessment_log"));
00292 $this->tpl->setVariable("TXT_LOG_FROM", $this->lng->txt("from"));
00293 if (!is_array($_POST["log_from_date"]))
00294 {
00295 $date_input = ilUtil::makeDateSelect("log_from_date", "", "", "", 2004);
00296 $time_input = ilUtil::makeTimeSelect("log_from_time");
00297 }
00298 else
00299 {
00300 $date_input = ilUtil::makeDateSelect("log_from_date", $_POST["log_from_date"]["y"], $_POST["log_from_date"]["m"], $_POST["log_from_date"]["d"], 2004);
00301 $time_input = ilUtil::makeTimeSelect("log_from_time", TRUE, $_POST["log_from_time"]["h"], $_POST["log_from_time"]["m"]);
00302 }
00303 $this->tpl->setVariable("INPUT_LOG_FROM", $date_input." / ".$time_input);
00304 $this->tpl->setVariable("IMG_CALENDAR", ilUtil::getImagePath("calendar.png"));
00305 $this->tpl->setVariable("TXT_LOG_FROM_CALENDAR", $this->lng->txt("assessment_log_open_calendar"));
00306 $this->tpl->setVariable("INPUT_FIELDS_LOG_FROM", "log_from_date");
00307 $this->tpl->setVariable("TXT_LOG_TO", $this->lng->txt("to"));
00308 if (!is_array($_POST["log_to_date"]))
00309 {
00310 $date_input = ilUtil::makeDateSelect("log_to_date", "", "", "", 2004);
00311 $time_input = ilUtil::makeTimeSelect("log_to_time");
00312 }
00313 else
00314 {
00315 $date_input = ilUtil::makeDateSelect("log_to_date", $_POST["log_to_date"]["y"], $_POST["log_to_date"]["m"], $_POST["log_to_date"]["d"], 2004);
00316 $time_input = ilUtil::makeTimeSelect("log_to_time", TRUE, $_POST["log_to_time"]["h"], $_POST["log_to_time"]["m"]);
00317 }
00318 $this->tpl->setVariable("INPUT_LOG_TO", $date_input." / ".$time_input);
00319 $this->tpl->setVariable("TXT_LOG_TO_CALENDAR", $this->lng->txt("assessment_log_open_calendar"));
00320 $this->tpl->setVariable("TXT_LOG_USER_ANSWERS", $this->lng->txt("assessment_log_user_answers"));
00321 if ($_POST["log_user_answers"] == 1)
00322 {
00323 $this->tpl->setVariable("CHECKED_USER_ANSWERS", " checked=\"checked\"");
00324 }
00325 $this->tpl->setVariable("INPUT_FIELDS_LOG_TO", "log_to_date");
00326 $this->tpl->setVariable("TXT_CREATE", $this->lng->txt("show"));
00327 $this->tpl->setVariable("TXT_EXPORT", $this->lng->txt("export"));
00328 $this->tpl->setVariable("TXT_TEST", $this->lng->txt("assessment_log_for_test"));
00329 $this->tpl->setVariable("TXT_SELECT_TEST", $this->lng->txt("assessment_log_select_test"));
00330 $this->tpl->parseCurrentBlock();
00331 }
00332 }
00333 ?>