ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilExportFileInfo.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
14 {
15  const CURRENT_VERSION = "4.1.0";
16 
17 
18  private $obj_id = 0;
20  private $export_type = '';
21  private $file_name = '';
22  private $create_date = null;
23 
27  public function __construct($a_obj_id, $a_export_type = '',$a_filename = '')
28  {
29  $this->obj_id = $a_obj_id;
30  $this->export_type = $a_export_type;
31  $this->file_name = $a_filename;
32  if($this->getObjId() and $this->getExportType() and $this->getFilename())
33  {
34  $this->read();
35  }
36  }
37 
45  public static function lookupLastExport($a_obj_id,$a_type,$a_version = '')
46  {
47  global $ilDB;
48 
49  $query = "SELECT * FROM export_file_info ".
50  "WHERE obj_id = ".$ilDB->quote($a_obj_id,'integer').' '.
51  "AND export_type = ".$ilDB->quote($a_type,'text').' '.
52  "ORDER BY create_date DESC";
53  $res = $ilDB->query($query);
54  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
55  {
56  if(!$a_version or $row->version == $a_version)
57  {
58  return new ilExportFileInfo($row->obj_id,$row->export_type,$row->filename);
59  }
60  }
61  return null;
62  }
63 
64 
70  public static function deleteByObjId($a_obj_id)
71  {
72  global $ilDB;
73 
74  $ilDB->manipulate("DELETE FROM export_file_info WHERE obj_id ".$ilDB->quote($a_obj_id));
75  return true;
76  }
77 
78 
79 
85  public function setExportType($a_type)
86  {
87  $this->export_type = $a_type;
88  }
89 
94  public function getExportType()
95  {
96  return $this->export_type;
97  }
98 
104  public function setFilename($a_name)
105  {
106  $this->file_name = $a_name;
107  }
108 
113  public function getFilename()
114  {
115  return $this->file_name;
116  }
117 
118  public function getBasename($a_ext = '.zip')
119  {
120  return basename($this->getFilename(),$a_ext);
121  }
122 
128  public function setObjId($a_id)
129  {
130  $this->obj_id = $a_id;
131  }
132 
137  public function getObjId()
138  {
139  return $this->obj_id;
140  }
141 
146  public function setVersion($a_version)
147  {
148  $this->version = $a_version;
149  }
150 
155  public function getVersion()
156  {
157  return $this->version;
158  }
159 
164  public function getCreationDate()
165  {
166  return $this->create_date instanceof ilDateTime ? $this->create_date : new ilDateTime(time(),IL_CAL_UNIX);
167  }
168 
174  public function setCreationDate(ilDateTime $dt = null)
175  {
176  $this->create_date = $dt;
177  }
178 
183  public function create()
184  {
185  global $ilDB;
186 
187  if($this->exists())
188  {
189  return false;
190  }
191 
192  $query = "INSERT INTO export_file_info (obj_id, export_type, filename, version, create_date) ".
193  "VALUES ( ".
194  $ilDB->quote($this->getObjId(),'integer').', '.
195  $ilDB->quote($this->getExportType(),'text').', '.
196  $ilDB->quote($this->getFilename(),'text').', '.
197  $ilDB->quote($this->getVersion(),'text').', '.
198  $ilDB->quote($this->getCreationDate()->get(IL_CAL_DATETIME,'',ilTimeZone::UTC),'timestamp').' '.
199  ")";
200  $ilDB->manipulate($query);
201  }
202 
207  public function exists()
208  {
209  global $ilDB;
210 
211  $query = 'SELECT obj_id FROM export_file_info '.
212  'WHERE obj_id = '.$ilDB->quote($this->getObjId(),'integer').' '.
213  'AND export_type = '.$ilDB->quote($this->getExportType(),'text').' '.
214  'AND filename = '.$ilDB->quote($this->getFilename(),'text');
215  $res = $ilDB->query($query);
216  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
217  {
218  return true;
219  }
220  return false;
221  }
222 
223 
228  public function delete()
229  {
230  global $ilDB;
231 
232  $ilDB->manipulate('DELETE FROM export_file_info '.
233  'WHERE obj_id = '.$ilDB->quote($this->getObjId(),'integer').' '.
234  'AND filename = '.$ilDB->quote($this->getFilename(),'text')
235  );
236  return true;
237  }
238 
243  protected function read()
244  {
245  global $ilDB;
246 
247  $query = "SELECT * FROM export_file_info ".
248  "WHERE obj_id = ".$ilDB->quote($this->getObjId(),'integer').' '.
249  "AND export_type = ".$ilDB->quote($this->getExportType(),'text').' '.
250  "AND filename = ".$ilDB->quote($this->getFilename(),'text');
251 
252  $res = $ilDB->query($query);
253  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
254  {
255  $this->setVersion($row->version);
257  }
258  return true;
259  }
260 }
261 ?>