ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilExcCriteriaFile.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
5 include_once "Modules/Exercise/classes/class.ilExcCriteria.php";
6 
14 {
15  public function getType()
16  {
17  return "file";
18  }
19 
20  protected function initStorage()
21  {
22  include_once("./Modules/Exercise/classes/class.ilFSStorageExercise.php");
23  $storage = new ilFSStorageExercise($this->ass->getExerciseId(), $this->ass->getId());
24  return $storage->getPeerReviewUploadPath($this->peer_id, $this->giver_id, $this->getId());
25  }
26 
27  public function getFiles()
28  {
29  $path = $this->initStorage();
30  return (array)glob($path."*.*");
31  }
32 
33  public function resetReview()
34  {
35  include_once("./Modules/Exercise/classes/class.ilFSStorageExercise.php");
36  $storage = new ilFSStorageExercise($this->ass->getExerciseId(), $this->ass->getId());
37  $storage->deleteDirectory($storage->getPeerReviewUploadPath($this->peer_id, $this->giver_id, $this->getId()));
38  }
39 
40 
41  // PEER REVIEW
42 
43  public function addToPeerReviewForm($a_value = null)
44  {
45  $existing = array();
46  foreach($this->getFiles() as $file)
47  {
48  $existing[] = basename($file);
49  }
50 
51  $files = new ilFileInputGUI($this->getTitle(), "prccc_file_".$this->getId());
52  $files->setInfo($this->getDescription());
53  $files->setRequired($this->isRequired());
54  $files->setValue(implode("<br />", $existing));
55  $files->setALlowDeletion(true);
56  $this->form->addItem($files);
57  }
58 
59  public function importFromPeerReviewForm()
60  {
61  $path = $this->initStorage();
62 
63  if($this->form->getItemByPostVar("prccc_file_".$this->getId())->getDeletionFlag())
64  {
66  $this->form->getItemByPostVar("prccc_file_".$this->getId())->setValue(null);
67  }
68 
69  $incoming = $_FILES["prccc_file_".$this->getId()];
70  if($incoming["tmp_name"])
71  {
72  $org_name = basename($incoming["name"]);
73 
74  ilUtil::moveUploadedFile($incoming["tmp_name"],
75  $org_name,
76  $path.$org_name,
77  false);
78  }
79  }
80 
81  public function hasValue($a_value)
82  {
83  return (bool)sizeof($this->getFiles());
84  }
85 
86  public function validate($a_value)
87  {
88  global $lng;
89 
90  // because of deletion flag we have to also check ourselves
91  if($this->isRequired())
92  {
93  if(!$this->hasValue($a_value))
94  {
95  if($this->form)
96  {
97  $this->form->getItemByPostVar("prccc_file_".$this->getId())->setAlert($lng->txt("msg_input_is_required"));
98  }
99  return false;
100  }
101  }
102  return true;
103  }
104 
105  public function getFileByHash()
106  {
107  $hash = trim($_GET["fuf"]);
108  if($hash)
109  {
110  foreach($this->getFiles() as $file)
111  {
112  if(md5($file) == $hash)
113  {
114  return $file;
115  }
116  }
117  }
118  }
119 
120  public function getHTML($a_value)
121  {
122  global $ilCtrl;
123 
124  $crit_id = $this->getId()
125  ? $this->getId()
126  : "file";
127  $ilCtrl->setParameterByClass("ilExPeerReviewGUI", "fu", $this->giver_id."__".$this->peer_id."__".$crit_id);
128 
129  $files = array();
130  foreach($this->getFiles() as $file)
131  {
132  $ilCtrl->setParameterByClass("ilExPeerReviewGUI", "fuf", md5($file));
133  $dl = $ilCtrl->getLinkTargetByClass("ilExPeerReviewGUI", "downloadPeerReview");
134  $ilCtrl->setParameterByClass("ilExPeerReviewGUI", "fuf", "");
135 
136  $files[] = '<a href="'.$dl.'">'.basename($file).'</a>';
137  }
138 
139  $ilCtrl->setParameterByClass("ilExPeerReviewGUI", "fu", "");
140 
141  return implode("<br />", $files);
142  }
143 }
$files
Definition: add-vimline.php:18
$path
Definition: aliased.php:25
Class ilExcCriteria.
$_GET["client_id"]
This class represents a file property in a property form.
deleteDirectory($a_abs_name)
Delete directory.
global $ilCtrl
Definition: ilias.php:18
addToPeerReviewForm($a_value=null)
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
getPeerReviewUploadPath($a_peer_id, $a_giver_id, $a_crit_id)
Get pear review upload path (each peer handled in a separate path)
Create styles array
The data for the language used.
global $lng
Definition: privfeed.php:17
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
Class ilExcCriteriaFile.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively