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.ilObject.php";
00035
00036 class ilObjAssessmentFolder extends ilObject
00037 {
00044 function ilObjAssessmentFolder($a_id = 0,$a_call_by_reference = true)
00045 {
00046 $this->type = "assf";
00047 $this->ilObject($a_id,$a_call_by_reference);
00048 }
00049
00056 function update()
00057 {
00058 if (!parent::update())
00059 {
00060 return false;
00061 }
00062
00063
00064
00065 return true;
00066 }
00067
00075 function ilClone($a_parent_ref)
00076 {
00077 global $rbacadmin;
00078
00079
00080 $new_ref_id = parent::ilClone($a_parent_ref);
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 return $new_ref_id;
00096 }
00097
00104 function delete()
00105 {
00106
00107 if (!parent::delete())
00108 {
00109 return false;
00110 }
00111
00112
00113
00114 return true;
00115 }
00116
00126 function initDefaultRoles()
00127 {
00128 global $rbacadmin;
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140 return $roles ? $roles : array();
00141 }
00142
00156 function notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params = 0)
00157 {
00158 global $tree;
00159
00160 switch ($a_event)
00161 {
00162 case "link":
00163
00164
00165
00166
00167 break;
00168
00169 case "cut":
00170
00171
00172
00173 break;
00174
00175 case "copy":
00176
00177
00178
00179
00180 break;
00181
00182 case "paste":
00183
00184
00185
00186 break;
00187
00188 case "new":
00189
00190
00191
00192 break;
00193 }
00194
00195
00196 if ($a_node_id==$_GET["ref_id"])
00197 {
00198 $parent_obj =& $this->ilias->obj_factory->getInstanceByRefId($a_node_id);
00199 $parent_type = $parent_obj->getType();
00200 if($parent_type == $this->getType())
00201 {
00202 $a_node_id = (int) $tree->getParentId($a_node_id);
00203 }
00204 }
00205
00206 parent::notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params);
00207 }
00208
00212 function _enableAssessmentLogging($a_enable)
00213 {
00214 global $ilias;
00215
00216 if ($a_enable)
00217 {
00218 $ilias->setSetting("assessment_logging", 1);
00219 }
00220 else
00221 {
00222 $ilias->setSetting("assessment_logging", 0);
00223 }
00224 }
00225
00229 function _setLogLanguage($a_language)
00230 {
00231 global $ilias;
00232
00233 $ilias->setSetting("assessment_log_language", $a_language);
00234 }
00235
00239 function _enabledAssessmentLogging()
00240 {
00241 global $ilias;
00242
00243 return (boolean) $ilias->getSetting("assessment_logging");
00244 }
00245
00249 function _getLogLanguage()
00250 {
00251 global $ilias;
00252
00253 $lang = $ilias->getSetting("assessment_log_language");
00254 if (strlen($lang) == 0)
00255 {
00256 $lang = "en";
00257 }
00258 return $lang;
00259 }
00260
00273 function _addLog($user_id, $object_id, $logtext, $question_id = "", $original_id = "")
00274 {
00275 global $ilUser, $ilDB;
00276 if (strlen($question_id) == 0)
00277 {
00278 $question_id = "NULL";
00279 }
00280 else
00281 {
00282 $question_id = $ilDB->quote($question_id . "");
00283 }
00284 if (strlen($original_id) == 0)
00285 {
00286 $original_id = "NULL";
00287 }
00288 else
00289 {
00290 $original_id = $ilDB->quote($original_id . "");
00291 }
00292 $query = sprintf("INSERT INTO ass_log (ass_log_id, user_fi, obj_fi, logtext, question_fi, original_fi, TIMESTAMP) VALUES (NULL, %s, %s, %s, %s, %s, NULL)",
00293 $ilDB->quote($user_id . ""),
00294 $ilDB->quote($object_id . ""),
00295 $ilDB->quote($logtext . ""),
00296 $question_id,
00297 $original_id
00298 );
00299 $result = $ilDB->query($query);
00300 }
00301
00312 function &getLog($ts_from, $ts_to, $test_id, $with_user_actions = FALSE)
00313 {
00314 $log = array();
00315 $query = sprintf("SELECT *, TIMESTAMP + 0 AS TIMESTAMP14 FROM ass_log WHERE obj_fi = %s AND TIMESTAMP + 0 > %s AND TIMESTAMP + 0 < %s ORDER BY TIMESTAMP14",
00316 $this->ilias->db->quote($test_id . ""),
00317 $this->ilias->db->quote($ts_from . ""),
00318 $this->ilias->db->quote($ts_to . "")
00319 );
00320 $result = $this->ilias->db->query($query);
00321 while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC))
00322 {
00323 if (!array_key_exists($row["TIMESTAMP14"], $log))
00324 {
00325 $log[$row["TIMESTAMP14"]] = array();
00326 }
00327 array_push($log[$row["TIMESTAMP14"]], $row);
00328 }
00329 if ($with_user_actions)
00330 {
00331 require_once "./assessment/classes/class.ilObjTest.php";
00332 $query = sprintf("SELECT tst_solutions.*, tst_solutions.TIMESTAMP + 0 AS TIMESTAMP14 FROM tst_solutions WHERE test_fi = %s AND TIMESTAMP + 0 > %s AND TIMESTAMP + 0 < %s",
00333 $this->ilias->db->quote(ilObjTest::_getTestIDFromObjectID($test_id)),
00334 $this->ilias->db->quote($ts_from . ""),
00335 $this->ilias->db->quote($ts_to . "")
00336 );
00337 $result = $this->ilias->db->query($query);
00338 while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC))
00339 {
00340 if (!array_key_exists($row["TIMESTAMP14"], $log))
00341 {
00342 $log[$row["TIMESTAMP14"]] = array();
00343 }
00344 array_push($log[$row["TIMESTAMP14"]], $row);
00345 }
00346 }
00347 ksort($log);
00348
00349 $log_array = array();
00350 foreach ($log as $key => $value)
00351 {
00352 foreach ($value as $index => $row)
00353 {
00354 array_push($log_array, $row);
00355 }
00356 }
00357 return $log_array;
00358 }
00359 }
00360 ?>