ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilObjFileDAV.php
Go to the documentation of this file.
1 <?php
2 // BEGIN WebDAV
3 /*
4  +-----------------------------------------------------------------------------+
5  | ILIAS open source |
6  +-----------------------------------------------------------------------------+
7  | Copyright (c) 1998-2005 ILIAS open source, University of Cologne |
8  | |
9  | This program is free software; you can redistribute it and/or |
10  | modify it under the terms of the GNU General Public License |
11  | as published by the Free Software Foundation; either version 2 |
12  | of the License, or (at your option) any later version. |
13  | |
14  | This program is distributed in the hope that it will be useful, |
15  | but WITHOUT ANY WARRANTY; without even the implied warranty of |
16  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
17  | GNU General Public License for more details. |
18  | |
19  | You should have received a copy of the GNU General Public License |
20  | along with this program; if not, write to the Free Software |
21  | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
22  +-----------------------------------------------------------------------------+
23 */
24 
25 require_once "class.ilObjectDAV.php";
26 
27 require_once './Services/History/classes/class.ilHistory.php';
28 require_once 'Services/Utilities/classes/class.ilUtil.php';
29 require_once "Modules/File/classes/class.ilObjFile.php";
30 
31 // NOTE: I changed class.ilObjFile.php to support the functionality needed by this handler.
32 
44 {
50  function ilObjFileDAV($refid, $obj = null)
51  {
52  $this->ilObjectDAV($refid, $obj);
53 
54  // Set debug to true, if you want to get debug output for this
55  // object
56  //$this->isDebug = true;
57  }
58 
65  function initFromNull()
66  {
67  $this->obj->setFileName($this->getResourceName());
68  $this->obj->setFileType($this->obj->guessFileType());
69  $this->write();
70  $this->obj->setPermissions($this->getRefId());
71  }
76  function createNewVersion() {
77  $this->obj->setVersion($this->obj->getVersion() + 1);
78  ilHistory::_createEntry($this->obj->getId(), "replace",
79  $this->obj->getFileName().",".$this->obj->getVersion());
80  }
81 
82 
101  function getResourceType()
102  {
103  return "";
104  }
105 
110  function getContentType()
111  {
112  //return $this->obj->getFileType();
113  return $this->obj->guessFileType();
114  }
119  function setContentType($type)
120  {
121  $this->obj->setFileType($type);
122  }
127  function setContentLength($length)
128  {
129  $this->writeLog('setContentLength('.$length.')');
130  $this->obj->setFileSize($length);
131  }
136  function getContentLength()
137  {
138  return ilObjFile::_lookupFileSize($this->obj->getId());
139  }
144  function getContentStream()
145  {
146  $file = $this->obj->getFile();
147  return (file_exists($file)) ? fopen($file,'r') : null;
148  }
154  {
155  $file = $this->obj->getFile();
156  $parent = dirname($file);
157  if (! file_exists($parent))
158  {
159  ilUtil::makeDirParents($parent);
160  }
161 
162  return fopen($file,'w');
163  }
174  {
175  $file = $this->obj->getFile();
176  return file_exists($file) ? filesize($file) : 0;
177 
178  }
184  function getContentData()
185  {
186  return null;
187  }
192  function read()
193  {
194  if (is_null($this->obj))
195  {
196  $this->obj = &new ilObjFile($this->getRefId(),true);
197  $this->obj->read();
198  }
199  }
204  function write()
205  {
206  $this->isNewFile = $this->obj->getVersion() == 0;
207  if ($this->isNewFile)
208  {
209  $this->obj->setVersion(1);
210  }
211  parent::write();
212  /*
213  ilHistory::_createEntry($this->getObjectId(), 'update', '', '','', true);
214  */
215  }
216 }
217 // END WebDAV
218 ?>