ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
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 __construct($refid, $obj = null)
51  {
52  parent::__construct($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 ?>
static makeDirParents($a_dir)
Create a new directory and all parent directories.
read()
Reads the object data.
write()
Writes the object data.
initFromNull()
Initializes the object after it has been converted from the NULL type.
getContentLength()
Returns the number of bytes of the content.
getContentStream()
Returns the content of the object as a stream.
getContentOutputStreamLength()
Returns the length of the content output stream.
getContentData()
Returns the content of the object as a byte array.
getResourceName()
Returns the resource name of this object.
createNewVersion()
Creates a new version of the object.
Class ilObjFile.
static _createEntry($a_obj_id, $a_action, $a_info_params="", $a_obj_type="", $a_user_comment="", $a_update_last=false)
Creates a new history entry for an object.
getResourceType()
Returns the display name of this object.
static _lookupFileSize($a_id)
Lookups the file size of the file in bytes.
setContentType($type)
Sets the mime type of the content of this object.
setContentLength($length)
Sets the length (in bytes) of the content of this object.
__construct($refid, $obj=null)
Constructor.
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
$obj
Application layer object.
getContentType()
Returns the mime type of the content of this object.
getContentOutputStream()
Returns an output stream to the content.
getRefId()
Returns the ref id of this object.