/**
  * 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);
                 }
             }
         }
     }
 }
Пример #2
0
 /**
  * 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;
 }