Class ilObjExercise. More...
Public Member Functions | |
ilObjExercise ($a_id=0, $a_call_by_reference=true) | |
Constructor public. | |
setDate ($a_hour, $a_minutes, $a_day, $a_month, $a_year) | |
getTimestamp () | |
setTimestamp ($a_timestamp) | |
setInstruction ($a_instruction) | |
getInstruction () | |
getFiles () | |
checkDate () | |
deliverFile ($a_http_post_files, $user_id) | |
addUploadedFile ($a_http_post_files) | |
deleteFiles ($a_files) | |
saveData () | |
ilClone ($a_parent_ref) | |
copy all properties and subobjects of a course. | |
& | getDeliveredFiles ($user_id) |
Returns the delivered files of an user. | |
deleteDeliveredFiles ($file_id_array, $user_id) | |
Deletes already delivered files. | |
deliverReturnedFiles ($user_id) | |
Delivers the returned files of an user. | |
delete () | |
delete course and all related data | |
notify ($a_event, $a_ref_id, $a_node_id, $a_params=0) | |
notifys an object about an event occured Based on the event happend, each object may decide how it reacts. | |
read () | |
update () | |
update object in db | |
getMemberListData () | |
get member list data | |
getLastSubmission ($member_id) | |
Get the date of the last submission of a user for the exercise. | |
send ($a_members) | |
send exercise per mail to members | |
_lookupUpdatedSubmission ($exc_id, $member_id) | |
Check whether student has upload new files after tutor has set the exercise to another than notgraded. | |
_lookupAnyExerciseSent ($a_exc_id) | |
Check whether exercise has been sent to any student per mail. | |
_lookupNewFiles ($exc_id, $member_id) | |
Check how much files have been uploaded by the learner after the last download of the tutor. | |
_lookupStatusTime ($exc_id, $member_id) | |
Get time when exercise has been set to solved. | |
_lookupSentTime ($exc_id, $member_id) | |
Get time when exercise has been sent per e-mail to user. | |
_lookupFeedbackTime ($exc_id, $member_id) | |
Get time when feedback mail has been sent. | |
__formatBody () | |
__formatSubject () | |
__formatRecipients ($a_members) | |
_checkCondition ($a_exc_id, $a_operator, $a_value) | |
Data Fields | |
$file_obj | |
$members_obj | |
$files | |
$timestamp | |
$hour | |
$minutes | |
$day | |
$month | |
$year | |
$instruction |
Class ilObjExercise.
Definition at line 40 of file class.ilObjExercise.php.
ilObjExercise::__formatBody | ( | ) |
Definition at line 549 of file class.ilObjExercise.php.
References ilObject::$lng, formatDate(), getInstruction(), getTimestamp(), and ilObject::getType().
Referenced by send().
{ global $lng; $body = $this->getInstruction(); $body .= "\n\n"; $body .= $lng->txt("exc_edit_until") . ": ". ilFormat::formatDate(date("Y-m-d H:i:s",$this->getTimestamp()), "datetime", true); $body .= "\n\n"; $body .= ILIAS_HTTP_PATH. "/goto.php?target=". $this->getType(). "_".$this->getRefId()."&client_id=".CLIENT_ID; return $body; }
ilObjExercise::__formatRecipients | ( | $ | a_members | ) |
Definition at line 571 of file class.ilObjExercise.php.
References ilObjectFactory::getInstanceByObjId().
Referenced by send().
{ foreach($a_members as $member_id => $value) { $tmp_obj = ilObjectFactory::getInstanceByObjId($member_id); $tmp_members[] = $tmp_obj->getLogin(); unset($tmp_obj); } return implode(',',$tmp_members ? $tmp_members : array()); }
ilObjExercise::__formatSubject | ( | ) |
Definition at line 566 of file class.ilObjExercise.php.
References ilObject::getDescription(), and ilObject::getTitle().
Referenced by send().
{ return $subject = $this->getTitle()." (".$this->getDescription().")"; }
ilObjExercise::_checkCondition | ( | $ | a_exc_id, | |
$ | a_operator, | |||
$ | a_value | |||
) |
Definition at line 584 of file class.ilObjExercise.php.
References ilObject::$ilias, and ilExerciseMembers::_lookupStatus().
{ global $ilias; switch($a_operator) { case 'passed': if (ilExerciseMembers::_lookupStatus($a_exc_id, $ilias->account->getId()) == "passed") { return true; } else { return false; } break; default: return true; } return true; }
ilObjExercise::_lookupAnyExerciseSent | ( | $ | a_exc_id | ) |
Check whether exercise has been sent to any student per mail.
Definition at line 443 of file class.ilObjExercise.php.
ilObjExercise::_lookupFeedbackTime | ( | $ | exc_id, | |
$ | member_id | |||
) |
Get time when feedback mail has been sent.
Definition at line 532 of file class.ilObjExercise.php.
References ilObject::$lng, $q, $set, and ilUtil::getMySQLTimestamp().
Referenced by ilObjExerciseGUI::membersObject().
{ global $ilDB, $lng; $q = "SELECT * ". "FROM exc_members ". "WHERE obj_id='".$exc_id."' AND usr_id='".$member_id."'"; $set = $ilDB->query($q); if ($rec = $set->fetchRow(DB_FETCHMODE_ASSOC)) { return ilUtil::getMySQLTimestamp($rec["feedback_time"]); } }
ilObjExercise::_lookupNewFiles | ( | $ | exc_id, | |
$ | member_id | |||
) |
Check how much files have been uploaded by the learner after the last download of the tutor.
Definition at line 467 of file class.ilObjExercise.php.
References $q.
{ global $ilDB, $ilUser; $q = "SELECT exc_returned.returned_id AS id ". "FROM exc_usr_tutor, exc_returned ". "WHERE exc_returned.obj_id = exc_usr_tutor.obj_id ". "AND exc_returned.user_id = exc_usr_tutor.usr_id ". "AND exc_returned.obj_id = ".$ilDB->quote($exc_id). "AND exc_returned.user_id = ".$ilDB->quote($member_id). "AND exc_usr_tutor.tutor_id = ".$ilDB->quote($ilUser->getId()). "AND exc_usr_tutor.download_time < exc_returned.timestamp "; $new_up_set = $ilDB->query($q); $new_up = array(); while ($new_up_rec = $new_up_set->fetchRow(DB_FETCHMODE_ASSOC)) { $new_up[] = $new_up_rec["id"]; } return $new_up; }
ilObjExercise::_lookupSentTime | ( | $ | exc_id, | |
$ | member_id | |||
) |
Get time when exercise has been sent per e-mail to user.
Definition at line 513 of file class.ilObjExercise.php.
References ilObject::$lng, $q, $set, and ilUtil::getMySQLTimestamp().
Referenced by ilObjExerciseGUI::membersObject().
{ global $ilDB, $lng; $q = "SELECT * ". "FROM exc_members ". "WHERE obj_id='".$exc_id."' AND usr_id='".$member_id."'"; $set = $ilDB->query($q); if ($rec = $set->fetchRow(DB_FETCHMODE_ASSOC)) { return ilUtil::getMySQLTimestamp($rec["sent_time"]); } }
ilObjExercise::_lookupStatusTime | ( | $ | exc_id, | |
$ | member_id | |||
) |
Get time when exercise has been set to solved.
Definition at line 494 of file class.ilObjExercise.php.
References ilObject::$lng, $q, $set, and ilUtil::getMySQLTimestamp().
Referenced by ilObjExerciseGUI::membersObject().
{ global $ilDB, $lng; $q = "SELECT * ". "FROM exc_members ". "WHERE obj_id='".$exc_id."' AND usr_id='".$member_id."'"; $set = $ilDB->query($q); if ($rec = $set->fetchRow(DB_FETCHMODE_ASSOC)) { return ilUtil::getMySQLTimestamp($rec["status_time"]); } }
ilObjExercise::_lookupUpdatedSubmission | ( | $ | exc_id, | |
$ | member_id | |||
) |
Check whether student has upload new files after tutor has set the exercise to another than notgraded.
Definition at line 411 of file class.ilObjExercise.php.
References ilObject::$lng, and $q.
{ global $ilDB, $lng; $q="SELECT exc_members.status_time, exc_returned.timestamp ". "FROM exc_members, exc_returned ". "WHERE exc_members.status_time < exc_returned.timestamp ". "AND exc_members.status_time <> '0000-00-00 00:00:00' ". "AND exc_returned.obj_id = exc_members.obj_id ". "AND exc_returned.user_id = exc_members.usr_id ". "AND exc_returned.obj_id='".$exc_id."' AND exc_returned.user_id='".$member_id."'"; $usr_set = $ilDB->query($q); $array=$usr_set->fetchRow(DB_FETCHMODE_ASSOC); if (count($array)==0) { return 0; } else { return 1; } }
ilObjExercise::addUploadedFile | ( | $ | a_http_post_files | ) |
Definition at line 132 of file class.ilObjExercise.php.
{ $this->file_obj->storeUploadedFile($a_http_post_files, true); return true; }
ilObjExercise::checkDate | ( | ) |
Definition at line 98 of file class.ilObjExercise.php.
{ return $this->hour == (int) date("H",$this->timestamp) and $this->minutes == (int) date("i",$this->timestamp) and $this->day == (int) date("d",$this->timestamp) and $this->month == (int) date("m",$this->timestamp) and $this->year == (int) date("Y",$this->timestamp); }
ilObjExercise::delete | ( | ) |
delete course and all related data
public
Reimplemented from ilObject.
Definition at line 232 of file class.ilObjExercise.php.
References $query.
{ // always call parent delete function first!! if (!parent::delete()) { return false; } // put here course specific stuff $query = "DELETE FROM exc_data ". "WHERE obj_id = '".$this->getId()."'"; $this->ilias->db->query($query); $this->file_obj->delete(); $this->members_obj->delete(); return true; }
ilObjExercise::deleteDeliveredFiles | ( | $ | file_id_array, | |
$ | user_id | |||
) |
Deletes already delivered files.
array | $file_id_array An array containing database ids of the delivered files | |
numeric | $user_id The database id of the user public |
Definition at line 204 of file class.ilObjExercise.php.
References $user_id.
ilObjExercise::deleteFiles | ( | $ | a_files | ) |
Definition at line 138 of file class.ilObjExercise.php.
{ $this->file_obj->unlinkFiles($a_files); }
ilObjExercise::deliverFile | ( | $ | a_http_post_files, | |
$ | user_id | |||
) |
Definition at line 108 of file class.ilObjExercise.php.
References $query, and $user_id.
{ $deliver_result = $this->file_obj->deliverFile($a_http_post_files, $user_id); if ($deliver_result) { $query = sprintf("INSERT INTO exc_returned ". "(returned_id, obj_id, user_id, filename, filetitle, mimetype, TIMESTAMP) ". "VALUES (NULL, %s, %s, %s, %s, %s, NULL)", $this->ilias->db->quote($this->getId() . ""), $this->ilias->db->quote($user_id . ""), $this->ilias->db->quote($deliver_result["fullname"]), $this->ilias->db->quote($a_http_post_files["name"]), $this->ilias->db->quote($deliver_result["mimetype"]) ); $this->ilias->db->query($query); if (!$this->members_obj->isAssigned($user_id)) { $this->members_obj->assignMember($user_id); } $this->members_obj->setStatusReturnedForMember($user_id, 1); } return true; }
ilObjExercise::deliverReturnedFiles | ( | $ | user_id | ) |
Delivers the returned files of an user.
numeric | $user_id The database id of the user public |
Definition at line 221 of file class.ilObjExercise.php.
{
require_once "./classes/class.ilUtil.php";
}
& ilObjExercise::getDeliveredFiles | ( | $ | user_id | ) |
Returns the delivered files of an user.
numeric | $user_id The database id of the user |
Definition at line 192 of file class.ilObjExercise.php.
References $user_id.
{ $delivered_files =& $this->members_obj->getDeliveredFiles($user_id); return $delivered_files; }
ilObjExercise::getFiles | ( | ) |
Definition at line 93 of file class.ilObjExercise.php.
{
return $this->files;
}
ilObjExercise::getInstruction | ( | ) |
Definition at line 89 of file class.ilObjExercise.php.
Referenced by __formatBody(), ilClone(), saveData(), and update().
{
return $this->instruction;
}
ilObjExercise::getLastSubmission | ( | $ | member_id | ) |
Get the date of the last submission of a user for the exercise.
int | $member_id User ID of member. |
Definition at line 344 of file class.ilObjExercise.php.
References ilObject::$lng, $q, and ilUtil::getMySQLTimestamp().
Referenced by getMemberListData().
{ global $ilDB, $lng; $q="SELECT obj_id,user_id,timestamp FROM exc_returned ". "WHERE obj_id =".$this->getId()." AND user_id=".$member_id. " ORDER BY timestamp DESC"; $usr_set = $ilDB->query($q); $array=$usr_set->fetchRow(DB_FETCHMODE_ASSOC); if ($array["timestamp"]==NULL) { return false; } else { return ilUtil::getMySQLTimestamp($array["timestamp"]); } }
ilObjExercise::getMemberListData | ( | ) |
get member list data
Definition at line 309 of file class.ilObjExercise.php.
References $q, $set, ilObject::_exists(), ilObjUser::_lookupLogin(), ilObjUser::_lookupName(), ilObject::_lookupType(), ilObject::getId(), and getLastSubmission().
{ global $ilDB; $mem = array(); $q = "SELECT * FROM exc_members ". "WHERE obj_id = ".$ilDB->quote($this->getId()); $set = $ilDB->query($q); while($rec = $set->fetchRow(DB_FETCHMODE_ASSOC)) { if (ilObject::_exists($rec["usr_id"]) && (ilObject::_lookupType($rec["usr_id"]) == "usr")) { $name = ilObjUser::_lookupName($rec["usr_id"]); $login = ilObjUser::_lookupLogin($rec["usr_id"]); $mem[] = array("name" => $name["lastname"].", ".$name["firstname"], "login" => $login, "sent_time" => $rec["sent_time"], "submission" => $this->getLastSubmission($rec["usr_id"]), "status_time" => $rec["status_time"], "feedback_time" => $rec["feedback_time"], "usr_id" => $rec["usr_id"] ); } } return $mem; }
ilObjExercise::getTimestamp | ( | ) |
Definition at line 77 of file class.ilObjExercise.php.
Referenced by __formatBody(), and ilClone().
{
return $this->timestamp;
}
ilObjExercise::ilClone | ( | $ | a_parent_ref | ) |
copy all properties and subobjects of a course.
public
Reimplemented from ilObject.
Definition at line 161 of file class.ilObjExercise.php.
References $rbacadmin, ilObject::getId(), getInstruction(), and getTimestamp().
{ global $rbacadmin; // always call parent ilClone function first!! $new_ref_id = parent::ilClone($a_parent_ref); // put here exc specific stuff $tmp_obj =& $this->ilias->obj_factory->getInstanceByRefId($new_ref_id); $tmp_obj->setInstruction($this->getInstruction()); $tmp_obj->setTimestamp($this->getTimestamp()); $tmp_obj->saveData(); // CLONE FILES $tmp_file_obj =& new ilFileDataExercise($this->getId()); $tmp_file_obj->ilClone($tmp_obj->getId()); // CLONE MEMBERS $tmp_members_obj =& new ilExerciseMembers($this->getId(),$new_ref_id); $tmp_members_obj->ilClone($tmp_obj->getId()); // ... and finally always return new reference ID!! return $new_ref_id; }
ilObjExercise::ilObjExercise | ( | $ | a_id = 0 , |
|
$ | a_call_by_reference = true | |||
) |
Constructor public.
integer | reference_id or object_id | |
boolean | treat the id as reference_id (true) or object_id (false) |
Definition at line 60 of file class.ilObjExercise.php.
References ilObject::ilObject().
{ $this->type = "exc"; $this->ilObject($a_id,$a_call_by_reference); }
ilObjExercise::notify | ( | $ | a_event, | |
$ | a_ref_id, | |||
$ | a_node_id, | |||
$ | a_params = 0 | |||
) |
notifys an object about an event occured Based on the event happend, each object may decide how it reacts.
public
string | event | |
integer | reference id of object where the event occured | |
array | passes optional paramters if required |
Definition at line 261 of file class.ilObjExercise.php.
{ // object specific event handling parent::notify($a_event,$a_ref_id,$a_node_id,$a_params); }
ilObjExercise::read | ( | ) |
Definition at line 268 of file class.ilObjExercise.php.
References $query, $res, $row, ilObject::getId(), ilObject::getRefId(), setInstruction(), and setTimestamp().
{ parent::read(); $query = "SELECT * FROM exc_data ". "WHERE obj_id = '".$this->getId()."'"; $res = $this->ilias->db->query($query); while($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) { $this->setInstruction($row->instruction); $this->setTimestamp($row->time_stamp); } $this->members_obj =& new ilExerciseMembers($this->getId(),$this->getRefId()); $this->members_obj->read(); // GET FILE ASSIGNED TO EXERCISE $this->file_obj = new ilFileDataExercise($this->getId()); $this->files = $this->file_obj->getFiles(); return true; }
ilObjExercise::saveData | ( | ) |
Definition at line 143 of file class.ilObjExercise.php.
References $query, and getInstruction().
{ // SAVE ONLY EXERCISE SPECIFIC DATA $query = "INSERT INTO exc_data SET ". "obj_id = '".$this->getId()."', ". "instruction = '".addslashes($this->getInstruction())."', ". "time_stamp = ".$this->getTimestamp(); $this->ilias->db->query($query); return true; }
ilObjExercise::send | ( | $ | a_members | ) |
send exercise per mail to members
Definition at line 368 of file class.ilObjExercise.php.
References $_SESSION, $file, $files, __formatBody(), __formatRecipients(), and __formatSubject().
{ $files = $this->file_obj->getFiles(); if(count($files)) { include_once "./classes/class.ilFileDataMail.php"; $mfile_obj = new ilFileDataMail($_SESSION["AccountId"]); foreach($files as $file) { $mfile_obj->copyAttachmentFile($this->file_obj->getAbsolutePath($file["name"]),$file["name"]); $file_names[] = $file["name"]; } } include_once "./classes/class.ilMail.php"; $tmp_mail_obj = new ilMail($_SESSION["AccountId"]); $message = $tmp_mail_obj->sendMail($this->__formatRecipients($a_members),"","",$this->__formatSubject(),$this->__formatBody(), count($file_names) ? $file_names : array(),array("normal")); unset($tmp_mail_obj); if(count($file_names)) { $mfile_obj->unlinkFiles($file_names); unset($mfile_obj); } // SET STATUS SENT FOR ALL RECIPIENTS foreach($a_members as $member_id => $value) { $this->members_obj->setStatusSentForMember($member_id,1); } return true; }
ilObjExercise::setDate | ( | $ | a_hour, | |
$ | a_minutes, | |||
$ | a_day, | |||
$ | a_month, | |||
$ | a_year | |||
) |
Definition at line 67 of file class.ilObjExercise.php.
{ $this->hour = (int) $a_hour; $this->minutes = (int) $a_minutes; $this->day = (int) $a_day; $this->month = (int) $a_month; $this->year = (int) $a_year; $this->timestamp = mktime($this->hour,$this->minutes,0,$this->month,$this->day,$this->year); return true; }
ilObjExercise::setInstruction | ( | $ | a_instruction | ) |
Definition at line 85 of file class.ilObjExercise.php.
Referenced by read().
{ $this->instruction = $a_instruction; }
ilObjExercise::setTimestamp | ( | $ | a_timestamp | ) |
Definition at line 81 of file class.ilObjExercise.php.
Referenced by read().
{ $this->timestamp = $a_timestamp; }
ilObjExercise::update | ( | ) |
update object in db
public
Reimplemented from ilObject.
Definition at line 291 of file class.ilObjExercise.php.
References $query, $res, and getInstruction().
{ parent::update(); $query = "UPDATE exc_data SET ". "instruction = '".addslashes($this->getInstruction())."', ". "time_stamp = '".$this->getTimestamp()."' ". "WHERE obj_id = '".$this->getId()."'"; $res = $this->ilias->db->query($query); #$this->members_obj->update(); return true; }
ilObjExercise::$day |
Definition at line 49 of file class.ilObjExercise.php.
ilObjExercise::$file_obj |
Definition at line 42 of file class.ilObjExercise.php.
ilObjExercise::$files |
Definition at line 44 of file class.ilObjExercise.php.
Referenced by send().
ilObjExercise::$hour |
Definition at line 47 of file class.ilObjExercise.php.
ilObjExercise::$instruction |
Definition at line 52 of file class.ilObjExercise.php.
ilObjExercise::$members_obj |
Definition at line 43 of file class.ilObjExercise.php.
ilObjExercise::$minutes |
Definition at line 48 of file class.ilObjExercise.php.
ilObjExercise::$month |
Definition at line 50 of file class.ilObjExercise.php.
ilObjExercise::$timestamp |
Definition at line 46 of file class.ilObjExercise.php.
ilObjExercise::$year |
Definition at line 51 of file class.ilObjExercise.php.