ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilFSStorageExercise Class Reference
+ Inheritance diagram for ilFSStorageExercise:
+ Collaboration diagram for ilFSStorageExercise:

Public Member Functions

 __construct ($a_container_id=0, $a_ass_id=0)
 Constructor. More...
 
 init ()
 Append ass_<ass_id> to path (assignment id) More...
 
 getAbsoluteSubmissionPath ()
 Get submission path. More...
 
 getTempPath ()
 Get submission path. More...
 
 getFeedbackPath ($a_user_id)
 Get feedback path. More...
 
 getGlobalFeedbackPath ()
 
 getMultiFeedbackUploadPath ($a_user_id)
 Get multi feedback upload path (each uploader handled in a separate path) More...
 
 getPeerReviewUploadPath ($a_peer_id, $a_giver_id, $a_crit_id)
 Get pear review upload path (each peer handled in a separate path) More...
 
 create ()
 Create directory. More...
 
 getFiles ()
 Get assignment files. More...
 
 uploadFile ($a_http_post_file, $user_id, $is_unziped=false)
 store delivered file in filesystem More...
 
 getFeedbackFiles ($a_user_id)
 Get number of feedback files. More...
 
 countFeedbackFiles ($a_user_id)
 Count number of feedback files for a user. More...
 
 getAssignmentFilePath ($a_file)
 Get path for assignment file. More...
 
 getFeedbackFilePath ($a_user_id, $a_file)
 Get path for feedback file. More...
 
 uploadAssignmentFiles ($a_files)
 Upload assignment files (e.g. More...
 
- Public Member Functions inherited from ilFileSystemStorage
 __construct ($a_storage_type, $a_path_conversion, $a_container_id)
 Constructor. More...
 
 getContainerId ()
 
 create ()
 Create directory. More...
 
 getAbsolutePath ()
 Get absolute path of storage directory. More...
 
 writeToFile ($a_data, $a_absolute_path)
 Write data to file. More...
 
 deleteFile ($a_abs_name)
 Delete file. More...
 
 deleteDirectory ($a_abs_name)
 Delete directory. More...
 
 delete ()
 Delete complete directory. More...
 
 copyFile ($a_from, $a_to)
 Copy files. More...
 
 appendToPath ($a_appendix)
 
 getStorageType ()
 
 getPath ()
 Get path. More...
 
 __construct ($a_storage_type, $a_path_conversion, $a_container_id)
 Constructor. More...
 
 create ()
 Create directory. More...
 
 getAbsolutePath ()
 Get absolute path of storage directory. More...
 
 getShortPath ()
 
 rename ($from, $to)
 

Protected Member Functions

 getPathPostfix ()
 Implementation of abstract method. More...
 
 getPathPrefix ()
 Implementation of abstract method. More...
 
- Protected Member Functions inherited from ilFileSystemStorage
 getPathPrefix ()
 Get path prefix. More...
 
 getPathPostfix ()
 Get directory name. More...
 
 init ()
 Read path info. More...
 
 getPathPrefix ()
 Get path prefix. More...
 
 getPathPostfix ()
 Get directory name. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from ilFileSystemStorage
static _createPathFromId ($a_container_id, $a_name)
 Create a path from an id: e.g 12345 will be converted to 12/34/<name>_5. More...
 
 _copyDirectory ($a_source, $a_target)
 Copy directory and all contents. More...
 
static _createPathFromId ($a_container_id, $a_name)
 Create a path from an id: e.g 12345 will be converted to 12/34/<name>_5. More...
 
- Data Fields inherited from ilFileSystemStorage
const STORAGE_WEB = 1
 
const STORAGE_DATA = 2
 
const STORAGE_SECURED = 3
 
const FACTOR = 100
 
const MAX_EXPONENT = 3
 
const SECURED_DIRECTORY = "sec"
 
- Protected Attributes inherited from ilFileSystemStorage
 $path
 

Detailed Description

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

Definition at line 32 of file class.ilFSStorageExercise.php.

Constructor & Destructor Documentation

◆ __construct()

ilFSStorageExercise::__construct (   $a_container_id = 0,
  $a_ass_id = 0 
)

Constructor.

Parameters
intexercise id

Definition at line 39 of file class.ilFSStorageExercise.php.

40  {
41  $this->ass_id = $a_ass_id;
42  parent::__construct(self::STORAGE_DATA,true,$a_container_id);
43  }

Member Function Documentation

◆ countFeedbackFiles()

ilFSStorageExercise::countFeedbackFiles (   $a_user_id)

Count number of feedback files for a user.

Definition at line 322 of file class.ilFSStorageExercise.php.

References getFeedbackFiles().

Referenced by ilExAssignmentGUI\addSubmissionFeedback().

323  {
324  $fbf = $this->getFeedbackFiles($a_user_id);
325  return count($fbf);
326  }
getFeedbackFiles($a_user_id)
Get number of feedback files.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ create()

ilFSStorageExercise::create ( )

Create directory.

public

Definition at line 169 of file class.ilFSStorageExercise.php.

References ilUtil\makeDirParents().

Referenced by ilExAssignmentPeerReviewTableGUI\__construct(), ilExAssignment\cloneAssignmentsOfExercise(), ilExSubmission\downloadAllAssignmentFiles(), ilExAssignmentEditorGUI\executeCommand(), ilExPeerReviewGUI\executeCommand(), ilExerciseManagementGUI\executeCommand(), ilExerciseXMLParser\ilExerciseXMLParser(), ilExerciseDataSet\importRecord(), and uploadFile().

170  {
171  parent::create();
172  if(!file_exists($this->submission_path))
173  {
174  ilUtil::makeDirParents($this->submission_path);
175  }
176  if(!file_exists($this->tmp_path))
177  {
178  ilUtil::makeDirParents($this->tmp_path);
179  }
180  if(!file_exists($this->feedb_path))
181  {
182  ilUtil::makeDirParents($this->feedb_path);
183  }
184  return true;
185  }
static makeDirParents($a_dir)
Create a new directory and all parent directories.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAbsoluteSubmissionPath()

ilFSStorageExercise::getAbsoluteSubmissionPath ( )

Get submission path.

Definition at line 95 of file class.ilFSStorageExercise.php.

Referenced by uploadFile().

96  {
97  return $this->submission_path;
98  }
+ Here is the caller graph for this function:

◆ getAssignmentFilePath()

ilFSStorageExercise::getAssignmentFilePath (   $a_file)

Get path for assignment file.

Definition at line 331 of file class.ilFSStorageExercise.php.

References ilFileSystemStorage\getAbsolutePath().

332  {
333  return $this->getAbsolutePath()."/".$a_file;
334  }
getAbsolutePath()
Get absolute path of storage directory.
+ Here is the call graph for this function:

◆ getFeedbackFilePath()

ilFSStorageExercise::getFeedbackFilePath (   $a_user_id,
  $a_file 
)

Get path for feedback file.

Definition at line 339 of file class.ilFSStorageExercise.php.

References getFeedbackPath().

340  {
341  $dir = $this->getFeedbackPath($a_user_id);
342  return $dir."/".$a_file;
343  }
getFeedbackPath($a_user_id)
Get feedback path.
+ Here is the call graph for this function:

◆ getFeedbackFiles()

ilFSStorageExercise::getFeedbackFiles (   $a_user_id)

Get number of feedback files.

Definition at line 299 of file class.ilFSStorageExercise.php.

References $file, and getFeedbackPath().

Referenced by countFeedbackFiles(), and ilExSubmissionGUI\downloadFeedbackFileObject().

300  {
301  $files = array();
302 
303  $dir = $this->getFeedbackPath($a_user_id);
304  if (@is_dir($dir))
305  {
306  $dp = opendir($dir);
307  while($file = readdir($dp))
308  {
309  if(!is_dir($this->path.'/'.$file) && substr($file, 0, 1) != ".")
310  {
311  $files[] = $file;
312  }
313  }
314  }
315 
316  return $files;
317  }
print $file
getFeedbackPath($a_user_id)
Get feedback path.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFeedbackPath()

ilFSStorageExercise::getFeedbackPath (   $a_user_id)

Get feedback path.

Definition at line 111 of file class.ilFSStorageExercise.php.

References ilFileSystemStorage\$path, and ilUtil\makeDirParents().

Referenced by getFeedbackFilePath(), and getFeedbackFiles().

112  {
113  $path = $this->feedb_path."/".$a_user_id;
114  if(!file_exists($path))
115  {
117  }
118  return $path;
119  }
static makeDirParents($a_dir)
Create a new directory and all parent directories.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFiles()

ilFSStorageExercise::getFiles ( )

Get assignment files.

Definition at line 190 of file class.ilFSStorageExercise.php.

References $file, ilFormat\formatDate(), and ilUtil\sortArray().

Referenced by ilObjExercise\sendAssignment().

191  {
192  $files = array();
193  if (!is_dir($this->path))
194  {
195  return $files;
196  }
197 
198  $dp = opendir($this->path);
199  while($file = readdir($dp))
200  {
201  if(!is_dir($this->path.'/'.$file))
202  {
203  $files[] = array(
204  'name' => $file,
205  'size' => filesize($this->path.'/'.$file),
206  'ctime' => ilFormat::formatDate(date('Y-m-d H:i:s',filectime($this->path.'/'.$file))),
207  'fullpath' => $this->path.'/'.$file);
208  }
209  }
210  closedir($dp);
211  $files = ilUtil::sortArray($files, "name", "asc");
212  return $files;
213  }
print $file
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
formatDate($a_date, $a_mode="datetime", $a_omit_seconds=false, $a_relative=TRUE)
format a date according to the user language shortcut for Format::fmtDateTime public ...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getGlobalFeedbackPath()

ilFSStorageExercise::getGlobalFeedbackPath ( )

Definition at line 121 of file class.ilFSStorageExercise.php.

References ilFileSystemStorage\$path, and ilUtil\makeDirParents().

Referenced by ilExAssignment\cloneAssignmentsOfExercise().

122  {
123  $path = $this->feedb_path."/0";
124  if(!file_exists($path))
125  {
127  }
128  return $path;
129  }
static makeDirParents($a_dir)
Create a new directory and all parent directories.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getMultiFeedbackUploadPath()

ilFSStorageExercise::getMultiFeedbackUploadPath (   $a_user_id)

Get multi feedback upload path (each uploader handled in a separate path)

Definition at line 135 of file class.ilFSStorageExercise.php.

References ilFileSystemStorage\$path, and ilUtil\makeDirParents().

136  {
137  $path = $this->multi_feedback_upload_path."/".$a_user_id;
138  if(!file_exists($path))
139  {
141  }
142  return $path;
143  }
static makeDirParents($a_dir)
Create a new directory and all parent directories.
+ Here is the call graph for this function:

◆ getPathPostfix()

ilFSStorageExercise::getPathPostfix ( )
protected

Implementation of abstract method.

protected

Definition at line 76 of file class.ilFSStorageExercise.php.

77  {
78  return 'exc';
79  }

◆ getPathPrefix()

ilFSStorageExercise::getPathPrefix ( )
protected

Implementation of abstract method.

protected

Definition at line 87 of file class.ilFSStorageExercise.php.

88  {
89  return 'ilExercise';
90  }

◆ getPeerReviewUploadPath()

ilFSStorageExercise::getPeerReviewUploadPath (   $a_peer_id,
  $a_giver_id,
  $a_crit_id 
)

Get pear review upload path (each peer handled in a separate path)

Definition at line 149 of file class.ilFSStorageExercise.php.

References ilFileSystemStorage\$path, and ilUtil\makeDirParents().

Referenced by ilExcCriteriaFile\initStorage().

150  {
151  $path = $this->peer_review_upload_path."/".$a_peer_id."/".$a_giver_id;
152  if((int)$a_crit_id)
153  {
154  $path .= (int)$a_crit_id."/";
155  }
156  if(!file_exists($path))
157  {
159  }
160  return $path;
161  }
static makeDirParents($a_dir)
Create a new directory and all parent directories.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTempPath()

ilFSStorageExercise::getTempPath ( )

Get submission path.

Definition at line 103 of file class.ilFSStorageExercise.php.

104  {
105  return $this->tmp_path;
106  }

◆ init()

ilFSStorageExercise::init ( )

Append ass_<ass_id> to path (assignment id)

Definition at line 48 of file class.ilFSStorageExercise.php.

49  {
50  if (parent::init())
51  {
52  if ($this->ass_id > 0)
53  {
54  $this->submission_path = $this->path."/subm_".$this->ass_id;
55  $this->tmp_path = $this->path."/tmp_".$this->ass_id;
56  $this->feedb_path = $this->path."/feedb_".$this->ass_id;
57  $this->multi_feedback_upload_path = $this->path."/mfb_up_".$this->ass_id;
58  $this->peer_review_upload_path = $this->path."/peer_up_".$this->ass_id;
59  $this->path.= "/ass_".$this->ass_id;
60  }
61  }
62  else
63  {
64  return false;
65  }
66  return true;
67  }

◆ uploadAssignmentFiles()

ilFSStorageExercise::uploadAssignmentFiles (   $a_files)

Upload assignment files (e.g.

from assignment creation form)

Definition at line 349 of file class.ilFSStorageExercise.php.

References $size, and ilUtil\moveUploadedFile().

350  {
351  if (is_array($a_files["name"]))
352  {
353  foreach ($a_files["name"] as $k => $name)
354  {
355  if ($name != "")
356  {
357  $type = $a_files["type"][$k];
358  $tmp_name = $a_files["tmp_name"][$k];
359  $size = $a_files["size"][$k];
360  ilUtil::moveUploadedFile($tmp_name,
361  basename($name),
362  $this->path.DIRECTORY_SEPARATOR.basename($name),
363  false);
364  }
365  }
366  }
367  }
$size
Definition: RandomTest.php:79
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
+ Here is the call graph for this function:

◆ uploadFile()

ilFSStorageExercise::uploadFile (   $a_http_post_file,
  $user_id,
  $is_unziped = false 
)

store delivered file in filesystem

Parameters
arrayHTTP_POST_FILES
numericdatabase id of the user who delivered the file public
Returns
mixed Returns a result array with filename and mime type of the saved file, otherwise false

Definition at line 227 of file class.ilFSStorageExercise.php.

References $filename, $result, create(), getAbsoluteSubmissionPath(), ilObjMediaObject\getMimeType(), ilFileUtils\getValidFilename(), ilUtil\makeDir(), ilUtil\moveUploadedFile(), and ilFileSystemStorage\rename().

228  {
229  $this->create();
230 
231  // TODO:
232  // CHECK UPLOAD LIMIT
233 
234 
235  //
236  $result = false;
237  if(isset($a_http_post_file) && $a_http_post_file['size'])
238  {
239  $filename = $a_http_post_file['name'];
240 
241  include_once("./Services/Utilities/classes/class.ilFileUtils.php");
243 
244  // replace whitespaces with underscores
245  $filename = preg_replace("/\s/", "_", $filename);
246  // remove all special characters
247  $filename = preg_replace("/[^_a-zA-Z0-9\.]/", "", $filename);
248 
249  if(!is_dir($savepath = $this->getAbsoluteSubmissionPath()))
250  {
251  ilUtil::makeDir($savepath);
252  }
253  $savepath .= '/' .$user_id;
254  if(!is_dir($savepath))
255  {
256  ilUtil::makeDir($savepath);
257  }
258 
259  // CHECK IF FILE PATH EXISTS
260  if (!is_dir($savepath))
261  {
262  require_once "./Services/Utilities/classes/class.ilUtil.php";
263  #ilUtil::makeDirParents($savepath);
264  ilUtil::makeDir($savepath);
265  }
266  $now = getdate();
267  $prefix = sprintf("%04d%02d%02d%02d%02d%02d", $now["year"], $now["mon"], $now["mday"], $now["hours"],
268  $now["minutes"], $now["seconds"]);
269 
270  if (!$is_unziped)
271  {
272  ilUtil::moveUploadedFile($a_http_post_file["tmp_name"], $a_http_post_file["name"],
273  $savepath . "/" . $prefix . "_" . $filename);
274  }
275  else
276  {
277 
278  rename($a_http_post_file['tmp_name'],
279  $savepath . "/" . $prefix . "_" . $filename);
280  }
281 
282  require_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php";
283 
284  if (is_file($savepath . "/" . $prefix . "_" . $filename))
285  {
286  $result = array(
287  "filename" => $prefix . "_" . $filename,
288  "fullname" => $savepath . "/" . $prefix . "_" . $filename,
289  "mimetype" => ilObjMediaObject::getMimeType($savepath . "/" . $prefix . "_" . $filename)
290  );
291  }
292  }
293  return $result;
294  }
getAbsoluteSubmissionPath()
Get submission path.
$result
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
$filename
Definition: buildRTE.php:89
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
static getMimeType($a_file, $a_external=false)
get mime type for file
static getValidFilename($a_filename)
Get valid filename.
+ Here is the call graph for this function:

The documentation for this class was generated from the following file: