/** * was: deleteDeliveredFiles($file_id_array, $a_member_id) */ function deleteDeliveredFiles($a_exc_id, $a_ass_id, $file_id_array, $a_user_id) { global $ilDB; include_once "./Modules/Exercise/classes/class.ilFSStorageExercise.php"; $fs = new ilFSStorageExercise($a_exc_id, $a_ass_id); if (count($file_id_array)) { $team_id = ilExAssignment::getTeamIdByAssignment($a_ass_id, $a_user_id); $result = $ilDB->query("SELECT * FROM exc_returned WHERE user_id = " . $ilDB->quote($a_user_id, "integer") . " AND " . $ilDB->in("returned_id", $file_id_array, false, "integer")); if ($ilDB->numRows($result)) { $result_array = array(); while ($row = $ilDB->fetchAssoc($result)) { $row["timestamp"] = $row["ts"]; array_push($result_array, $row); } // delete the entries in the database $ilDB->manipulate("DELETE FROM exc_returned WHERE user_id = " . $ilDB->quote($a_user_id, "integer") . " AND " . $ilDB->in("returned_id", $file_id_array, false, "integer")); //returned_id IN (" //.implode(ilUtil::quoteArray($file_id_array) ,",").")", //$this->ilias->db->quote($a_member_id . "") // delete the files foreach ($result_array as $key => $value) { if ($value["filename"]) { if ($team_id) { ilExAssignment::writeTeamLog($team_id, ilExAssignment::TEAM_LOG_REMOVE_FILE, $value["filetitle"]); } $filename = $fs->getAbsoluteSubmissionPath() . "/" . $value["user_id"] . "/" . basename($value["filename"]); unlink($filename); } } } } }
/** * was: deleteDeliveredFiles($file_id_array, $a_member_id) */ function deleteDeliveredFiles($a_exc_id, $a_ass_id, $file_id_array, $a_user_id) { global $ilDB; include_once "./Modules/Exercise/classes/class.ilFSStorageExercise.php"; $fs = new ilFSStorageExercise($a_exc_id, $a_ass_id); if (count($file_id_array)) { $team_id = self::getTeamIdByAssignment($a_ass_id, $a_user_id); if ($team_id) { // #11733 $user_ids = self::getTeamMembersByAssignmentId($a_ass_id, $a_user_id); if (!$user_ids) { return; } } else { $user_ids = array($a_user_id); } $result = $ilDB->query("SELECT * FROM exc_returned" . " WHERE " . $ilDB->in("returned_id", $file_id_array, false, "integer") . " AND " . $ilDB->in("user_id", $user_ids, "", "integer")); if ($ilDB->numRows($result)) { $result_array = array(); while ($row = $ilDB->fetchAssoc($result)) { $row["timestamp"] = $row["ts"]; array_push($result_array, $row); } // delete the entries in the database $ilDB->manipulate("DELETE FROM exc_returned" . " WHERE " . $ilDB->in("returned_id", $file_id_array, false, "integer") . " AND " . $ilDB->in("user_id", $user_ids, "", "integer")); // delete the files foreach ($result_array as $key => $value) { if ($value["filename"]) { if ($team_id) { ilExAssignment::writeTeamLog($team_id, ilExAssignment::TEAM_LOG_REMOVE_FILE, $value["filetitle"]); } $filename = $fs->getAbsoluteSubmissionPath() . "/" . $value["user_id"] . "/" . basename($value["filename"]); unlink($filename); } } } } }
/** * Save submitted file of user */ function deliverFile($a_http_post_files, $a_ass_id, $user_id, $unzip = false) { global $ilDB; include_once "./Modules/Exercise/classes/class.ilFSStorageExercise.php"; $storage = new ilFSStorageExercise($this->getId(), $a_ass_id); $deliver_result = $storage->deliverFile($a_http_post_files, $user_id, $unzip); //var_dump($deliver_result); if ($deliver_result) { $next_id = $ilDB->nextId("exc_returned"); $query = sprintf("INSERT INTO exc_returned " . "(returned_id, obj_id, user_id, filename, filetitle, mimetype, ts, ass_id) " . "VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", $ilDB->quote($next_id, "integer"), $ilDB->quote($this->getId(), "integer"), $ilDB->quote($user_id, "integer"), $ilDB->quote($deliver_result["fullname"], "text"), $ilDB->quote($a_http_post_files["name"], "text"), $ilDB->quote($deliver_result["mimetype"], "text"), $ilDB->quote(ilUtil::now(), "timestamp"), $ilDB->quote($a_ass_id, "integer")); $ilDB->manipulate($query); // team upload? $user_ids = ilExAssignment::getTeamMembersByAssignmentId($a_ass_id, $user_id); if (!$user_ids) { $user_ids = array($user_id); } else { $team_id = ilExAssignment::getTeamIdByAssignment($a_ass_id, $user_id); ilExAssignment::writeTeamLog($team_id, ilExAssignment::TEAM_LOG_ADD_FILE, $a_http_post_files["name"]); } foreach ($user_ids as $user_id) { if (!$this->members_obj->isAssigned($user_id)) { $this->members_obj->assignMember($user_id); } ilExAssignment::updateStatusReturnedForUser($a_ass_id, $user_id, 1); ilExerciseMembers::_writeReturned($this->getId(), $user_id, 1); } } return true; }