33 include_once
'./webservice/soap/classes/class.ilSoapAdministration.php';
52 if (!$this->__checkSession($sid)) {
57 $ilAccess = $DIC[
'ilAccess'];
60 return $this->
__raiseError(
'No valid target given.',
'Client');
64 return $this->
__raiseError(
"Parent with ID $target_id has been deleted.",
'CLIENT_TARGET_DELETED');
68 $allowed_types = array(
'cat',
'grp',
'crs',
'fold',
'root');
69 if (!in_array($target_obj->getType(), $allowed_types)) {
70 return $this->
__raiseError(
'No valid target type. Target must be reference id of "course, group, category or folder"',
'Client');
73 if (!$ilAccess->checkAccess(
'create',
'',
$target_id,
"file")) {
78 include_once
'./Modules/File/classes/class.ilFileXMLParser.php';
79 include_once
'./Modules/File/classes/class.ilFileException.php';
80 include_once
'./Modules/File/classes/class.ilObjFile.php';
86 if ($fileXMLParser->start()) {
91 $ilLog->write(__METHOD__ .
': File type: ' . $file->getFileType());
94 $file->createReference();
99 $fileXMLParser->setFileContents();
102 return $file->getRefId();
104 return $this->
__raiseError(
"Could not add file",
"Server");
126 if (!$this->__checkSession($sid)) {
131 $rbacsystem = $DIC[
'rbacsystem'];
132 $tree = $DIC[
'tree'];
134 $ilAccess = $DIC[
'ilAccess'];
137 return $this->
__raiseError(
'Cannot perform update since file has been deleted.',
'CLIENT_OBJECT_DELETED');
142 'No File found for id: ' . $ref_id,
148 $permission_ok =
false;
150 if ($ilAccess->checkAccess(
'write',
'', $ref_id)) {
151 $permission_ok =
true;
156 if (!$permission_ok) {
158 'No permission to edit the File with id: ' . $ref_id,
166 if (!is_object($file) || $file->getType()!=
"file") {
168 'Wrong obj id or type for File with id ' . $ref_id,
173 include_once
'./Modules/File/classes/class.ilFileXMLParser.php';
174 include_once
'./Modules/File/classes/class.ilFileException.php';
178 if ($fileXMLParser->start()) {
179 $fileXMLParser->updateFileContents();
181 return $file->update();
185 $exception->getMessage(),
202 public function getFileXML($sid, $ref_id, $attachFileContentsMode)
207 if (!$this->__checkSession($sid)) {
210 if (!strlen($ref_id)) {
212 'No ref id given. Aborting!',
218 $rbacsystem = $DIC[
'rbacsystem'];
219 $tree = $DIC[
'tree'];
221 $ilAccess = $DIC[
'ilAccess'];
227 'No File found for id: ' . $ref_id,
233 return $this->
__raiseError(
"Object with ID $ref_id has been deleted.",
'Client');
237 $permission_ok =
false;
239 if ($ilAccess->checkAccess(
'read',
'', $ref_id)) {
240 $permission_ok =
true;
245 if (!$permission_ok) {
247 'No permission to edit the object with id: ' . $ref_id,
254 if (!is_object($file) || $file->getType()!=
"file") {
256 'Wrong obj id or type for File with id ' . $ref_id,
261 include_once
'./Modules/File/classes/class.ilFileXMLWriter.php';
265 $xmlWriter->setFile($file);
266 $xmlWriter->setAttachFileContents($attachFileContentsMode);
269 return $xmlWriter->getXML();
addFile($sid, $target_id, $file_xml)
add an File with id.
static _isInTrash($a_ref_id)
checks wether object is in trash
static _getAllReferences($a_id)
get all reference ids of object
static _lookupObjectId($a_ref_id)
lookup object id
updateFile($sid, $ref_id, $file_xml)
update a File with id.
__raiseError($a_message, $a_code)
Class to report exception.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
getFileXML($sid, $ref_id, $attachFileContentsMode)
get File xml
initAuth($sid)
Init authentication.
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id