ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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
5include_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}
print $file
$_GET["client_id"]
Class ilExcCriteriaFile.
addToPeerReviewForm($a_value=null)
Class ilExcCriteria.
This class represents a file property in a property form.
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40
$path
Definition: index.php:22