33include_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'];
 
  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'];
 
  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();
 
An exception for terminatinating execution or to throw for unit testing.
Class to report exception.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
static _lookupObjectId($a_ref_id)
lookup object id
static _getAllReferences($a_id)
get all reference ids of object
static _isInTrash($a_ref_id)
checks wether object is in trash
initAuth($sid)
Init authentication.
__raiseError($a_message, $a_code)
updateFile($sid, $ref_id, $file_xml)
update a File with id.
addFile($sid, $target_id, $file_xml)
add an File with id.
getFileXML($sid, $ref_id, $attachFileContentsMode)
get File xml