ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilObjFile Class Reference

Class ilObjFile. More...

+ Inheritance diagram for ilObjFile:
+ Collaboration diagram for ilObjFile:

Public Member Functions

 __construct ($a_id=0, $a_call_by_reference=true)
 ilObjFile constructor. More...
 
 initType ()
 Init type. More...
 
 createProperties ($a_upload=false)
 The basic properties of a file object are stored in table object_data. More...
 
 setNoMetaDataCreation ($a_status)
 
 getDirectory ($a_version=0)
 
 createDirectory ()
 
 raiseUploadError ($a_raise=true)
 
 getUploadFile ($a_upload_file, $a_filename, $a_prevent_preview=false, $handle_secure_name=true)
 
 replaceFile ($a_upload_file, $a_filename)
 replace file with new file More...
 
 addFileVersion ($a_upload_file, $a_filename)
 
 copy ($a_source, $a_destination)
 copy file More...
 
 clearDataDirectory ()
 clear data directory More...
 
 deleteVersions ($a_hist_entry_ids=null)
 Deletes the specified history entries or all entries if no ids are specified. More...
 
 setFileName ($a_name)
 set filename More...
 
 getFileName ()
 
 setFileType ($a_type)
 
 getFileType ()
 
 setFileSize ($a_size)
 
 getFileSize ()
 
 getDiskUsage ()
 Gets the disk usage of the object in bytes. More...
 
 getFile ($a_hist_entry_id=null)
 
 setVersion ($a_version)
 
 getVersion ()
 
 setMode ($a_mode)
 mode is object or filelist More...
 
 getMode ()
 mode is object or filelist More...
 
 determineFileSize ($a_hist_entry_id=null)
 Determine File Size. More...
 
 getFileExtension ()
 Returns the extension of the file name converted to lower-case. More...
 
 isInline ()
 Returns true, if this file should be displayed inline in a browser window. More...
 
 isHidden ()
 Returns true, if this file should be hidden in the repository view. More...
 
 guessFileType ($a_file="")
 Guesses the file type based on the current values returned by getFileType() and getFileExtension(). More...
 
 export ($a_target_dir)
 export files of object to target directory note: target directory must be the export target directory, "/objects/il_<inst>_file_<file_id>/..." will be appended to this directory More...
 
 getUsages ()
 get all usages of file object More...
 
 getXMLZip ()
 
 addNewsNotification ($a_lang_var)
 
 initFileStorage ()
 init file storage object More...
 
 storeUnzipedFile ($a_upload_file, $a_filename)
 storeUnzipedFile More...
 
 checkFileExtension ($new_filename, $new_title)
 Check if the file extension does still exist after an update of the title. More...
 
 getVersions ($version_ids=null)
 Gets the file versions for this object. More...
 
 getSpecificVersion ($version_id)
 Gets a specific file version. More...
 
 rollback ($version_id)
 Makes the specified version the current one and returns theSummary of rollbackVersion. More...
 
 compareVersions ($v1, $v2)
 Compares two file versions. More...
 
 parseInfoParams ($entry)
 Parses the info parameters ("info_params") of the specified history entry. More...
 
 setRating ($a_value)
 
 hasRating ()
 
- Public Member Functions inherited from ilObject2
 __construct ($a_id=0, $a_reference=true)
 Constructor @access public. More...
 
 withReferences ()
 determines wehter objects are referenced or not (got ref ids or not) More...
 
 read ()
 Read data from db. More...
 
 getId ()
 get object id @access public More...
 
 setId ($a_id)
 set object id @access public More...
 
 setRefId ($a_id)
 set reference id @access public More...
 
 getRefId ()
 get reference id @access public More...
 
 getType ()
 get object type @access public More...
 
 setType ($a_type)
 set object type @access public More...
 
 getPresentationTitle ()
 get presentation title Normally same as title Overwritten for sessions More...
 
 getTitle ()
 get object title @access public More...
 
 getUntranslatedTitle ()
 get untranslated object title @access public More...
 
 setTitle ($a_title)
 set object title More...
 
 getDescription ()
 get object description More...
 
 setDescription ($a_desc)
 set object description More...
 
 getLongDescription ()
 get object long description (stored in object_description) More...
 
 getImportId ()
 get import id More...
 
 setImportId ($a_import_id)
 set import id More...
 
 getOwner ()
 get object owner More...
 
 getOwnerName ()
 
 setOwner ($a_owner)
 set object owner More...
 
 getCreateDate ()
 get create date @access public More...
 
 getLastUpdateDate ()
 get last update date @access public More...
 
 create ($a_clone_mode=false)
 
 update ()
 update object in db More...
 
 MDUpdateListener ($a_element)
 Meta data update listener. More...
 
 createMetaData ()
 create meta data entry More...
 
 updateMetaData ()
 update meta data entry More...
 
 deleteMetaData ()
 delete meta data entry More...
 
 updateOwner ()
 update owner of object in db More...
 
 putInTree ($a_parent_ref)
 maybe this method should be in tree object!? More...
 
 setPermissions ($a_parent_ref)
 set permissions of object More...
 
 createReference ()
 creates reference for object More...
 
 countReferences ()
 count references of object More...
 
 delete ()
 delete object or referenced object (in the case of a referenced object, object data is only deleted if last reference is deleted) This function removes an object entirely from system!! More...
 
 initDefaultRoles ()
 init default roles settings Purpose of this function is to create a local role folder and local roles, that are needed depending on the object type If you want to setup default local roles you MUST overwrite this method in derived object classes (see ilObjForum for an example) @access public More...
 
 setRegisterMode ($a_bool)
 
 isUserRegistered ($a_user_id=0)
 
 requireRegistration ()
 
 appendCopyInfo ($a_target_id, $a_copy_id)
 Prepend Copy info if object with same name exists in that container. More...
 
 cloneMetaData ($target_obj)
 Copy meta data. More...
 
 cloneObject ($a_target_id, $a_copy_id=null, $a_omit_tree=false)
 Clone object permissions, put in tree ... More...
 
 cloneDependencies ($a_target_id, $a_copy_id)
 Clone object dependencies. More...
 
- Public Member Functions inherited from ilObject
 __construct ($a_id=0, $a_reference=true)
 Constructor @access public. More...
 
 withReferences ()
 determines wehter objects are referenced or not (got ref ids or not) More...
 
 read ()
 read object data from db into object More...
 
 getId ()
 get object id @access public More...
 
 setId ($a_id)
 set object id @access public More...
 
 setRefId ($a_id)
 set reference id @access public More...
 
 getRefId ()
 get reference id @access public More...
 
 getType ()
 get object type @access public More...
 
 setType ($a_type)
 set object type @access public More...
 
 getPresentationTitle ()
 get presentation title Normally same as title Overwritten for sessions More...
 
 getTitle ()
 get object title @access public More...
 
 getUntranslatedTitle ()
 get untranslated object title @access public More...
 
 setTitle ($a_title)
 set object title More...
 
 getDescription ()
 get object description More...
 
 setDescription ($a_desc)
 set object description More...
 
 getLongDescription ()
 get object long description (stored in object_description) More...
 
 getImportId ()
 get import id More...
 
 setImportId ($a_import_id)
 set import id More...
 
 getOwner ()
 get object owner More...
 
 getOwnerName ()
 
 setOwner ($a_owner)
 set object owner More...
 
 getCreateDate ()
 get create date @access public More...
 
 getLastUpdateDate ()
 get last update date @access public More...
 
 getDiskUsage ()
 
 create ()
 create More...
 
 update ()
 update object in db More...
 
 MDUpdateListener ($a_element)
 Meta data update listener. More...
 
 createMetaData ()
 create meta data entry More...
 
 updateMetaData ()
 update meta data entry More...
 
 deleteMetaData ()
 delete meta data entry More...
 
 updateOwner ()
 update owner of object in db More...
 
 putInTree ($a_parent_ref)
 maybe this method should be in tree object!? More...
 
 setPermissions ($a_parent_ref)
 set permissions of object More...
 
 setParentRolePermissions ($a_parent_ref)
 Initialize the permissions of parent roles (local roles of categories, global roles...) This method is overwritten in e.g courses, groups for building permission intersections with non_member templates. More...
 
 createReference ()
 creates reference for object More...
 
 countReferences ()
 count references of object More...
 
 delete ()
 delete object or referenced object (in the case of a referenced object, object data is only deleted if last reference is deleted) This function removes an object entirely from system!! More...
 
 initDefaultRoles ()
 init default roles settings Purpose of this function is to create a local role folder and local roles, that are needed depending on the object type If you want to setup default local roles you MUST overwrite this method in derived object classes (see ilObjForum for an example) @access public More...
 
 applyDidacticTemplate ($a_tpl_id)
 Apply template. More...
 
 setRegisterMode ($a_bool)
 
 isUserRegistered ($a_user_id=0)
 
 requireRegistration ()
 
 getXMLZip ()
 
 getHTMLDirectory ()
 
 cloneObject ($a_target_id, $a_copy_id=0, $a_omit_tree=false)
 Clone object permissions, put in tree ... More...
 
 appendCopyInfo ($a_target_id, $a_copy_id)
 Prepend Copy info if object with same name exists in that container. More...
 
 cloneDependencies ($a_target_id, $a_copy_id)
 Clone object dependencies. More...
 
 cloneMetaData ($target_obj)
 Copy meta data. More...
 
 getPossibleSubObjects ($a_filter=true)
 get all possible subobjects of this type the object can decide which types of subobjects are possible jut in time overwrite if the decision distinguish from standard model More...
 

Static Public Member Functions

static _writeFileType ($a_id, $a_format)
 
static _lookupFileName ($a_id)
 
static _lookupFileSize ($a_id)
 Lookups the file size of the file in bytes. More...
 
static _lookupVersion ($a_id)
 lookup version More...
 
static _deleteAllUsages ($a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
 static delete all usages of More...
 
static _saveUsage ($a_file_id, $a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
 save usage More...
 
static _getFilesOfObject ($a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
 get all files of an object More...
 
static _lookupAbsolutePath ($obj_id, $a_version=null)
 return absolute path for version More...
 
- Static Public Member Functions inherited from ilObject2
static _lookupObjIdByImportId ($a_import_id)
 
static _lookupOwnerName ($a_owner_id)
 lookup owner name for owner id More...
 
static _getIdForImportId ($a_import_id)
 get current object id for import id (static) More...
 
static _getAllReferences ($a_id)
 get all reference ids of object More...
 
static _lookupTitle ($a_id)
 lookup object title More...
 
static _lookupOwner ($a_id)
 lookup object owner More...
 
static _getIdsForTitle ($title, $type='', $partialmatch=false)
 
static _lookupDescription ($a_id)
 lookup object description More...
 
static _lookupLastUpdate ($a_id, $a_as_string=false)
 lookup last update More...
 
static _getLastUpdateOfObjects ($a_objs)
 Get last update for a set of media objects. More...
 
static _lookupObjId ($a_id)
 
static _setDeletedDate ($a_ref_id)
 only called in ilTree::saveSubTree More...
 
static _resetDeletedDate ($a_ref_id)
 only called in ilObjectGUI::insertSavedNodes More...
 
static _lookupDeletedDate ($a_ref_id)
 only called in ilObjectGUI::insertSavedNodes More...
 
static _writeTitle ($a_obj_id, $a_title)
 write title to db (static) More...
 
static _writeDescription ($a_obj_id, $a_desc)
 write description to db (static) More...
 
static _writeImportId ($a_obj_id, $a_import_id)
 write import id to db (static) More...
 
static _lookupType ($a_id, $a_reference=false)
 lookup object type More...
 
static _isInTrash ($a_ref_id)
 checks wether object is in trash More...
 
static _hasUntrashedReference ($a_obj_id)
 checks wether an object has at least one reference that is not in trash More...
 
static _lookupObjectId ($a_ref_id)
 lookup object id More...
 
static _getObjectsDataForType ($a_type, $a_omit_trash=false)
 get all objects of a certain type More...
 
static _exists ($a_id, $a_reference=false, $a_type=null)
 checks if an object exists in object_data@access public More...
 
static _getObjectsByType ($a_obj_type="", $a_owner="")
 Get objects by type. More...
 
static _prepareCloneSelection ($a_ref_ids, $new_type, $a_show_path=true)
 Prepare copy wizard object selection. More...
 
static _getIcon ($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
 Get icon for repository item. More...
 
- Static Public Member Functions inherited from ilObject
static _lookupObjIdByImportId ($a_import_id)
 
static _lookupImportId ($a_obj_id)
 
static _lookupOwnerName ($a_owner_id)
 lookup owner name for owner id More...
 
static _getIdForImportId ($a_import_id)
 get current object id for import id (static) More...
 
static _getAllReferences ($a_id)
 get all reference ids of object More...
 
static _lookupTitle ($a_id)
 lookup object title More...
 
static _lookupOwner ($a_id)
 lookup object owner More...
 
static _getIdsForTitle ($title, $type='', $partialmatch=false)
 
static _lookupDescription ($a_id)
 lookup object description More...
 
static _lookupLastUpdate ($a_id, $a_as_string=false)
 lookup last update More...
 
static _getLastUpdateOfObjects ($a_objs)
 Get last update for a set of media objects. More...
 
static _lookupObjId ($a_id)
 
static _setDeletedDate ($a_ref_id)
 only called in ilTree::saveSubTree More...
 
static setDeletedDates ($a_ref_ids)
 Set deleted date @global type $ilDB. More...
 
static _resetDeletedDate ($a_ref_id)
 only called in ilObjectGUI::insertSavedNodes More...
 
static _lookupDeletedDate ($a_ref_id)
 only called in ilObjectGUI::insertSavedNodes More...
 
static _writeTitle ($a_obj_id, $a_title)
 write title to db (static) More...
 
static _writeDescription ($a_obj_id, $a_desc)
 write description to db (static) More...
 
static _writeImportId ($a_obj_id, $a_import_id)
 write import id to db (static) More...
 
static _lookupType ($a_id, $a_reference=false)
 lookup object type More...
 
static _isInTrash ($a_ref_id)
 checks wether object is in trash More...
 
static _hasUntrashedReference ($a_obj_id)
 checks wether an object has at least one reference that is not in trash More...
 
static _lookupObjectId ($a_ref_id)
 lookup object id More...
 
static _getObjectsDataForType ($a_type, $a_omit_trash=false)
 get all objects of a certain type More...
 
static _exists ($a_id, $a_reference=false, $a_type=null)
 checks if an object exists in object_data@access public More...
 
static _getObjectsByType ($a_obj_type="", $a_owner="")
 Get objects by type. More...
 
static _prepareCloneSelection ($a_ref_ids, $new_type, $show_path=true)
 Prepare copy wizard object selection. More...
 
static _getIcon ($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
 Get icon for repository item. More...
 
static collectDeletionDependencies (&$deps, $a_ref_id, $a_obj_id, $a_type, $a_depth=0)
 Collect deletion dependencies. More...
 
static getDeletionDependencies ($a_obj_id)
 Get deletion dependencies. More...
 
static getLongDescriptions (array $a_obj_ids)
 Get long description data. More...
 
static getAllOwnedRepositoryObjects ($a_user_id)
 Get all ids of objects user owns. More...
 
static fixMissingTitles ($a_type, array &$a_obj_title_map)
 Try to fix missing object titles. More...
 
static _lookupCreationDate ($a_id)
 Lookup creation date. More...
 
static hasAutoRating ($a_type, $a_ref_id)
 Check if auto rating is active for parent group/course. More...
 

Data Fields

 $filename
 
 $filetype
 
 $filemaxsize = "20000000"
 
 $raise_upload_error
 
 $mode = "object"
 
- Data Fields inherited from ilObject
const TITLE_LENGTH = 255
 max length of object title More...
 
const DESC_LENGTH = 128
 
 $ilias
 
 $lng
 
 $id
 
 $ref_id
 
 $type
 
 $title
 
 $untranslatedTitle
 
 $desc
 
 $long_desc
 
 $owner
 
 $create_date
 
 $last_update
 
 $import_id
 
 $register = false
 
 $referenced
 
 $objectList
 
 $max_title
 
 $max_desc
 
 $add_dots
 

Protected Member Functions

 doCreate ($a_upload=false)
 create object More...
 
 beforeCreateMetaData ()
 
 beforeUpdateMetaData ()
 
 doCreateMetaData ()
 create file object meta data More...
 
 beforeMDUpdateListener ($a_element)
 
 doMDUpdateListener ($a_element)
 
 doRead ()
 read file properties More...
 
 beforeUpdate ()
 
 doUpdate ()
 update file More...
 
 doUpdateMetaData ()
 update meta data More...
 
 doCloneObject ($a_new_obj, $a_target_id, $a_copy_id=0)
 Clone. More...
 
 beforeDelete ()
 
 doDelete ()
 
 updateWithVersion ($version)
 Updates the file object with the specified file version. More...
 
 createPreview ($force=false)
 Creates a preview for the file object. More...
 
 deletePreview ()
 Deletes the preview of the file object. More...
 
- Protected Member Functions inherited from ilObject2
 initType ()
 
 doRead ()
 
 doCreate ()
 
 beforeCreate ()
 
 doUpdate ()
 
 beforeUpdate ()
 
 doMDUpdateListener ($a_element)
 
 beforeMDUpdateListener ($a_element)
 
 doCreateMetaData ()
 
 beforeCreateMetaData ()
 
 doUpdateMetaData ()
 
 beforeUpdateMetaData ()
 
 doDelete ()
 
 beforeDelete ()
 
 doCloneObject ($new_obj, $a_target_id, $a_copy_id=null)
 
 beforeCloneObject ()
 

Static Protected Member Functions

static handleQuotaUpdate (ilObjFile $a_file)
 

Protected Attributes

 $rating = false
 
 $log = null
 

Private Attributes

 $file_storage = null
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilObjFile::__construct (   $a_id = 0,
  $a_call_by_reference = true 
)

ilObjFile constructor.

Parameters
int$a_idID of the object, ref_id or obj_id possible
bool$a_call_by_referencedefines the $a_id a ref_id

Reimplemented from ilObject2.

Definition at line 35 of file class.ilObjFile.php.

35 {
36 $this->version = 0;
37 $this->raise_upload_error = true;
38
39 $this->log = ilLoggerFactory::getLogger('file');
40
41 parent::__construct($a_id,$a_call_by_reference);
42
43 if($this->getId())
44 {
45 $this->initFileStorage();
46 }
47 }
static getLogger($a_component_id)
Get component logger.
initFileStorage()
init file storage object
getId()
get object id @access public

References ilObject2\getId(), ilLoggerFactory\getLogger(), and initFileStorage().

+ Here is the call graph for this function:

Member Function Documentation

◆ _deleteAllUsages()

static ilObjFile::_deleteAllUsages (   $a_type,
  $a_id,
  $a_usage_hist_nr = 0,
  $a_usage_lang = "-" 
)
static

static delete all usages of

Definition at line 924 of file class.ilObjFile.php.

925 {
926 global $ilDB;
927
928 $and_hist = ($a_usage_hist_nr !== false)
929 ? " AND usage_hist_nr = ".$ilDB->quote($a_usage_hist_nr, "integer")
930 : "";
931
932 $file_ids = array();
933 $set = $ilDB->query("SELECT id FROM file_usage".
934 " WHERE usage_type = ".$ilDB->quote($a_type, "text").
935 " AND usage_id= ".$ilDB->quote($a_id, "integer").
936 " AND usage_lang= ".$ilDB->quote($a_usage_lang, "text").
937 $and_hist);
938 while($row = $ilDB->fetchAssoc($set))
939 {
940 $file_ids[] = $row["id"];
941 }
942
943 $ilDB->manipulate("DELETE FROM file_usage WHERE usage_type = ".
944 $ilDB->quote($a_type, "text").
945 " AND usage_id = ".$ilDB->quote((int) $a_id, "integer").
946 " AND usage_lang= ".$ilDB->quote($a_usage_lang, "text").
947 " AND usage_hist_nr = ".$ilDB->quote((int) $a_usage_hist_nr, "integer"));
948
949 foreach($file_ids as $file_id)
950 {
951 self::handleQuotaUpdate(new self($file_id, false));
952 }
953 }
static handleQuotaUpdate(ilObjFile $a_file)
global $ilDB
$a_type
Definition: workflow.php:93

References $a_type, $ilDB, $row, and handleQuotaUpdate().

Referenced by ilPCFileList\beforePageDelete(), and ilPCFileList\saveFileUsage().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _getFilesOfObject()

static ilObjFile::_getFilesOfObject (   $a_type,
  $a_id,
  $a_usage_hist_nr = 0,
  $a_usage_lang = "-" 
)
static

get all files of an object

Parameters
string$a_typeobject type (e.g. "lm:pg")
int$a_idobject id
Returns
array array of file ids

Definition at line 1012 of file class.ilObjFile.php.

1013 {
1014 global $ilDB;
1015
1016 $lstr = "";
1017 if ($a_usage_lang != "")
1018 {
1019 $lstr = "usage_lang = ".$ilDB->quote((string) $a_usage_lang, "text")." AND ";
1020 }
1021
1022 // get usages in learning modules
1023 $q = "SELECT * FROM file_usage WHERE ".
1024 "usage_id = ".$ilDB->quote((int) $a_id, "integer")." AND ".
1025 "usage_type = ".$ilDB->quote((string) $a_type, "text")." AND ".
1026 $lstr.
1027 "usage_hist_nr = ".$ilDB->quote((int) $a_usage_hist_nr, "integer");
1028 $file_set = $ilDB->query($q);
1029 $ret = array();
1030 while($file_rec = $ilDB->fetchAssoc($file_set))
1031 {
1032 $ret[$file_rec["id"]] = $file_rec["id"];
1033 }
1034
1035 return $ret;
1036 }
$ret
Definition: parser.php:6

References $a_type, $ilDB, and $ret.

Referenced by ilPCFileList\afterPageUpdate(), ilCOPageHTMLExport\collectPageElements(), ilObjGlossary\exportHTMLGlossaryTerms(), ilObjContentObject\exportHTMLGlossaryTerms(), ilObjContentObject\exportHTMLPages(), ilPageObject\getLastUpdateOfIncludedElements(), and ilCOPageExporter\getXmlExportHeadDependencies().

+ Here is the caller graph for this function:

◆ _lookupAbsolutePath()

static ilObjFile::_lookupAbsolutePath (   $obj_id,
  $a_version = null 
)
static

return absolute path for version

Definition at line 1123 of file class.ilObjFile.php.

1124 {
1125 $file_storage = new ilFSStorageFile($obj_id);
1127 $version_subdir = "";
1128
1129 if (!is_numeric($a_version))
1130 {
1131 $a_version = ilObjFile::_lookupVersion ($obj_id);
1132 }
1133 $version_subdir = DIRECTORY_SEPARATOR.sprintf("%03d", $a_version);
1134 return $file_storage->getAbsolutePath().$version_subdir.DIRECTORY_SEPARATOR.$filename;
1135 }
static _lookupFileName($a_id)
static _lookupVersion($a_id)
lookup version

References $file_storage, $filename, _lookupFileName(), and _lookupVersion().

Referenced by ilFolderDownloadBackgroundTaskHandler\copyFile(), ilContainerGUI\copyFile(), ilObjFolder\recurseFolder(), and ilObjWorkspaceFolder\recurseFolder().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _lookupFileName()

static ilObjFile::_lookupFileName (   $a_id)
static

Definition at line 595 of file class.ilObjFile.php.

596 {
597 global $ilDB;
598
599 $q = "SELECT * FROM file_data WHERE file_id = ".$ilDB->quote($a_id ,'integer');
600 $r = $ilDB->query($q);
602
603 return ilUtil::stripSlashes($row->file_name);
604 }
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
$r
Definition: example_031.php:79

References $ilDB, $r, $row, ilDBConstants\FETCHMODE_OBJECT, and ilUtil\stripSlashes().

Referenced by _lookupAbsolutePath(), ilSCORM2004PageGUI\setDefaultLinkXml(), and ilFilePreviewRenderer\supports().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _lookupFileSize()

static ilObjFile::_lookupFileSize (   $a_id)
static

Lookups the file size of the file in bytes.

Definition at line 608 of file class.ilObjFile.php.

609 {
610 require_once("./Modules/File/classes/class.ilObjFileAccess.php");
612 }
static _lookupFileSize($a_id)
Quickly looks up the file size from the database and returns the number of bytes.

References ilObjFileAccess\_lookupFileSize().

Referenced by ilPageObject\addFileSizes(), ilObjFileDAV\getContentLength(), and ilObjFileGUI\infoScreenForward().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _lookupVersion()

static ilObjFile::_lookupVersion (   $a_id)
static

lookup version

Definition at line 617 of file class.ilObjFile.php.

618 {
619 require_once("./Modules/File/classes/class.ilObjFileAccess.php");
621 }
static _lookupVersion($a_id)
lookup version

References ilObjFileAccess\_lookupVersion().

Referenced by _lookupAbsolutePath().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _saveUsage()

static ilObjFile::_saveUsage (   $a_file_id,
  $a_type,
  $a_id,
  $a_usage_hist_nr = 0,
  $a_usage_lang = "-" 
)
static

save usage

Definition at line 958 of file class.ilObjFile.php.

959 {
960 global $ilDB;
961
962 // check if file really exists
963 if (ilObject::_lookupType($a_file_id) != "file")
964 {
965 return;
966 }
967 // #15143
968 $ilDB->replace("file_usage",
969 array(
970 "id" => array("integer", (int) $a_file_id),
971 "usage_type" => array("text", (string) $a_type),
972 "usage_id" => array("integer", (int) $a_id),
973 "usage_hist_nr" => array("integer", (int) $a_usage_hist_nr),
974 "usage_lang" => array("text", $a_usage_lang)
975 ),
976 array()
977 );
978
979 self::handleQuotaUpdate(new self($a_file_id, false));
980 }
static _lookupType($a_id, $a_reference=false)
lookup object type

References $a_type, $ilDB, ilObject\_lookupType(), and handleQuotaUpdate().

Referenced by ilPCFileList\saveFileUsage().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _writeFileType()

static ilObjFile::_writeFileType (   $a_id,
  $a_format 
)
static

Definition at line 584 of file class.ilObjFile.php.

585 {
586 global $ilDB;
587
588 $q = "UPDATE file_data SET ".
589 " file_type = ".$ilDB->quote($a_format ,'text').
590 " WHERE file_id = ".$ilDB->quote($a_id ,'integer');
591 $res = $ilDB->manipulate($q);
592
593 }

References $ilDB, and $res.

Referenced by doMDUpdateListener().

+ Here is the caller graph for this function:

◆ addFileVersion()

ilObjFile::addFileVersion (   $a_upload_file,
  $a_filename 
)

Definition at line 291 of file class.ilObjFile.php.

292 {
293 $this->getUploadFile($a_upload_file, $a_filename, true);
294
295 require_once("./Services/History/classes/class.ilHistory.php");
297 $this->getId(),
298 "new_version",
299 $a_filename.",".$this->getVersion()
300 );
301 $this->setFilename($a_filename);
302 $this->addNewsNotification("file_updated");
303
304 // create preview
305 $this->createPreview($this->getVersion() > 1);
306 }
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.
getUploadFile($a_upload_file, $a_filename, $a_prevent_preview=false, $handle_secure_name=true)
createPreview($force=false)
Creates a preview for the file object.
addNewsNotification($a_lang_var)

References ilHistory\_createEntry(), addNewsNotification(), createPreview(), ilObject2\getId(), getUploadFile(), and getVersion().

+ Here is the call graph for this function:

◆ addNewsNotification()

ilObjFile::addNewsNotification (   $a_lang_var)

Definition at line 1051 of file class.ilObjFile.php.

1052 {
1053 // BEGIN WebDAV Suppress news notification for hidden files
1054 if ($this->isHidden()) {
1055 return;
1056 }
1057 // END WebDAV Suppress news notification for hidden files
1058
1059 global $ilUser;
1060
1061 // Add Notification to news
1062 include_once("./Services/News/classes/class.ilNewsItem.php");
1063 include_once("./Modules/File/classes/class.ilObjFileAccess.php");
1064 $news_item = new ilNewsItem();
1065 $news_item->setContext($this->getId(), $this->getType());
1066 $news_item->setPriority(NEWS_NOTICE);
1067 $news_item->setTitle($a_lang_var);
1068 $news_item->setContentIsLangVar(true);
1069 if ($this->getDescription() != "")
1070 {
1071 $news_item->setContent(
1072 "<p>".
1073 $this->getDescription()."</p>");
1074 }
1075 $news_item->setUserId($ilUser->getId());
1076 $news_item->setVisibility(NEWS_USERS);
1077 $news_item->create();
1078 }
const NEWS_USERS
const NEWS_NOTICE
isHidden()
Returns true, if this file should be hidden in the repository view.
getType()
get object type @access public
getDescription()
get object description
$ilUser
Definition: imgupload.php:18

References $ilUser, ilObject2\getDescription(), ilObject2\getId(), ilObject2\getType(), isHidden(), NEWS_NOTICE, and NEWS_USERS.

Referenced by addFileVersion(), createProperties(), replaceFile(), and rollback().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ beforeCreateMetaData()

ilObjFile::beforeCreateMetaData ( )
protected

Reimplemented from ilObject2.

Definition at line 136 of file class.ilObjFile.php.

137 {
138 return !(bool)$this->no_meta_data_creation;
139 }

◆ beforeDelete()

ilObjFile::beforeDelete ( )
protected

Reimplemented from ilObject2.

Definition at line 856 of file class.ilObjFile.php.

857 {
858 global $ilDB;
859
860 // check, if file is used somewhere
861 $usages = $this->getUsages();
862 if (count($usages) == 0)
863 {
864 return true;
865 }
866 return false;
867 }
getUsages()
get all usages of file object

References $ilDB, and getUsages().

+ Here is the call graph for this function:

◆ beforeMDUpdateListener()

ilObjFile::beforeMDUpdateListener (   $a_element)
protected

Reimplemented from ilObject2.

Definition at line 162 of file class.ilObjFile.php.

163 {
164 // Check file extension
165 // Removing the file extension is not allowed
166 include_once 'Services/MetaData/classes/class.ilMD.php';
167 $md = new ilMD($this->getId(),0, $this->getType());
168 if(!is_object($md_gen = $md->getGeneral()))
169 {
170 return false;
171 }
172 $title = $this->checkFileExtension($this->getFileName(), $md_gen->getTitle());
173 $md_gen->setTitle($title);
174 $md_gen->update();
175 return true;
176 }
checkFileExtension($new_filename, $new_title)
Check if the file extension does still exist after an update of the title.

References ilObject\$title, checkFileExtension(), getFileName(), ilObject2\getId(), and ilObject2\getType().

+ Here is the call graph for this function:

◆ beforeUpdate()

ilObjFile::beforeUpdate ( )
protected

Reimplemented from ilObject2.

Definition at line 418 of file class.ilObjFile.php.

419 {
420 // no meta data handling for file list files
421 if ($this->getMode() != "filelist")
422 {
423 $this->updateMetaData();
424 }
425
426 return true;
427 }
getMode()
mode is object or filelist
updateMetaData()
update meta data entry

References getMode(), and ilObject2\updateMetaData().

+ Here is the call graph for this function:

◆ beforeUpdateMetaData()

ilObjFile::beforeUpdateMetaData ( )
protected

Reimplemented from ilObject2.

Definition at line 141 of file class.ilObjFile.php.

142 {
143 return !(bool)$this->no_meta_data_creation;
144 }

◆ checkFileExtension()

ilObjFile::checkFileExtension (   $new_filename,
  $new_title 
)

Check if the file extension does still exist after an update of the title.

Returns

Definition at line 1141 of file class.ilObjFile.php.

1142 {
1143 include_once './Modules/File/classes/class.ilObjFileAccess.php';
1144 $fileExtension = ilObjFileAccess::_getFileExtension($new_filename);
1145 $titleExtension = ilObjFileAccess::_getFileExtension($new_title);
1146 if ($titleExtension != $fileExtension && strlen($fileExtension) > 0)
1147 {
1148 // remove old extension
1149 $pi = pathinfo($this->getFileName());
1150 $suffix = $pi["extension"];
1151 if ($suffix != "")
1152 {
1153 if (substr($new_title,
1154 strlen($new_title) - strlen($suffix) - 1)
1155 == ".".$suffix)
1156 {
1157 $new_title = substr($new_title, 0, strlen($new_title) - strlen($suffix) - 1);
1158 }
1159 }
1160 $new_title .= '.'.$fileExtension;
1161 }
1162 return $new_title;
1163 }
static _getFileExtension($a_file_name)
Gets the file extension of the specified file name.

References ilObjFileAccess\_getFileExtension(), and getFileName().

Referenced by beforeMDUpdateListener(), and updateWithVersion().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clearDataDirectory()

ilObjFile::clearDataDirectory ( )

clear data directory

Definition at line 320 of file class.ilObjFile.php.

321 {
323 $this->createDirectory();
324 }
getDirectory($a_version=0)
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively

References createDirectory(), ilUtil\delDir(), and getDirectory().

Referenced by deleteVersions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compareVersions()

ilObjFile::compareVersions (   $v1,
  $v2 
)

Compares two file versions.

Parameters
array$v1First file version to compare.
array$v2Second file version to compare.
Returns
int Returns an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

Definition at line 1306 of file class.ilObjFile.php.

1307 {
1308 // v2 - v1 because version should be descending
1309 return (int)$v2["version"] - (int)$v1["version"];
1310 }

◆ copy()

ilObjFile::copy (   $a_source,
  $a_destination 
)

copy file

Definition at line 312 of file class.ilObjFile.php.

313 {
314 return copy($a_source,$this->getDirectory()."/".$a_destination);
315 }
copy($a_source, $a_destination)
copy file

References copy(), and getDirectory().

Referenced by copy(), and rollback().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createDirectory()

ilObjFile::createDirectory ( )

Definition at line 227 of file class.ilObjFile.php.

228 {
230 }
static makeDirParents($a_dir)
Create a new directory and all parent directories.

References getDirectory(), and ilUtil\makeDirParents().

Referenced by clearDataDirectory().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createPreview()

ilObjFile::createPreview (   $force = false)
protected

Creates a preview for the file object.

Parameters
bool$forcetrue, to force the creation of the preview; false, to create the preview only if the file is newer.

Definition at line 1376 of file class.ilObjFile.php.

1377 {
1378 // only normal files are supported
1379 if ($this->getMode() != "object")
1380 return;
1381
1382 require_once("./Services/Preview/classes/class.ilPreview.php");
1383 ilPreview::createPreview($this, $force);
1384 }
static createPreview($a_obj, $a_force=false)
Creates the preview for the object with the specified id.

References ilPreview\createPreview(), and getMode().

Referenced by addFileVersion(), getUploadFile(), replaceFile(), storeUnzipedFile(), and updateWithVersion().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createProperties()

ilObjFile::createProperties (   $a_upload = false)

The basic properties of a file object are stored in table object_data.

This is not sufficient for a file object. Therefore we create additional properties in table file_data. This method has been put into a separate operation, to allow a WebDAV Null resource (class.ilObjNull.php) to become a file object.

Definition at line 77 of file class.ilObjFile.php.

78 {
79 global $ilDB,$tree;
80
81 // Create file directory
82 $this->initFileStorage();
83 $this->file_storage->create();
84
85 if($a_upload)
86 {
87 return true;
88 }
89
90 // not upload mode
91 require_once("./Services/History/classes/class.ilHistory.php");
92 ilHistory::_createEntry($this->getId(), "create", $this->getFileName().",1");
93 $this->addNewsNotification("file_created");
94
95
96 require_once("./Services/News/classes/class.ilNewsItem.php");
97 $default_visibility = ilNewsItem::_getDefaultVisibilityForRefId($_GET['ref_id']);
98 if ($default_visibility == "public")
99 {
100 ilBlockSetting::_write("news", "public_notifications",
101 1, 0, $this->getId());
102 }
103
104 // log creation
105 include_once("./Services/Utilities/classes/class.ilStr.php");
106 $this->log->debug("ilObjFile::createProperties, ID: ".$this->getId().
107 ", Name: ".$this->getFileName().
108 ", Type: ".$this->getFileType().
109 ", Size: ".$this->getFileSize().
110 ", Mode: ".$this->getMode().
111 ", Name(Bytes): ".implode(":", ilStr::getBytesForString($this->getFileName()))
112 );
113 $this->log->logStack(ilLogLevel::DEBUG);
114
115 $q = "INSERT INTO file_data (file_id,file_name,file_type,file_size,version,f_mode) "
116 ."VALUES (".$ilDB->quote($this->getId() ,'integer').","
117 .$ilDB->quote($this->getFileName() ,'text').","
118 .$ilDB->quote($this->getFileType() ,'text').","
119 .$ilDB->quote((int) $this->getFileSize() ,'integer').","
120 .$ilDB->quote(1 ,'integer').",".$ilDB->quote($this->getMode() ,'text').")";
121 $res = $ilDB->manipulate($q);
122
123 // no meta data handling for file list files
124 if ($this->getMode() != "filelist")
125 {
126 $this->createMetaData();
127 }
128 }
$_GET["client_id"]
static _write($a_type, $a_setting, $a_value, $a_user=0, $a_block_id=0)
Write setting to database.
static _getDefaultVisibilityForRefId($a_ref_id)
Get default visibility for reference id.
createMetaData()
create meta data entry
static getBytesForString($a_str)
Return string as byte array Note: Use this for debugging purposes only.

References $_GET, $ilDB, $res, ilHistory\_createEntry(), ilNewsItem\_getDefaultVisibilityForRefId(), ilBlockSetting\_write(), addNewsNotification(), ilObject2\createMetaData(), ilLogLevel\DEBUG, ilStr\getBytesForString(), getFileName(), getFileSize(), getFileType(), ilObject2\getId(), getMode(), and initFileStorage().

Referenced by doCreate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deletePreview()

ilObjFile::deletePreview ( )
protected

Deletes the preview of the file object.

Definition at line 1389 of file class.ilObjFile.php.

1390 {
1391 // only normal files are supported
1392 if ($this->getMode() != "object")
1393 return;
1394
1395 require_once("./Services/Preview/classes/class.ilPreview.php");
1397 }
static deletePreview($a_obj_id)
Deletes the preview for the object with the specified id.

References ilPreview\deletePreview(), ilObject2\getId(), and getMode().

Referenced by doDelete().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteVersions()

ilObjFile::deleteVersions (   $a_hist_entry_ids = null)

Deletes the specified history entries or all entries if no ids are specified.

Parameters
array$a_hist_entry_idsThe ids of the entries to delete or null to delete all entries

Definition at line 331 of file class.ilObjFile.php.

332 {
333 global $ilDB;
334
335 require_once("./Services/History/classes/class.ilHistory.php");
336
337 if ($a_hist_entry_ids == null || count($a_hist_entry_ids) < 1)
338 {
339 $ilDB->manipulate("UPDATE file_data SET version = 1 WHERE file_id = ".$ilDB->quote($this->getId() ,'integer'));
340 $this->setVersion(0);
341 $this->clearDataDirectory();
342
344
346 }
347 else
348 {
349 $actualVersionDeleted = false;
350
351 // get all versions
352 $versions = $this->getVersions();
353
354 // delete each version
355 foreach ($a_hist_entry_ids as $hist_id)
356 {
357 $entry = null;
358
359 // get version
360 foreach ($versions as $index => $version)
361 {
362 if ($version["hist_entry_id"] == $hist_id)
363 {
364 // remove each history entry
366
367 // delete directory
368 $version_dir = $this->getDirectory($version["version"]);
369 ilUtil::delDir($version_dir);
370
371 // is actual version?
372 if ($version["version"] == $this->getVersion())
373 $actualVersionDeleted = true;
374
375 // remove from array
376 unset($versions[$index]);
377 break;
378 }
379 }
380 }
381
382 // update actual version if it was deleted before
383 if ($actualVersionDeleted)
384 {
385 // get newest version (already sorted by getVersions)
386 $version = reset($versions);
388 }
389 else
390 {
391 // updateWithVersion() will trigger quota, too
393 }
394 }
395 }
static _removeEntryByHistoryID($a_hist_entry_id)
Removes a single entry from the history.
static _removeEntriesForObject($a_obj_id)
remove all history entries for an object
clearDataDirectory()
clear data directory
updateWithVersion($version)
Updates the file object with the specified file version.
getVersions($version_ids=null)
Gets the file versions for this object.
setVersion($a_version)

References $ilDB, $version, ilHistory\_removeEntriesForObject(), ilHistory\_removeEntryByHistoryID(), clearDataDirectory(), ilUtil\delDir(), getDirectory(), ilObject2\getId(), getVersion(), getVersions(), handleQuotaUpdate(), setVersion(), and updateWithVersion().

+ Here is the call graph for this function:

◆ determineFileSize()

ilObjFile::determineFileSize (   $a_hist_entry_id = null)

Determine File Size.

Definition at line 626 of file class.ilObjFile.php.

627 {
628 if (is_null($a_hist_entry_id))
629 {
630 $file = $this->getDirectory($this->getVersion())."/".$this->getFileName();
631 }
632 else
633 {
634 require_once("./Services/History/classes/class.ilHistory.php");
635 $entry = ilHistory::_getEntryByHistoryID($a_hist_entry_id);
636
637 if ($entry === false)
638 {
639 return false;
640 }
641
642 $data = $this->parseInfoParams($entry);
643 $file = $this->getDirectory($data["version"])."/".$data["filename"];
644 }
645 if (is_file($file))
646 {
647 $this->setFileSize(filesize($file));
648 }
649 }
static _getEntryByHistoryID($a_hist_entry_id)
returns a single history entry
setFileSize($a_size)
parseInfoParams($entry)
Parses the info parameters ("info_params") of the specified history entry.
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file

References $data, $file, ilHistory\_getEntryByHistoryID(), getDirectory(), getFileName(), getVersion(), parseInfoParams(), and setFileSize().

Referenced by updateWithVersion().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ doCloneObject()

ilObjFile::doCloneObject (   $a_new_obj,
  $a_target_id,
  $a_copy_id = 0 
)
protected

Clone.

@access public

Parameters
objectclone
inttarget id
intcopy id

Reimplemented from ilObject2.

Definition at line 815 of file class.ilObjFile.php.

816 {
817 global $ilDB;
818
819 $a_new_obj->createDirectory();
820 $this->cloneMetaData($a_new_obj);
821
822 // Copy all file versions
823 ilUtil::rCopy($this->getDirectory(),$a_new_obj->getDirectory());
824
825 // object created now copy other settings
826 $query = "INSERT INTO file_data (file_id,file_name,file_type,file_size,version,rating,f_mode) VALUES (".
827 $ilDB->quote($a_new_obj->getId() ,'integer').",".
828 $ilDB->quote($this->getFileName() ,'text').",".
829 $ilDB->quote($this->getFileType() ,'text').",".
830 $ilDB->quote((int) $this->getFileSize() ,'integer').", ".
831 $ilDB->quote($this->getVersion() ,'integer').", ".
832 $ilDB->quote($this->hasRating() ,'integer').", ".
833 $ilDB->quote($this->getMode() ,'text').")";
834 $res = $ilDB->manipulate($query);
835
836 // copy all previews
837 require_once("./Services/Preview/classes/class.ilPreview.php");
838 ilPreview::copyPreviews($this->getId(), $a_new_obj->getId());
839
840 // copy history entries
841 require_once("./Services/History/classes/class.ilHistory.php");
842 ilHistory::_copyEntriesForObject($this->getId(),$a_new_obj->getId());
843
844 // Copy learning progress settings
845 include_once('Services/Tracking/classes/class.ilLPObjSettings.php');
846 $obj_settings = new ilLPObjSettings($this->getId());
847 $obj_settings->cloneSettings($a_new_obj->getId());
848 unset($obj_settings);
849
850 // add news notification
851 $a_new_obj->addNewsNotification("file_created");
852
853 return $a_new_obj;
854 }
static _copyEntriesForObject($a_src_id, $a_dst_id)
copy all history entries for an object
cloneMetaData($target_obj)
Copy meta data.
static copyPreviews($a_src_id, $a_dest_id)
Copies the preview images from one preview to a new preview object.
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.

References $ilDB, $query, $res, ilHistory\_copyEntriesForObject(), ilObject2\cloneMetaData(), ilPreview\copyPreviews(), getDirectory(), getFileName(), getFileSize(), getFileType(), ilObject2\getId(), getMode(), getVersion(), hasRating(), and ilUtil\rCopy().

+ Here is the call graph for this function:

◆ doCreate()

ilObjFile::doCreate (   $a_upload = false)
protected

create object

Parameters
boolupload mode (if enabled no entries in file_data will be done)

Definition at line 62 of file class.ilObjFile.php.

63 {
64 //BEGIN WebDAV Move Property creation into a method of its own.
65 $this->createProperties($a_upload);
66 //END WebDAV Move Property creation into a method of its own.
67 }
createProperties($a_upload=false)
The basic properties of a file object are stored in table object_data.

References createProperties().

+ Here is the call graph for this function:

◆ doCreateMetaData()

ilObjFile::doCreateMetaData ( )
protected

create file object meta data

Reimplemented from ilObject2.

Definition at line 149 of file class.ilObjFile.php.

150 {
151 // add technical section with file size and format
152 $md_obj = new ilMD($this->getId(),0,$this->getType());
153 $technical = $md_obj->addTechnical();
154 $technical->setSize($this->getFileSize());
155 $technical->save();
156 $format = $technical->addFormat();
157 $format->setFormat($this->getFileType());
158 $format->save();
159 $technical->update();
160 }

References getFileSize(), getFileType(), ilObject2\getId(), and ilObject2\getType().

+ Here is the call graph for this function:

◆ doDelete()

ilObjFile::doDelete ( )
protected

Reimplemented from ilObject2.

Definition at line 869 of file class.ilObjFile.php.

870 {
871 global $ilDB;
872
873 // delete file data entry
874 $q = "DELETE FROM file_data WHERE file_id = ".$ilDB->quote($this->getId() ,'integer');
875 $this->ilias->db->query($q);
876
877 // delete history entries
878 require_once("./Services/History/classes/class.ilHistory.php");
880
881 // delete entire directory and its content
882 if (@is_dir($this->getDirectory()))
883 {
885 }
886
887 // delete meta data
888 if ($this->getMode() != "filelist")
889 {
890 $this->deleteMetaData();
891 }
892
894
895 // delete preview
896 $this->deletePreview();
897 }
deletePreview()
Deletes the preview of the file object.
deleteMetaData()
delete meta data entry
redirection script todo: (a better solution should control the processing via a xml file)

References $ilDB, ilHistory\_removeEntriesForObject(), ilUtil\delDir(), ilObject2\deleteMetaData(), deletePreview(), getDirectory(), ilObject2\getId(), getMode(), and handleQuotaUpdate().

+ Here is the call graph for this function:

◆ doMDUpdateListener()

ilObjFile::doMDUpdateListener (   $a_element)
protected

Reimplemented from ilObject2.

Definition at line 178 of file class.ilObjFile.php.

179 {
180 // handling for technical section
181 include_once 'Services/MetaData/classes/class.ilMD.php';
182//echo "-".$a_element."-";
183 switch($a_element)
184 {
185 case 'Technical':
186
187 // Update Format (size is not stored in db)
188 $md = new ilMD($this->getId(),0, $this->getType());
189 if(!is_object($md_technical = $md->getTechnical()))
190 {
191 return false;
192 }
193
194 foreach($md_technical->getFormatIds() as $id)
195 {
196 $md_format = $md_technical->getFormat($id);
197 ilObjFile::_writeFileType($this->getId(),$md_format->getFormat());
198 $this->setFileType($md_format->getFormat());
199 break;
200 }
201
202 break;
203 }
204 return true;
205 }
setFileType($a_type)
static _writeFileType($a_id, $a_format)

References ilObject\$id, _writeFileType(), ilObject2\getId(), ilObject2\getType(), and setFileType().

+ Here is the call graph for this function:

◆ doRead()

ilObjFile::doRead ( )
protected

read file properties

Reimplemented from ilObject2.

Definition at line 400 of file class.ilObjFile.php.

401 {
402 global $ilDB;
403
404 $q = "SELECT * FROM file_data WHERE file_id = ".$ilDB->quote($this->getId() ,'integer');
405 $r = $this->ilias->db->query($q);
407
408 $this->setFileName($row->file_name);
409 $this->setFileType($row->file_type);
410 $this->setFileSize($row->file_size);
411 $this->setVersion($row->version);
412 $this->setMode($row->f_mode);
413 $this->setRating($row->rating);
414
415 $this->initFileStorage();
416 }
setMode($a_mode)
mode is object or filelist
setFileName($a_name)
set filename
setRating($a_value)

References $ilDB, $r, $row, ilDBConstants\FETCHMODE_OBJECT, ilObject2\getId(), initFileStorage(), setFileName(), setFileSize(), setFileType(), setMode(), setRating(), and setVersion().

+ Here is the call graph for this function:

◆ doUpdate()

ilObjFile::doUpdate ( )
protected

update file

Reimplemented from ilObject2.

Definition at line 432 of file class.ilObjFile.php.

433 {
434 global $ilDB, $ilLog;
435
436 //$ilLog->write(__METHOD__.' File type: '.$this->getFileType());
437
438 $q = "UPDATE file_data SET file_name = ".$ilDB->quote($this->getFileName() ,'text').
439 ", file_type = ".$ilDB->quote($this->getFiletype() ,'text')." ".
440 ", file_size = ".$ilDB->quote((int) $this->getFileSize() ,'integer')." ".
441 ", version = ".$ilDB->quote($this->getVersion() ,'integer')." ".
442 ", f_mode = ".$ilDB->quote($this->getMode() ,'text')." ".
443 ", rating = ".$ilDB->quote($this->hasRating() ,'integer')." ".
444 "WHERE file_id = ".$ilDB->quote($this->getId() ,'integer');
445 $res = $ilDB->manipulate($q);
446
448
449 return true;
450 }

References $ilDB, $ilLog, $res, getFileName(), getFileSize(), ilObject2\getId(), getMode(), getVersion(), handleQuotaUpdate(), and hasRating().

+ Here is the call graph for this function:

◆ doUpdateMetaData()

ilObjFile::doUpdateMetaData ( )
protected

update meta data

Reimplemented from ilObject2.

Definition at line 455 of file class.ilObjFile.php.

456 {
457 // add technical section with file size and format
458 $md_obj = new ilMD($this->getId(),0,$this->getType());
459 if(!is_object($technical = $md_obj->getTechnical()))
460 {
461 $technical = $md_obj->addTechnical();
462 $technical->save();
463 }
464 $technical->setSize($this->getFileSize());
465
466 $format_ids = $technical->getFormatIds();
467 if (count($format_ids) > 0)
468 {
469 $format = $technical->getFormat($format_ids[0]);
470 $format->setFormat($this->getFileType());
471 $format->update();
472 }
473 else
474 {
475 $format = $technical->addFormat();
476 $format->setFormat($this->getFileType());
477 $format->save();
478 }
479 $technical->update();
480 }

References getFileSize(), getFileType(), ilObject2\getId(), and ilObject2\getType().

+ Here is the call graph for this function:

◆ export()

ilObjFile::export (   $a_target_dir)

export files of object to target directory note: target directory must be the export target directory, "/objects/il_<inst>_file_<file_id>/..." will be appended to this directory

Parameters
string$a_target_dirtarget directory

Definition at line 906 of file class.ilObjFile.php.

907 {
908 $subdir = "il_".IL_INST_ID."_file_".$this->getId();
909 ilUtil::makeDir($a_target_dir."/objects/".$subdir);
910
911 $filedir = $this->getDirectory($this->getVersion());
912
913 if (@!is_dir($filedir))
914 {
915 $filedir = $this->getDirectory();
916 }
917
918 ilUtil::rCopy($filedir, $a_target_dir."/objects/".$subdir);
919 }
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...

References getDirectory(), ilObject2\getId(), getVersion(), ilUtil\makeDir(), and ilUtil\rCopy().

+ Here is the call graph for this function:

◆ getDirectory()

ilObjFile::getDirectory (   $a_version = 0)

Definition at line 208 of file class.ilObjFile.php.

209 {
210 $version_subdir = "";
211
212 if ($a_version)
213 {
214 // BEGIN WebDAV Avoid double slash before version subdirectory
215 $version_subdir = sprintf("%03d", $a_version);
216 // END WebDAV Avoid double slash before version subdirectory
217 }
218
219 if(!is_object($this->file_storage))
220 {
221 $this->initFileStorage();
222 }
223
224 return $this->file_storage->getAbsolutePath().'/'.$version_subdir;
225 }
sprintf('%.4f', $callTime)

References initFileStorage(), and sprintf.

Referenced by clearDataDirectory(), copy(), createDirectory(), deleteVersions(), determineFileSize(), doCloneObject(), doDelete(), export(), getFile(), getUploadFile(), getXMLZip(), rollback(), and storeUnzipedFile().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDiskUsage()

ilObjFile::getDiskUsage ( )

Gets the disk usage of the object in bytes.

@access public

Returns
integer the disk usage in bytes

Reimplemented from ilObject.

Definition at line 523 of file class.ilObjFile.php.

524 {
525 require_once("./Modules/File/classes/class.ilObjFileAccess.php");
526 return ilObjFileAccess::_lookupDiskUsage($this->id);
527 }
static _lookupDiskUsage($a_id)
Returns the number of bytes used on the harddisk by the file object with the specified object id.

References ilObjFileAccess\_lookupDiskUsage().

Referenced by handleQuotaUpdate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFile()

ilObjFile::getFile (   $a_hist_entry_id = null)

Definition at line 531 of file class.ilObjFile.php.

532 {
533 if (is_null($a_hist_entry_id))
534 {
535 $file = $this->getDirectory($this->getVersion())."/".$this->getFileName();
536 }
537 else
538 {
539 require_once("./Services/History/classes/class.ilHistory.php");
540 $entry = ilHistory::_getEntryByHistoryID($a_hist_entry_id);
541
542 if ($entry === false)
543 {
544 return false;
545 }
546
547 $data = $this->parseInfoParams($entry);
548 $file = $this->getDirectory($data["version"])."/".$data["filename"];
549 }
550 return $file;
551 }

References $data, $file, ilHistory\_getEntryByHistoryID(), getDirectory(), getFileName(), getVersion(), and parseInfoParams().

+ Here is the call graph for this function:

◆ getFileExtension()

ilObjFile::getFileExtension ( )

Returns the extension of the file name converted to lower-case.

e.g. returns 'pdf' for 'document.pdf'.

Definition at line 725 of file class.ilObjFile.php.

725 {
726 require_once 'Modules/File/classes/class.ilObjFileAccess.php';
728 }
getTitle()
get object title @access public

References ilObjFileAccess\_getFileExtension(), and ilObject2\getTitle().

+ Here is the call graph for this function:

◆ getFileName()

ilObjFile::getFileName ( )

Definition at line 490 of file class.ilObjFile.php.

491 {
492 return $this->filename;
493 }

References $filename.

Referenced by beforeMDUpdateListener(), checkFileExtension(), createProperties(), determineFileSize(), doCloneObject(), doUpdate(), and getFile().

+ Here is the caller graph for this function:

◆ getFileSize()

ilObjFile::getFileSize ( )

Definition at line 513 of file class.ilObjFile.php.

514 {
515 return $this->filesize;
516 }

Referenced by createProperties(), doCloneObject(), doCreateMetaData(), doUpdate(), and doUpdateMetaData().

+ Here is the caller graph for this function:

◆ getFileType()

ilObjFile::getFileType ( )

Definition at line 503 of file class.ilObjFile.php.

504 {
505 return $this->filetype;
506 }

References $filetype.

Referenced by createProperties(), doCloneObject(), doCreateMetaData(), doUpdateMetaData(), and guessFileType().

+ Here is the caller graph for this function:

◆ getMode()

ilObjFile::getMode ( )

mode is object or filelist

Returns
string mode

Definition at line 579 of file class.ilObjFile.php.

580 {
581 return $this->mode;
582 }

References $mode.

Referenced by beforeUpdate(), createPreview(), createProperties(), deletePreview(), doCloneObject(), doDelete(), and doUpdate().

+ Here is the caller graph for this function:

◆ getSpecificVersion()

ilObjFile::getSpecificVersion (   $version_id)

Gets a specific file version.

Parameters
int$version_idThe version id to get.
Returns
array The specific version or false if the version was not found.

Definition at line 1206 of file class.ilObjFile.php.

1207 {
1208 include_once("./Services/History/classes/class.ilHistory.php");
1210 if ($version === false)
1211 return false;
1212
1213 // ilHistory returns different keys in _getEntryByHistoryID and _getEntriesForObject
1214 // so this makes it the same
1215 $version["hist_entry_id"] = $version["id"];
1216 $version["user_id"] = $version["usr_id"];
1217 $version["date"] = $version["hdate"];
1218 unset($version["id"], $version["usr_id"], $version["hdate"]);
1219
1220 // parse params
1222 return array_merge($version, $params);
1223 }
$params
Definition: example_049.php:96

References $params, $version, ilHistory\_getEntryByHistoryID(), and parseInfoParams().

Referenced by rollback().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUploadFile()

ilObjFile::getUploadFile (   $a_upload_file,
  $a_filename,
  $a_prevent_preview = false,
  $handle_secure_name = true 
)

Definition at line 237 of file class.ilObjFile.php.

238 {
239 if ($handle_secure_name) {
240 require_once('./Services/Utilities/classes/class.ilFileUtils.php');
241 $a_filename = ilFileUtils::getValidFilename($a_filename);
242 $this->setFileName($a_filename);
243 //if no title for the file was set use the filename as title
244 if(empty($this->getTitle())) {
245 $this->setTitle($a_filename);
246 }
247 $this->update();
248 }
249 if($this->version) {
250 $this->setVersion($this->getVersion() + 1);
251 }
252
253 if (@!is_dir($this->getDirectory($this->getVersion())))
254 {
256 }
257
258 $file = $this->getDirectory($this->getVersion())."/".$a_filename;
259 ilUtil::moveUploadedFile($a_upload_file, $a_filename, $file, $this->raise_upload_error);
260
261 $this->handleQuotaUpdate($this);
262
263 // create preview?
264 if (!$a_prevent_preview)
265 {
266 $this->createPreview(false);
267 }
268 }
static getValidFilename($a_filename)
Get valid filename.
setTitle($a_title)
set object title
update()
update object in db
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file

References $file, createPreview(), getDirectory(), ilObject2\getTitle(), ilFileUtils\getValidFilename(), getVersion(), handleQuotaUpdate(), ilUtil\makeDirParents(), ilUtil\moveUploadedFile(), setFileName(), ilObject2\setTitle(), setVersion(), and ilObject2\update().

Referenced by addFileVersion(), and replaceFile().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUsages()

ilObjFile::getUsages ( )

get all usages of file object

Definition at line 985 of file class.ilObjFile.php.

986 {
987 global $ilDB;
988
989 // get usages in learning modules
990 $q = "SELECT * FROM file_usage WHERE id = ".$ilDB->quote($this->getId(), "integer");
991 $us_set = $ilDB->query($q);
992 $ret = array();
993 while($us_rec = $ilDB->fetchAssoc($us_set))
994 {
995 $ret[] = array("type" => $us_rec["usage_type"],
996 "id" => $us_rec["usage_id"],
997 "lang" => $us_rec["usage_lang"],
998 "hist_nr" => $us_rec["usage_hist_nr"]);
999 }
1000
1001 return $ret;
1002 }

References $ilDB, $ret, and ilObject2\getId().

Referenced by beforeDelete(), and handleQuotaUpdate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getVersion()

ilObjFile::getVersion ( )

Definition at line 559 of file class.ilObjFile.php.

560 {
561 return $this->version ? $this->version : 1;
562 }

Referenced by addFileVersion(), deleteVersions(), determineFileSize(), doCloneObject(), doUpdate(), export(), getFile(), getUploadFile(), rollback(), and storeUnzipedFile().

+ Here is the caller graph for this function:

◆ getVersions()

ilObjFile::getVersions (   $version_ids = null)

Gets the file versions for this object.

Parameters
array$version_idsThe file versions to get. If not specified all versions are returned.
Returns
The file versions.

Definition at line 1171 of file class.ilObjFile.php.

1172 {
1173 include_once("./Services/History/classes/class.ilHistory.php");
1174 $versions = ilHistory::_getEntriesForObject($this->getId(), $this->getType());
1175
1176 if ($version_ids != null && count($version_ids) > 0)
1177 {
1178 foreach ($versions as $index => $version)
1179 {
1180 if (!in_array($version["hist_entry_id"], $version_ids, true))
1181 {
1182 unset($versions[$index]);
1183 }
1184 }
1185 }
1186
1187 // add custom entries
1188 foreach ($versions as $index => $version)
1189 {
1191 $versions[$index] = array_merge($version, $params);
1192 }
1193
1194 // sort by version number (hist_entry_id will do for that)
1195 usort($versions, array($this, "compareVersions"));
1196
1197 return $versions;
1198 }
static _getEntriesForObject($a_obj_id, $a_obj_type="")
get all history entries for an object

References $params, $version, ilHistory\_getEntriesForObject(), ilObject2\getId(), ilObject2\getType(), and parseInfoParams().

Referenced by deleteVersions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getXMLZip()

ilObjFile::getXMLZip ( )

Reimplemented from ilObject.

Definition at line 1039 of file class.ilObjFile.php.

1040 {
1041 global $ilias;
1042
1043 $zip = PATH_TO_ZIP;
1044
1045 exec($zip.' '.ilUtil::escapeShellArg($this->getDirectory().'/'.$this->getFileName())." ".
1046 ilUtil::escapeShellArg($this->getDirectory().'/'.'1.zip'));
1047
1048 return $this->getDirectory().'/1.zip';
1049 }
static escapeShellArg($a_arg)

References ilObject\$ilias, ilUtil\escapeShellArg(), and getDirectory().

+ Here is the call graph for this function:

◆ guessFileType()

ilObjFile::guessFileType (   $a_file = "")

Guesses the file type based on the current values returned by getFileType() and getFileExtension().

If getFileType() returns 'application/octet-stream', the file extension is used to guess a more accurate file type.

Definition at line 753 of file class.ilObjFile.php.

753 {
754
755 $path = pathinfo($a_file);
756 if ($path["extension"] != "")
757 {
758 $filename = $path["basename"];
759 }
760 else
761 {
762 $filename = "dummy.".$this->getFileExtension();
763 }
764 include_once("./Services/Utilities/classes/class.ilMimeTypeUtil.php");
765 $mime = ilMimeTypeUtil::getMimeType($a_file, $filename, $this->getFileType());
766 return $mime;
767
768/*
769 $fileType = $this->getFileType();
770 if (strlen($fileType) == 0) {
771 $fileType = 'application/octet-stream';
772 }
773
774 // Firefox browser assigns 'application/x-pdf' to PDF files, but
775 // it can only handle them if the have the mime-type 'application/pdf'.
776 if ($fileType == 'application/x-pdf')
777 {
778 $fileType = 'application/pdf';
779 }
780
781 if ($fileType == 'application/octet-stream')
782 {
783 $fileExtension = $this->getFileExtension();
784 $mimeArray = array(
785 'mpeg' => 'video/mpeg',
786 'mp3' => 'audio/mpeg',
787 'pdf' => 'application/pdf',
788 'gif' => 'image/gif',
789 'jpg' => 'image/jpg',
790 'png' => 'image/png',
791 'htm' => 'text/html',
792 'html' => 'text/html',
793 'wma' => 'video/x-ms-wma',
794 'wmv' => 'video/x-ms-wmv',
795 'swf' => 'application/x-shockwave-flash',
796 );
797 if (array_key_exists($fileExtension, $mimeArray))
798 {
799 $fileType = $mimeArray[$fileExtension];
800 }
801 }
802 return $fileType;
803*/
804 }
$path
Definition: aliased.php:25
static getMimeType($a_file='', $a_filename='', $a_mime='')

References $filename, $path, getFileType(), and ilMimeTypeUtil\getMimeType().

Referenced by updateWithVersion().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleQuotaUpdate()

static ilObjFile::handleQuotaUpdate ( ilObjFile  $a_file)
staticprotected

Definition at line 1346 of file class.ilObjFile.php.

1347 {
1348 include_once "Services/MediaObjects/classes/class.ilObjMediaObject.php";
1349 $mob = new ilObjMediaObject();
1350
1351 // file itself could be workspace item
1352 $parent_obj_ids = array($a_file->getId());
1353
1354 foreach($a_file->getUsages() as $item)
1355 {
1356 $parent_obj_id = $mob->getParentObjectIdForUsage($item);
1357 if($parent_obj_id &&
1358 !in_array($parent_obj_id, $parent_obj_ids))
1359 {
1360 $parent_obj_ids[]= $parent_obj_id;
1361 }
1362 }
1363
1364 include_once "Services/DiskQuota/classes/class.ilDiskQuotaHandler.php";
1366 $a_file->getId(),
1367 $a_file->getDiskUsage(),
1368 $parent_obj_ids);
1369 }
static handleUpdatedSourceObject($a_src_obj_type, $a_src_obj_id, $a_src_filesize, $a_owner_obj_ids=null, $a_is_prtf=false)
Find and update/create all related entries for source object.
getDiskUsage()
Gets the disk usage of the object in bytes.
Class ilObjMediaObject.

References getDiskUsage(), ilObject2\getId(), ilObject2\getType(), getUsages(), and ilDiskQuotaHandler\handleUpdatedSourceObject().

Referenced by _deleteAllUsages(), _saveUsage(), deleteVersions(), doDelete(), doUpdate(), and getUploadFile().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hasRating()

ilObjFile::hasRating ( )

Definition at line 1404 of file class.ilObjFile.php.

1405 {
1406 return $this->rating;
1407 }

References $rating.

Referenced by doCloneObject(), and doUpdate().

+ Here is the caller graph for this function:

◆ initFileStorage()

ilObjFile::initFileStorage ( )

init file storage object

@access public

Definition at line 1086 of file class.ilObjFile.php.

1087 {
1088 $this->file_storage = new ilFSStorageFile($this->getId());
1089 return true;
1090 }

References ilObject2\getId().

Referenced by __construct(), createProperties(), doRead(), and getDirectory().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initType()

ilObjFile::initType ( )

Init type.

Reimplemented from ilObject2.

Definition at line 52 of file class.ilObjFile.php.

53 {
54 $this->type = "file";
55 }

◆ isHidden()

ilObjFile::isHidden ( )

Returns true, if this file should be hidden in the repository view.

Definition at line 741 of file class.ilObjFile.php.

741 {
742 require_once 'Modules/File/classes/class.ilObjFileAccess.php';
744 }
static _isFileHidden($a_file_name)
Returns true, if a file with the specified name, is usually hidden from the user.

References ilObjFileAccess\_isFileHidden(), and ilObject2\getTitle().

Referenced by addNewsNotification().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isInline()

ilObjFile::isInline ( )

Returns true, if this file should be displayed inline in a browser window.

This is especially useful for PDF documents, HTML pages, and for images which are directly supported by the browser.

Definition at line 734 of file class.ilObjFile.php.

734 {
735 require_once 'Modules/File/classes/class.ilObjFileAccess.php';
737 }
static _isFileInline($a_file_name)
Returns true, if the specified file shall be displayed inline in the browser.

References ilObjFileAccess\_isFileInline(), and ilObject2\getTitle().

+ Here is the call graph for this function:

◆ parseInfoParams()

ilObjFile::parseInfoParams (   $entry)

Parses the info parameters ("info_params") of the specified history entry.

Parameters
array$entryThe history entry.
Returns
array Returns an array containing the "filename" and "version" contained within the "info_params".

Definition at line 1318 of file class.ilObjFile.php.

1319 {
1320 $data = preg_split("/(.*),(.*)/", $entry["info_params"], 0, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
1321
1322 // bugfix: first created file had no version number
1323 // this is a workaround for all files created before the bug was fixed
1324 if (empty($data[1]))
1325 $data[1] = "1";
1326
1327 $result = array("filename" => $data[0], "version" => $data[1], "rollback_version" => "", "rollback_user_id" => "");
1328
1329 // if rollback, the version contains the rollback version as well
1330 if ($entry["action"] == "rollback")
1331 {
1332 $tokens = explode("|", $result["version"]);
1333 if (count($tokens) > 1)
1334 {
1335 $result["version"] = $tokens[0];
1336 $result["rollback_version"] = $tokens[1];
1337
1338 if (count($tokens) > 2)
1339 $result["rollback_user_id"] = $tokens[2];
1340 }
1341 }
1342
1343 return $result;
1344 }
$result
echo;exit;}function LogoutNotification($SessionID) { global $ilDB; $q="SELECT session_id, data FROM usr_session WHERE expires > (\w+)\|/" PREG_SPLIT_NO_EMPTY PREG_SPLIT_DELIM_CAPTURE

References $data, $result, and PREG_SPLIT_DELIM_CAPTURE.

Referenced by determineFileSize(), getFile(), getSpecificVersion(), and getVersions().

+ Here is the caller graph for this function:

◆ raiseUploadError()

ilObjFile::raiseUploadError (   $a_raise = true)

Definition at line 232 of file class.ilObjFile.php.

233 {
234 $this->raise_upload_error = $a_raise;
235 }

◆ replaceFile()

ilObjFile::replaceFile (   $a_upload_file,
  $a_filename 
)

replace file with new file

Definition at line 273 of file class.ilObjFile.php.

274 {
275 $this->getUploadFile($a_upload_file, $a_filename, true);
276
277 require_once("./Services/History/classes/class.ilHistory.php");
279 $this->getId(),
280 "replace",
281 $a_filename.",".$this->getVersion()
282 );
283 $this->setFilename($a_filename);
284 $this->addNewsNotification("file_updated");
285
286 // create preview
287 $this->createPreview(true);
288 }

References ilHistory\_createEntry(), addNewsNotification(), createPreview(), ilObject2\getId(), and getUploadFile().

+ Here is the call graph for this function:

◆ rollback()

ilObjFile::rollback (   $version_id)

Makes the specified version the current one and returns theSummary of rollbackVersion.

Parameters
int$version_idThe id of the version to make the current one.
Returns
array The new actual version.

Definition at line 1231 of file class.ilObjFile.php.

1232 {
1233 global $ilDB, $ilUser;
1234
1235 $source = $this->getSpecificVersion($version_id);
1236 if ($source === false)
1237 {
1238 $this->ilErr->raiseError($this->lng->txt("obj_not_found"), $this->ilErr->MESSAGE);
1239 }
1240
1241 // get the new version number
1242 $new_version_nr = $this->getVersion() + 1;
1243
1244 // copy file
1245 $source_path = $this->getDirectory($source["version"]) . "/" . $source["filename"];
1246 $dest_dir = $this->getDirectory($new_version_nr);
1247 if (@!is_dir($dest_dir))
1248 ilUtil::makeDir($dest_dir);
1249
1250 copy($source_path, $dest_dir . "/" . $source["filename"]);
1251
1252 // create new history entry based on the old one
1253 include_once("./Services/History/classes/class.ilHistory.php");
1255 $this->getId(),
1256 "rollback",
1257 $source["filename"] . "," . $new_version_nr . "|" . $source["version"] . "|" . $ilUser->getId());
1258
1259 // get id of newest entry
1260 $new_version = $this->getSpecificVersion($ilDB->getLastInsertId());
1261
1262 // change user back to the original uploader
1263 ilHistory::_changeUserId($new_version["hist_entry_id"], $source["user_id"]);
1264
1265 // update this file with the new version
1266 $this->updateWithVersion($new_version);
1267
1268 $this->addNewsNotification("file_updated");
1269
1270 return $new_version;
1271 }
static _changeUserId($a_hist_entry_id, $new_user_id)
Changes the user id of the specified history entry.
getSpecificVersion($version_id)
Gets a specific file version.

References $ilDB, $ilUser, ilHistory\_changeUserId(), ilHistory\_createEntry(), addNewsNotification(), copy(), getDirectory(), ilObject2\getId(), getSpecificVersion(), getVersion(), ilUtil\makeDir(), and updateWithVersion().

+ Here is the call graph for this function:

◆ setFileName()

ilObjFile::setFileName (   $a_name)

set filename

Definition at line 485 of file class.ilObjFile.php.

486 {
487 $this->filename = $a_name;
488 }

Referenced by doRead(), getUploadFile(), and updateWithVersion().

+ Here is the caller graph for this function:

◆ setFileSize()

ilObjFile::setFileSize (   $a_size)

Definition at line 508 of file class.ilObjFile.php.

509 {
510 $this->filesize = $a_size;
511 }

Referenced by determineFileSize(), and doRead().

+ Here is the caller graph for this function:

◆ setFileType()

ilObjFile::setFileType (   $a_type)

Definition at line 495 of file class.ilObjFile.php.

496 {
497 global $ilLog;
498
499
500 $this->filetype = $a_type;
501 }

References $a_type, and $ilLog.

Referenced by doMDUpdateListener(), doRead(), and updateWithVersion().

+ Here is the caller graph for this function:

◆ setMode()

ilObjFile::setMode (   $a_mode)

mode is object or filelist

Parameters
string$a_modemode

Definition at line 569 of file class.ilObjFile.php.

570 {
571 $this->mode = $a_mode;
572 }

Referenced by doRead().

+ Here is the caller graph for this function:

◆ setNoMetaDataCreation()

ilObjFile::setNoMetaDataCreation (   $a_status)

Definition at line 131 of file class.ilObjFile.php.

132 {
133 $this->no_meta_data_creation = (bool)$a_status;
134 }

◆ setRating()

ilObjFile::setRating (   $a_value)

Definition at line 1399 of file class.ilObjFile.php.

1400 {
1401 $this->rating = (bool)$a_value;
1402 }

Referenced by doRead().

+ Here is the caller graph for this function:

◆ setVersion()

ilObjFile::setVersion (   $a_version)

Definition at line 554 of file class.ilObjFile.php.

555 {
556 $this->version = $a_version;
557 }

Referenced by deleteVersions(), doRead(), getUploadFile(), storeUnzipedFile(), and updateWithVersion().

+ Here is the caller graph for this function:

◆ storeUnzipedFile()

ilObjFile::storeUnzipedFile (   $a_upload_file,
  $a_filename 
)

storeUnzipedFile

Stores Files unzipped from uploaded archive in filesystem

Parameters
string$a_upload_file
string$a_filename

Definition at line 1100 of file class.ilObjFile.php.

1101 {
1102 if($this->version) {
1103 $this->setVersion($this->version + 1);
1104 }
1105
1106 if (@!is_dir($this->getDirectory($this->getVersion())))
1107 {
1108 ilUtil::makeDir($this->getDirectory($this->getVersion()));
1109 }
1110
1111 $file = $this->getDirectory($this->getVersion())."/".$a_filename;
1112 require_once('./Services/Utilities/classes/class.ilFileUtils.php');
1113 ilFileUtils::rename($a_upload_file, $file);
1114
1115 // create preview
1116 $this->createPreview();
1117 }
static rename($a_source, $a_target)
Rename a file.

References $file, createPreview(), getDirectory(), getVersion(), ilUtil\makeDir(), ilFileUtils\rename(), and setVersion().

+ Here is the call graph for this function:

◆ updateWithVersion()

ilObjFile::updateWithVersion (   $version)
protected

Updates the file object with the specified file version.

Parameters
array$versionThe version to update the file object with.

Definition at line 1278 of file class.ilObjFile.php.

1279 {
1280 // update title (checkFileExtension must be called before setFileName!)
1281 $this->setTitle($this->checkFileExtension($version["filename"], $this->getTitle()));
1282
1283 $this->setVersion($version["version"]);
1284 $this->setFileName($version["filename"]);
1285
1286 // evaluate mime type (reset file type before)
1287 $this->setFileType("");
1288 $this->setFileType($this->guessFileType($version["filename"]));
1289
1290 // set filesize
1291 $this->determineFileSize();
1292
1293 $this->update();
1294
1295 // refresh preview
1296 $this->createPreview(true);
1297 }
determineFileSize($a_hist_entry_id=null)
Determine File Size.
guessFileType($a_file="")
Guesses the file type based on the current values returned by getFileType() and getFileExtension().

References $version, checkFileExtension(), createPreview(), determineFileSize(), ilObject2\getTitle(), guessFileType(), setFileName(), setFileType(), ilObject2\setTitle(), setVersion(), and ilObject2\update().

Referenced by deleteVersions(), and rollback().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $file_storage

ilObjFile::$file_storage = null
private

Definition at line 25 of file class.ilObjFile.php.

Referenced by _lookupAbsolutePath().

◆ $filemaxsize

ilObjFile::$filemaxsize = "20000000"

Definition at line 20 of file class.ilObjFile.php.

◆ $filename

ilObjFile::$filename

Definition at line 18 of file class.ilObjFile.php.

Referenced by _lookupAbsolutePath(), getFileName(), and guessFileType().

◆ $filetype

ilObjFile::$filetype

Definition at line 19 of file class.ilObjFile.php.

Referenced by getFileType().

◆ $log

ilObjFile::$log = null
protected

Definition at line 26 of file class.ilObjFile.php.

◆ $mode

ilObjFile::$mode = "object"

Definition at line 22 of file class.ilObjFile.php.

Referenced by getMode().

◆ $raise_upload_error

ilObjFile::$raise_upload_error

Definition at line 21 of file class.ilObjFile.php.

◆ $rating

ilObjFile::$rating = false
protected

Definition at line 23 of file class.ilObjFile.php.

Referenced by hasRating().


The documentation for this class was generated from the following file: