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

Class ilObjMediaObject. More...

+ Inheritance diagram for ilObjMediaObject:
+ Collaboration diagram for ilObjMediaObject:

Public Member Functions

 __construct ($a_id=0)
 Constructor @access public. More...
 
 setRefId ($a_id)
 set reference id @access public More...
 
 getRefId ()
 get reference id @access public More...
 
 putInTree ($a_parent_ref)
 maybe this method should be in tree object!? More...
 
 createReference ()
 creates reference for object More...
 
 setTitle ($a_title)
 set object title More...
 
 getTitle ()
 get object title @access public More...
 
 delete ()
 delete media object More...
 
 getDescription ()
 get description of media object More...
 
 setDescription ($a_description)
 set description of media object 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...
 
 addMediaItem ($a_item)
 add media item to media object More...
 
getMediaItems ()
 get all media items More...
 
getMediaItem ($a_purpose)
 get item for media purpose More...
 
 removeMediaItem ($a_purpose)
 
 removeAllMediaItems ()
 remove all media items More...
 
 getMediaItemNr ($a_purpose)
 
 hasFullscreenItem ()
 
 hasPurposeItem ($purpose)
 returns wether object has media item with specific purpose More...
 
 read ()
 read media object data from db More...
 
 setId ($a_id)
 set id More...
 
 getId ()
 get object id @access public More...
 
 setAlias ($a_is_alias)
 set wether page object is an alias More...
 
 isAlias ()
 
 setOriginID ($a_id)
 
 getOriginID ()
 
 getImportId ()
 get import id More...
 
 setImportId ($a_id)
 set import id More...
 
 create ($a_create_meta_data=false, $a_save_media_items=true)
 create media object in db More...
 
 update ($a_upload=false)
 update media object in db More...
 
 createDirectory ()
 Create file directory of media object. More...
 
 getFilesOfDirectory ($a_subdir="")
 Get files of directory. More...
 
 getXML ($a_mode=IL_MODE_FULL, $a_inst=0)
 get MediaObject XLM Tag More...
 
 handleAmps ($a_str)
 Replace "&" (if not an "&") with "&". More...
 
 exportXML (&$a_xml_writer, $a_inst=0)
 export XML More...
 
 exportFiles ($a_target_dir)
 export all media files of object to target directory note: target directory must be the export target directory, "/objects/il_<inst>_mob_<mob_id>/..." will be appended to this directory More...
 
 exportMediaFullscreen ($a_target_dir, $pg_obj)
 
 modifyExportIdentifier ($a_tag, $a_param, $a_value)
 
 setContainsIntLink ($a_contains_link)
 content parser set this flag to true, if the media object contains internal links (this method should only be called by the import parser) More...
 
 containsIntLink ()
 returns true, if mob was marked as containing an intern link (via setContainsIntLink) (this method should only be called by the import parser) More...
 
 getUsages ($a_include_history=true)
 get all usages of current media object More...
 
 getDataDirectory ()
 
 uploadAdditionalFile ($a_name, $tmp_name, $a_subdir="", $a_mode="move_uploaded")
 Create new media object and update page in db and return new media object. More...
 
 uploadSrtFile ($a_tmp_name, $a_language, $a_mode="move_uploaded")
 Upload srt file. More...
 
 getSrtFiles ()
 Get srt files. More...
 
 makeThumbnail ($a_file, $a_thumbname, $a_format="png", $a_size="80")
 Make thumbnail. More...
 
 removeAdditionalFile ($a_file)
 Remove additional file. More...
 
 getLinkedMediaObjects ($a_ignore="")
 Get all media objects linked in map areas of this media object. More...
 
 duplicate ()
 Duplicate media object, return new media object. More...
 
 uploadVideoPreviewPic ($a_prevpic)
 Upload video preview picture. More...
 
 generatePreviewPic ($a_width, $a_height)
 Upload video preview picture. More...
 
 getVideoPreviewPic ($a_filename_only=false)
 Get video preview pic. More...
 
 getMultiSrtUploadDir ()
 Get directory for multi srt upload. More...
 
 uploadMultipleSubtitleFile ($a_file)
 Upload multi srt file. More...
 
 clearMultiSrtDirectory ()
 Clear multi feedback directory. More...
 
 getMultiSrtFiles ()
 Get all srt files of srt multi upload. 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 _exists ($a_id, $a_reference=false, $a_type=NULL)
 checks wether a lm content object with specified id exists or not More...
 
static _getDirectory ($a_mob_id)
 get directory for files of media object (static) More...
 
static _getURL ($a_mob_id)
 get directory for files of media object (static) More...
 
static _getThumbnailDirectory ($a_mob_id, $a_mode="filesystem")
 get directory for files of media object (static) More...
 
static _lookupStandardItemPath ($a_mob_id, $a_url_encode=false, $a_web=true)
 Get path for standard item. More...
 
static _lookupItemPath ($a_mob_id, $a_url_encode=false, $a_web=true, $a_purpose="")
 Get path for item with specific purpose. More...
 
static _createThumbnailDirectory ($a_obj_id)
 Create thumbnail directory. More...
 
static _deleteAllUsages ($a_type, $a_id, $a_usage_hist_nr=0, $a_lang="-")
 static More...
 
static _getMobsOfObject ($a_type, $a_id, $a_usage_hist_nr=0, $a_lang="-")
 get mobs of object More...
 
static _saveUsage ($a_mob_id, $a_type, $a_id, $a_usage_hist_nr=0, $a_lang="-")
 Save usage of mob within another container (e.g. More...
 
static _removeUsage ($a_mob_id, $a_type, $a_id, $a_usage_hist_nr=0, $a_lang="-")
 Remove usage of mob in another container. More...
 
static lookupUsages ($a_id, $a_include_history=true)
 Lookup usages of media object. More...
 
static getParentObjectIdForUsage ($a_usage, $a_include_all_access_obj_ids=false)
 Get's the repository object ID of a parent object, if possible. More...
 
static _resizeImage ($a_file, $a_width, $a_height, $a_constrain_prop=false)
 resize image and return new image file ("_width_height" string appended) More...
 
static getMimeType ($a_file, $a_external=false)
 get mime type for file More...
 
static _determineWidthHeight ($a_format, $a_type, $a_file, $a_reference, $a_constrain_proportions, $a_use_original, $a_user_width, $a_user_height)
 Determine width and height. More...
 
static _getSimpleMimeTypes ()
 Get simple mime types that deactivate parameter property files tab in ILIAS. More...
 
static _useAutoStartParameterOnly ($a_loc, $a_format)
 Check whether only autostart parameter should be supported (instead of parameters input field. More...
 
static _saveTempFileAsMediaObject ($name, $tmp_name, $upload=TRUE)
 Create new media object and update page in db and return new media object. More...
 
static getThumbnailPath ($a_mob_id, $a_thumbname)
 Get thumbnail path. More...
 
static getRestrictedFileTypes ()
 Get restricted file types (this is for the input form, this list will be empty, if "allowed list" is empty) More...
 
static getForbiddenFileTypes ()
 Get forbidden file types. More...
 
static getAllowedFileTypes ()
 Get allowed file types. More...
 
static isTypeAllowed ($a_type)
 Is type allowed. More...
 
static fixFilename ($a_name)
 Fix filename of uploaded file. More...
 
static renameExecutables ($a_dir)
 Rename executables. 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

 $is_alias
 
 $origin_id
 
 $id
 
 $media_items
 
 $contains_int_link
 
- 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

 escapeProperty ($a_value)
 Escape property (e.g. More...
 

Static Protected Member Functions

static handleQuotaUpdate (ilObjMediaObject $a_mob)
 

Detailed Description

Class ilObjMediaObject.

Todo: this class must be integrated with group/folder handling

ILIAS Media Object

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

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

Constructor & Destructor Documentation

◆ __construct()

ilObjMediaObject::__construct (   $a_id = 0)

Constructor @access public.

Definition at line 38 of file class.ilObjMediaObject.php.

39 {
40 $this->is_alias = false;
41 $this->media_items = array();
42 $this->contains_int_link = false;
43 $this->type = "mob";
44 parent::__construct($a_id, false);
45 }

Member Function Documentation

◆ _createThumbnailDirectory()

static ilObjMediaObject::_createThumbnailDirectory (   $a_obj_id)
static

Create thumbnail directory.

Definition at line 644 of file class.ilObjMediaObject.php.

645 {
647 ilUtil::createDirectory(ilUtil::getWebspaceDir()."/thumbs/mm_".$a_obj_id);
648 }
static getWebspaceDir($mode="filesystem")
get webspace directory
static createDirectory($a_dir, $a_mod=0755)
create directory

References ilUtil\createDirectory(), and ilUtil\getWebspaceDir().

Referenced by duplicate(), ilMediaItem\getThumbnailTarget(), ilMediaObjectDataSet\importRecord(), and makeThumbnail().

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

◆ _deleteAllUsages()

static ilObjMediaObject::_deleteAllUsages (   $a_type,
  $a_id,
  $a_usage_hist_nr = 0,
  $a_lang = "-" 
)
static

static

Definition at line 1032 of file class.ilObjMediaObject.php.

1033 {
1034 global $ilDB;
1035
1036 $and_hist = "";
1037 if ($a_usage_hist_nr !== false)
1038 {
1039 $and_hist = " AND usage_hist_nr = ".$ilDB->quote($a_usage_hist_nr, "integer");
1040 }
1041
1042 $mob_ids = array();
1043 $set = $ilDB->query("SELECT id FROM mob_usage".
1044 " WHERE usage_type = ".$ilDB->quote($a_type, "text").
1045 " AND usage_id = ".$ilDB->quote($a_id, "integer").
1046 " AND usage_lang = ".$ilDB->quote($a_lang, "text").
1047 $and_hist);
1048 while($row = $ilDB->fetchAssoc($set))
1049 {
1050 $mob_ids[] = $row["id"];
1051 }
1052
1053 $q = "DELETE FROM mob_usage WHERE usage_type = ".
1054 $ilDB->quote($a_type, "text").
1055 " AND usage_id= ".$ilDB->quote($a_id, "integer").
1056 " AND usage_lang = ".$ilDB->quote($a_lang, "text").
1057 $and_hist;
1058 $ilDB->manipulate($q);
1059
1060 foreach($mob_ids as $mob_id)
1061 {
1062 self::handleQuotaUpdate(new self($mob_id));
1063 }
1064 }
static handleQuotaUpdate(ilObjMediaObject $a_mob)
global $ilDB
$a_type
Definition: workflow.php:93

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

Referenced by ilPCMediaObject\beforePageDelete(), ilPageObject\delete(), and ilPCMediaObject\saveMobUsage().

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

◆ _determineWidthHeight()

static ilObjMediaObject::_determineWidthHeight (   $a_format,
  $a_type,
  $a_file,
  $a_reference,
  $a_constrain_proportions,
  $a_use_original,
  $a_user_width,
  $a_user_height 
)
static

Determine width and height.

Definition at line 1528 of file class.ilObjMediaObject.php.

1531 {
1532 global $lng;
1533
1534 // determine width and height of known image types
1535 $width = 640;
1536 $height = 360;
1537 $info = "";
1538
1539 if ($a_format == "audio/mpeg")
1540 {
1541 $width = 300;
1542 $height = 20;
1543 }
1544
1545 if (ilUtil::deducibleSize($a_format))
1546 {
1547 include_once("./Services/MediaObjects/classes/class.ilMediaImageUtil.php");
1548 if ($a_type == "File")
1549 {
1551 }
1552 else
1553 {
1554 $size = ilMediaImageUtil::getImageSize($a_reference);
1555 }
1556 }
1557
1558 if ($a_use_original)
1559 {
1560 if ($size[0] > 0 && $size[1] > 0)
1561 {
1562 //$width = $size[0];
1563 //$height = $size[1];
1564 $width = "";
1565 $height = "";
1566 }
1567 else
1568 {
1569 $info = $lng->txt("cont_could_not_determine_resource_size");
1570 }
1571 }
1572 else
1573 {
1574 $w = (int) $a_user_width;
1575 $h = (int) $a_user_height;
1576 $width = $w;
1577 $height = $h;
1578//echo "<br>C-$width-$height-";
1579 if (ilUtil::deducibleSize($a_format) && $a_constrain_proportions)
1580 {
1581 if ($size[0] > 0 && $size[1] > 0)
1582 {
1583 if ($w > 0)
1584 {
1585 $wr = $size[0] / $w;
1586 }
1587 if ($h > 0)
1588 {
1589 $hr = $size[1] / $h;
1590 }
1591//echo "<br>+".$wr."+".$size[0]."+".$w."+";
1592//echo "<br>+".$hr."+".$size[1]."+".$h."+";
1593 $r = max($wr, $hr);
1594 if ($r > 0)
1595 {
1596 $width = (int) ($size[0]/$r);
1597 $height = (int) ($size[1]/$r);
1598 }
1599 }
1600 }
1601//echo "<br>D-$width-$height-";
1602 }
1603//echo "<br>E-$width-$height-";
1604
1605 if ($width == 0 && $a_user_width === "")
1606 {
1607 $width = "";
1608 }
1609 if ($height == 0 && $a_user_height === "")
1610 {
1611 $height = "";
1612 }
1613
1614 return array("width" => $width, "height" => $height, "info" => $info);
1615 }
$size
Definition: RandomTest.php:79
static getImageSize($a_location)
Get image size from location.
static deducibleSize($a_mime)
checks if mime type is provided by getimagesize()
$h
$w
$r
Definition: example_031.php:79
$info
Definition: example_052.php:80

References $a_type, $h, $info, ilObject\$lng, $r, $size, $w, ilUtil\deducibleSize(), and ilMediaImageUtil\getImageSize().

Referenced by ilObjMediaPoolGUI\createMediaFromUploadDir(), ilDclMobRecordFieldModel\parseValue(), ilObjMediaObjectGUI\savePropertiesObject(), and ilObjMediaObjectGUI\setObjectPerCreationForm().

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

◆ _exists()

static ilObjMediaObject::_exists (   $a_id,
  $a_reference = false,
  $a_type = NULL 
)
static

checks wether a lm content object with specified id exists or not

Parameters
int$idid
Returns
boolean true, if lm content object exists

Reimplemented from ilObject.

Definition at line 84 of file class.ilObjMediaObject.php.

85 {
86 global $ilDB;
87
88 include_once("./Services/Link/classes/class.ilInternalLink.php");
89 if (is_int(strpos($a_id, "_")))
90 {
92 }
93
94 return parent::_exists($a_id, false);
95 }

References $ilDB, and ilInternalLink\_extractObjIdOfTarget().

Referenced by ilInternalLink\_exists(), ilRTE\_getMediaObjects(), ilObjTest\addQTIMaterial(), assQuestion\addQTIMaterial(), assQuestion\delete(), ilForumDraftsHistory\deleteMobs(), ilForumPostDraft\deleteMobsOfDraft(), ilObjForumGUI\deleteMobsOfDraft(), ilForum\deletePost(), ilObjTest\deleteTest(), ilTestExport\exportXHTMLMediaObjects(), ilQuestionpoolExport\exportXHTMLMediaObjects(), ilObjTest\exportXMLMediaObjects(), ilObjQuestionPool\exportXMLMediaObjects(), ilForumXMLWriter\start(), and ilExSubmissionTextGUI\updateAssignmentTextObject().

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

◆ _getDirectory()

static ilObjMediaObject::_getDirectory (   $a_mob_id)
static

get directory for files of media object (static)

Parameters
int$a_mob_idmedia object id

Definition at line 571 of file class.ilObjMediaObject.php.

572 {
573 return ilUtil::getWebspaceDir()."/mobs/mm_".$a_mob_id;
574 }

References ilUtil\getWebspaceDir().

Referenced by ilObjMediaObjectGUI\_getMediaInfoHTML(), ilObjMediaCastAccess\_lookupDiskUsage(), _saveTempFileAsMediaObject(), ilObjMediaCastGUI\convertFileObject(), ilPCInteractiveImageGUI\create(), createDirectory(), ilObjMediaPoolGUI\createMediaFromUploadDir(), ilSCORM13Package\dbImportSco(), delete(), ilNewsItem\deliverMobFile(), ilObjMediaCastGUI\determinePlaytimeObject(), duplicate(), ilObjMediaObjectGUI\executeCommand(), ilObjMediaCastGUI\extractPreviewImageObject(), ilPDNewsTableGUI\fillRow(), generatePreviewPic(), ilMediaItem\getDirectory(), getFilesOfDirectory(), ilBlogPostingGUI\getFirstMediaObjectAsTag(), ilObjMediaObjectGUI\getFullscreenSizeObject(), ilDclMobRecordRepresentation\getHTML(), getMultiSrtUploadDir(), ilMediaItem\getOriginalSize(), ilPortfolioTemplatePage\getPageDiskSize(), getSrtFiles(), ilObjMediaObjectGUI\getStandardSizeObject(), getVideoPreviewPic(), ilMediaObjectDataSet\getXmlRecord(), ilMediaObjectDataSet\importRecord(), makeThumbnail(), ilPCMediaObject\modifyPageContentPostXsl(), ilDclMobRecordFieldModel\parseValue(), removeAdditionalFile(), ilObjMediaObjectGUI\resizeImagesObject(), ilObjMediaObjectGUI\savePropertiesObject(), ilObjMediaObjectGUI\setObjectPerCreationForm(), ilPCInteractiveImageGUI\update(), ilObjMediaCastGUI\updateMediaItem(), and uploadAdditionalFile().

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

◆ _getMobsOfObject()

static ilObjMediaObject::_getMobsOfObject (   $a_type,
  $a_id,
  $a_usage_hist_nr = 0,
  $a_lang = "-" 
)
static

get mobs of object

Definition at line 1069 of file class.ilObjMediaObject.php.

1070 {
1071 global $ilDB;
1072
1073 $lstr = "";
1074 if ($a_lang != "")
1075 {
1076 $lstr = " AND usage_lang = ".$ilDB->quote($a_lang, "text");
1077 }
1078 $hist_str = "";
1079 if ($a_usage_hist_nr !== false)
1080 {
1081 $hist_str = " AND usage_hist_nr = ".$ilDB->quote($a_usage_hist_nr, "integer");
1082 }
1083
1084 $q = "SELECT * FROM mob_usage WHERE ".
1085 "usage_type = ".$ilDB->quote($a_type, "text")." AND ".
1086 "usage_id = ".$ilDB->quote($a_id, "integer").
1087 $lstr.$hist_str;
1088 $mobs = array();
1089 $mob_set = $ilDB->query($q);
1090 while($mob_rec = $ilDB->fetchAssoc($mob_set))
1091 {
1092 if (ilObject::_lookupType($mob_rec["id"]) == "mob")
1093 {
1094 $mobs[$mob_rec["id"]] = $mob_rec["id"];
1095 }
1096 }
1097
1098 return $mobs;
1099 }
static _lookupType($a_id, $a_reference=false)
lookup object type
$mobs

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

Referenced by ilRTE\_cleanupMediaObjectUsage(), SurveyQuestion\addMaterialTag(), ilObjSurvey\addMaterialTag(), ilForumDraftsHistory\addMobsToDraftsHistory(), ilObjTest\addQTIMaterial(), assQuestion\addQTIMaterial(), ilPCMediaObject\afterPageUpdate(), ilObjForumGUI\autosaveDraftAsyncObject(), ilObjForumGUI\autosaveThreadDraftAsyncObject(), ilPCMediaObject\beforePageDelete(), ilCOPageHTMLExport\collectPageElements(), SurveyQuestion\copyXHTMLMediaObjectsOfQuestion(), assQuestion\copyXHTMLMediaObjectsOfQuestion(), SurveyQuestion\delete(), assQuestion\delete(), ilPageObject\delete(), ilForumDraftsHistory\deleteMobs(), ilForumPostDraft\deleteMobsOfDraft(), ilObjForumGUI\deleteMobsOfDraft(), ilForum\deletePost(), ilObjSurvey\deleteSurveyRecord(), ilObjTest\deleteTest(), ilObjGlossary\exportHTMLGlossaryTerms(), ilObjContentObject\exportHTMLGlossaryTerms(), ilObjContentObject\exportHTMLPages(), ilSurveyExport\exportXHTMLMediaObjects(), ilTestExport\exportXHTMLMediaObjects(), ilQuestionpoolExport\exportXHTMLMediaObjects(), ilPageObject\getLastUpdateOfIncludedElements(), ilSoapUtils\getMobsOfObject(), ilLMMultiSrt\getMultiSrtFiles(), ilCOPageExporter\getXmlExportHeadDependencies(), ilPCMediaObject\modifyPageContentPostXsl(), ilForumUtil\moveMediaObjects(), ilObjForumGUI\publishDraftObject(), ilPageObject\resolveMediaAliases(), ilForumXMLWriter\start(), assQuestion\syncXHTMLMediaObjectsOfQuestion(), assClozeTest\toJSON(), assErrorText\toJSON(), assImagemapQuestion\toJSON(), assKprimChoice\toJSON(), assLongMenu\toJSON(), assMatchingQuestion\toJSON(), assMultipleChoice\toJSON(), assOrderingHorizontal\toJSON(), assOrderingQuestion\toJSON(), assSingleChoice\toJSON(), and assTextSubset\toJSON().

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

◆ _getSimpleMimeTypes()

static ilObjMediaObject::_getSimpleMimeTypes ( )
static

Get simple mime types that deactivate parameter property files tab in ILIAS.

Definition at line 1621 of file class.ilObjMediaObject.php.

1622 {
1623 return array("image/x-ms-bmp", "image/gif", "image/jpeg", "image/x-portable-bitmap",
1624 "image/png", "image/psd", "image/tiff", "application/pdf");
1625 }

Referenced by ilObjMediaObjectGUI\getTabs(), ilPCMediaObjectGUI\initAliasForm(), ilObjMediaObjectGUI\initForm(), and ilObjMediaObjectGUI\savePropertiesObject().

+ Here is the caller graph for this function:

◆ _getThumbnailDirectory()

static ilObjMediaObject::_getThumbnailDirectory (   $a_mob_id,
  $a_mode = "filesystem" 
)
static

get directory for files of media object (static)

Parameters
int$a_mob_idmedia object id

Definition at line 591 of file class.ilObjMediaObject.php.

592 {
593 return ilUtil::getWebspaceDir($a_mode)."/thumbs/mm_".$a_mob_id;
594 }

References ilUtil\getWebspaceDir().

Referenced by delete(), duplicate(), ilMediaItem\getThumbnailDirectory(), getThumbnailPath(), and makeThumbnail().

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

◆ _getURL()

static ilObjMediaObject::_getURL (   $a_mob_id)
static

get directory for files of media object (static)

Parameters
int$a_mob_idmedia object id
Returns
string

Definition at line 581 of file class.ilObjMediaObject.php.

582 {
583 return ilUtil::getHtmlPath(ilUtil::getWebspaceDir()."/mobs/mm_".$a_mob_id);
584 }
static getHtmlPath($relative_path)
get url of path

References ilUtil\getHtmlPath(), and ilUtil\getWebspaceDir().

Referenced by ilMediaCastTableGUI\fillRow(), ilDclMobRecordRepresentation\getHTML(), ilNewsTimelineItemGUI\render(), ilObjMediaCastGUI\showGallery(), and ilNewsForContextBlockGUI\showNews().

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

◆ _lookupItemPath()

static ilObjMediaObject::_lookupItemPath (   $a_mob_id,
  $a_url_encode = false,
  $a_web = true,
  $a_purpose = "" 
)
static

Get path for item with specific purpose.

Parameters
int$a_mob_idmedia object id

Definition at line 612 of file class.ilObjMediaObject.php.

614 {
615 if ($a_purpose == "")
616 {
617 $a_purpose = "Standard";
618 }
619 $location = ilMediaItem::_lookupLocationForMobId($a_mob_id, $a_purpose);
620 if (preg_match("/https?\:/i",$location))
621 return $location;
622
623 if ($a_url_encode)
624 $location = rawurlencode($location);
625
626 $path = ($a_web)
627 ? ILIAS_HTTP_PATH
628 : ".";
629
630 return $path."/data/".CLIENT_ID."/mobs/mm_".$a_mob_id."/".$location;
631 }
$path
Definition: aliased.php:25
$location
Definition: buildRTE.php:44
static _lookupLocationForMobId($a_mob_id, $a_purpose)
Lookup location for mob id.

References $location, $path, and ilMediaItem\_lookupLocationForMobId().

Referenced by ilObjectFeedWriter\__construct(), _lookupStandardItemPath(), and ilMediaCastTableGUI\fillRow().

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

◆ _lookupStandardItemPath()

static ilObjMediaObject::_lookupStandardItemPath (   $a_mob_id,
  $a_url_encode = false,
  $a_web = true 
)
static

Get path for standard item.

Parameters
int$a_mob_idmedia object id

Definition at line 601 of file class.ilObjMediaObject.php.

603 {
604 return ilObjMediaObject::_lookupItemPath($a_mob_id, $a_url_encode, $a_web, "Standard");
605 }
static _lookupItemPath($a_mob_id, $a_url_encode=false, $a_web=true, $a_purpose="")
Get path for item with specific purpose.

References _lookupItemPath().

Referenced by ilSCORM2004ScoGUI\getExportResources().

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

◆ _removeUsage()

static ilObjMediaObject::_removeUsage (   $a_mob_id,
  $a_type,
  $a_id,
  $a_usage_hist_nr = 0,
  $a_lang = "-" 
)
static

Remove usage of mob in another container.

Definition at line 1125 of file class.ilObjMediaObject.php.

1126 {
1127 global $ilDB;
1128
1129 $q = "DELETE FROM mob_usage WHERE ".
1130 " id = ".$ilDB->quote((int) $a_mob_id, "integer")." AND ".
1131 " usage_type = ".$ilDB->quote($a_type, "text")." AND ".
1132 " usage_id = ".$ilDB->quote((int) $a_id, "integer")." AND ".
1133 " usage_lang = ".$ilDB->quote($a_lang, "text")." AND ".
1134 " usage_hist_nr = ".$ilDB->quote((int) $a_usage_hist_nr, "integer");
1135 $ilDB->manipulate($q);
1136
1137 self::handleQuotaUpdate(new self($a_mob_id));
1138 }

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

Referenced by ilRTE\_cleanupMediaObjectUsage(), ilForumDraftsHistory\addMobsToDraftsHistory(), ilObjForumGUI\autosaveDraftAsyncObject(), ilObjForumGUI\autosaveThreadDraftAsyncObject(), SurveyQuestion\delete(), assQuestion\delete(), ilForumDraftsHistory\deleteMobs(), ilForumPostDraft\deleteMobsOfDraft(), ilObjForumGUI\deleteMobsOfDraft(), ilForum\deletePost(), ilObjSurvey\deleteSurveyRecord(), ilObjTest\deleteTest(), ilForumUtil\moveMediaObjects(), ilObjForumGUI\publishDraftObject(), and ilExSubmissionTextGUI\updateAssignmentTextObject().

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

◆ _resizeImage()

static ilObjMediaObject::_resizeImage (   $a_file,
  $a_width,
  $a_height,
  $a_constrain_prop = false 
)
static

resize image and return new image file ("_width_height" string appended)

Parameters
string$a_filefull file name
int$a_widthwidth
int$a_heightheight

Definition at line 1496 of file class.ilObjMediaObject.php.

1497 {
1498 $file_path = pathinfo($a_file);
1499 $location = substr($file_path["basename"],0,strlen($file_path["basename"]) -
1500 strlen($file_path["extension"]) - 1)."_".
1501 $a_width."_".
1502 $a_height.".".$file_path["extension"];
1503 $target_file = $file_path["dirname"]."/".
1504 $location;
1505 ilUtil::resizeImage($a_file, $target_file,
1506 (int) $a_width, (int) $a_height, $a_constrain_prop);
1507
1508 return $location;
1509 }
static resizeImage($a_from, $a_to, $a_width, $a_height, $a_constrain_prop=false)
resize image

References $location, and ilUtil\resizeImage().

Referenced by ilDclMobRecordFieldModel\parseValue(), ilObjMediaObjectGUI\resizeImagesObject(), ilObjMediaObjectGUI\savePropertiesObject(), and ilObjMediaObjectGUI\setObjectPerCreationForm().

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

◆ _saveTempFileAsMediaObject()

static ilObjMediaObject::_saveTempFileAsMediaObject (   $name,
  $tmp_name,
  $upload = TRUE 
)
static

Create new media object and update page in db and return new media object.

Definition at line 1659 of file class.ilObjMediaObject.php.

1660 {
1661 // create dummy object in db (we need an id)
1662 $media_object = new ilObjMediaObject();
1663 $media_object->setTitle($name);
1664 $media_object->setDescription("");
1665 $media_object->create();
1666
1667 // determine and create mob directory, move uploaded file to directory
1668 $media_object->createDirectory();
1669 $mob_dir = ilObjMediaObject::_getDirectory($media_object->getId());
1670
1671 $media_item = new ilMediaItem();
1672 $media_object->addMediaItem($media_item);
1673 $media_item->setPurpose("Standard");
1674
1675 $file = $mob_dir."/".$name;
1676 if ($upload)
1677 {
1678 ilUtil::moveUploadedFile($tmp_name,$name, $file);
1679 }
1680 else
1681 {
1682 copy($tmp_name, $file);
1683 }
1684 // get mime type
1686 $location = $name;
1687 // set real meta and object data
1688 $media_item->setFormat($format);
1689 $media_item->setLocation($location);
1690 $media_item->setLocationType("LocalFile");
1691 $media_object->setTitle($name);
1692 $media_object->setDescription($format);
1693
1694 if (ilUtil::deducibleSize($format))
1695 {
1696 include_once("./Services/MediaObjects/classes/class.ilMediaImageUtil.php");
1698 $media_item->setWidth($size[0]);
1699 $media_item->setHeight($size[1]);
1700 }
1701 $media_item->setHAlign("Left");
1702
1703 self::renameExecutables($mob_dir);
1704 include_once("./Services/MediaObjects/classes/class.ilMediaSvgSanitizer.php");
1705 ilMediaSvgSanitizer::sanitizeDir($mob_dir); // see #20339
1706
1707 $media_object->update();
1708
1709 return $media_object;
1710 }
Class ilMediaItem.
static sanitizeDir($a_path)
Sanitize directory recursively.
Class ilObjMediaObject.
static getMimeType($a_file, $a_external=false)
get mime type for file
static _getDirectory($a_mob_id)
get directory for files of media object (static)
static renameExecutables($a_dir)
Rename executables.
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file

References $file, $location, $size, _getDirectory(), ilUtil\deducibleSize(), ilMediaImageUtil\getImageSize(), getMimeType(), ilUtil\moveUploadedFile(), renameExecutables(), and ilMediaSvgSanitizer\sanitizeDir().

Referenced by assClozeTestImport\fromXML(), assErrorTextImport\fromXML(), assFileUploadImport\fromXML(), assFlashQuestionImport\fromXML(), assFormulaQuestionImport\fromXML(), assImagemapQuestionImport\fromXML(), assJavaAppletImport\fromXML(), assKprimChoiceImport\fromXML(), assMatchingQuestionImport\fromXML(), assMultipleChoiceImport\fromXML(), assNumericImport\fromXML(), assOrderingHorizontalImport\fromXML(), assOrderingQuestionImport\fromXML(), assSingleChoiceImport\fromXML(), assTextQuestionImport\fromXML(), assTextSubsetImport\fromXML(), ilObjTest\fromXML(), ilForumXMLParser\handlerEndTag(), ilObjSurvey\importObject(), ilSurveyImporter\importXmlRepresentation(), and ilSoapUtils\saveTempFileAsMediaObject().

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

◆ _saveUsage()

static ilObjMediaObject::_saveUsage (   $a_mob_id,
  $a_type,
  $a_id,
  $a_usage_hist_nr = 0,
  $a_lang = "-" 
)
static

Save usage of mob within another container (e.g.

page)

Definition at line 1104 of file class.ilObjMediaObject.php.

1105 {
1106 global $ilDB;
1107
1108 $ilDB->replace("mob_usage",
1109 array(
1110 "id" => array("integer", (int) $a_mob_id),
1111 "usage_type" => array("text", $a_type),
1112 "usage_id" => array("integer", $a_id),
1113 "usage_lang" => array("text", $a_lang),
1114 "usage_hist_nr" => array("integer", (int) $a_usage_hist_nr)
1115 ),
1116 array()
1117 );
1118
1119 self::handleQuotaUpdate(new self($a_mob_id));
1120 }

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

Referenced by ilRTE\_cleanupMediaObjectUsage(), ilForumDraftsHistory\addMobsToDraftsHistory(), ilObjForumGUI\autosaveDraftAsyncObject(), ilObjForumGUI\autosaveThreadDraftAsyncObject(), SurveyQuestion\copyXHTMLMediaObjectsOfQuestion(), assQuestion\copyXHTMLMediaObjectsOfQuestion(), assErrorTextImport\fromXML(), assFileUploadImport\fromXML(), assFlashQuestionImport\fromXML(), assFormulaQuestionImport\fromXML(), assImagemapQuestionImport\fromXML(), assJavaAppletImport\fromXML(), assKprimChoiceImport\fromXML(), assMatchingQuestionImport\fromXML(), assMultipleChoiceImport\fromXML(), assNumericImport\fromXML(), assOrderingHorizontalImport\fromXML(), assOrderingQuestionImport\fromXML(), assSingleChoiceImport\fromXML(), assTextQuestionImport\fromXML(), assTextSubsetImport\fromXML(), ilObjTest\fromXML(), ilForumXMLParser\handlerEndTag(), ilObjSurvey\importObject(), ilSurveyImporter\importXmlRepresentation(), ilForumUtil\moveMediaObjects(), ilDclMobRecordFieldModel\parseValue(), ilObjForumGUI\publishDraftObject(), ilForumUtil\saveMediaObjects(), ilPCMediaObject\saveMobUsage(), assQuestion\syncXHTMLMediaObjectsOfQuestion(), and ilExSubmissionTextGUI\updateAssignmentTextObject().

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

◆ _useAutoStartParameterOnly()

static ilObjMediaObject::_useAutoStartParameterOnly (   $a_loc,
  $a_format 
)
static

Check whether only autostart parameter should be supported (instead of parameters input field.

This should be the same behaviour as mp3/flv in page.xsl

Definition at line 1638 of file class.ilObjMediaObject.php.

1639 {
1640 $lpath = pathinfo($a_loc);
1641 if ($lpath["extension"] == "mp3" && $a_format == "audio/mpeg")
1642 {
1643 return true;
1644 }
1645 if ($lpath["extension"] == "flv")
1646 {
1647 return true;
1648 }
1649 if (in_array($a_format, array("video/mp4", "video/webm")))
1650 {
1651 return true;
1652 }
1653 return false;
1654 }

Referenced by ilPCMediaObjectGUI\getAliasValues(), ilObjMediaObjectGUI\getValues(), ilPCMediaObjectGUI\initAliasForm(), ilObjMediaObjectGUI\initForm(), ilPCMediaObjectGUI\saveAliasProperties(), and ilObjMediaObjectGUI\savePropertiesObject().

+ Here is the caller graph for this function:

◆ addMediaItem()

ilObjMediaObject::addMediaItem (   $a_item)

add media item to media object

Parameters
object$a_itemmedia item object

Definition at line 275 of file class.ilObjMediaObject.php.

276 {
277 $this->media_items[] = $a_item;
278 }

◆ clearMultiSrtDirectory()

ilObjMediaObject::clearMultiSrtDirectory ( )

Clear multi feedback directory.

Definition at line 2094 of file class.ilObjMediaObject.php.

2095 {
2097 }
getMultiSrtUploadDir()
Get directory for multi srt upload.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively

References ilUtil\delDir(), and getMultiSrtUploadDir().

+ Here is the call graph for this function:

◆ containsIntLink()

ilObjMediaObject::containsIntLink ( )

returns true, if mob was marked as containing an intern link (via setContainsIntLink) (this method should only be called by the import parser)

Definition at line 1024 of file class.ilObjMediaObject.php.

1025 {
1027 }

References $contains_int_link.

◆ create()

ilObjMediaObject::create (   $a_create_meta_data = false,
  $a_save_media_items = true 
)

create media object in db

Definition at line 453 of file class.ilObjMediaObject.php.

454 {
455 parent::create();
456
457 if (!$a_create_meta_data)
458 {
459 $this->createMetaData();
460 }
461
462 if ($a_save_media_items)
463 {
464 $media_items = $this->getMediaItems();
465 for($i=0; $i<count($media_items); $i++)
466 {
467 $item = $media_items[$i];
468 $item->setMobId($this->getId());
469 $item->setNr($i+1);
470 $item->create();
471 }
472 }
473
475
476 global $ilAppEventHandler;
477 $ilAppEventHandler->raise('Services/MediaObjects',
478 'create',
479 array('object' => $this,
480 'obj_type' => 'mob',
481 'obj_id' => $this->getId())
482 );
483 }
getId()
get object id @access public
& getMediaItems()
get all media items
createMetaData()
create meta data entry

References $media_items, createMetaData(), getId(), getMediaItems(), and handleQuotaUpdate().

+ Here is the call graph for this function:

◆ createDirectory()

ilObjMediaObject::createDirectory ( )

Create file directory of media object.

Definition at line 636 of file class.ilObjMediaObject.php.

References _getDirectory(), ilUtil\createDirectory(), and getId().

+ Here is the call graph for this function:

◆ createMetaData()

ilObjMediaObject::createMetaData ( )

create meta data entry

Reimplemented from ilObject.

Definition at line 215 of file class.ilObjMediaObject.php.

216 {
217 include_once 'Services/MetaData/classes/class.ilMDCreator.php';
218
219 global $ilUser;
220
221 $md_creator = new ilMDCreator(0, $this->getId(), $this->getType());
222 $md_creator->setTitle($this->getTitle());
223 $md_creator->setTitleLanguage($ilUser->getPref('language'));
224 $md_creator->setDescription($this->getDescription());
225 $md_creator->setDescriptionLanguage($ilUser->getPref('language'));
226 $md_creator->setKeywordLanguage($ilUser->getPref('language'));
227 $md_creator->setLanguage($ilUser->getPref('language'));
228 $md_creator->create();
229
230 return true;
231 }
getTitle()
get object title @access public
getDescription()
get description of media object
getType()
get object type @access public
$ilUser
Definition: imgupload.php:18

References $ilUser, getDescription(), getId(), getTitle(), and ilObject\getType().

Referenced by create().

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

◆ createReference()

ilObjMediaObject::createReference ( )

creates reference for object

@access public

Returns
integer reference_id of object

Reimplemented from ilObject.

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

63 {
64 $this->ilias->raiseError("Operation ilObjMedia::createReference() not allowed.",$this->ilias->error_obj->FATAL);
65 }
redirection script todo: (a better solution should control the processing via a xml file)

◆ delete()

ilObjMediaObject::delete ( )

delete media object

Reimplemented from ilObject.

Definition at line 100 of file class.ilObjMediaObject.php.

101 {
102 $mob_logger = ilLoggerFactory::getLogger('mob');
103 $mob_logger->debug("ilObjMediaObject: Delete called for media object ID '".$this->getId()."'.");
104
105 if (!($this->getId() > 0))
106 {
107 return;
108 }
109
110 $usages = $this->getUsages();
111
112 $mob_logger->debug("ilObjMediaObject: ... Found ".count($usages)." usages.");
113
114 if (count($usages) == 0)
115 {
116 // remove directory
118
119 // remove thumbnail directory
121
122 // delete meta data of mob
123 $this->deleteMetaData();
124
125 // delete media items
127
128 // this is just to make sure, there should be no entries left at
129 // this point as they depend on the usage
131
132 // delete object
133 parent::delete();
134
135 $mob_logger->debug("ilObjMediaObject: ... deleted.");
136 }
137 else
138 {
139 foreach ($usages as $u)
140 {
141 $mob_logger->debug("ilObjMediaObject: ... usage type:".$u["type"].
142 ", id:".$u["id"].
143 ", lang:".$u["lang"].
144 ", hist_nr:".$u["hist_nr"].".");
145 }
146 $mob_logger->debug("ilObjMediaObject: ... not deleted.");
147 }
148 }
static getLogger($a_component_id)
Get component logger.
static deleteAllItemsOfMob($a_mob_id)
Delete all items of a mob.
static _getThumbnailDirectory($a_mob_id, $a_mode="filesystem")
get directory for files of media object (static)
deleteMetaData()
delete meta data entry
getUsages($a_include_history=true)
get all usages of current media object

References _getDirectory(), _getThumbnailDirectory(), ilUtil\delDir(), ilMediaItem\deleteAllItemsOfMob(), deleteMetaData(), getId(), ilLoggerFactory\getLogger(), getUsages(), and handleQuotaUpdate().

+ Here is the call graph for this function:

◆ deleteMetaData()

ilObjMediaObject::deleteMetaData ( )

delete meta data entry

Reimplemented from ilObject.

Definition at line 261 of file class.ilObjMediaObject.php.

262 {
263 // Delete meta data
264 include_once('Services/MetaData/classes/class.ilMD.php');
265 $md = new ilMD(0, $this->getId(), $this->getType());
266 $md->deleteAll();
267 }

References getId(), and ilObject\getType().

Referenced by delete().

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

◆ duplicate()

ilObjMediaObject::duplicate ( )

Duplicate media object, return new media object.

Definition at line 1928 of file class.ilObjMediaObject.php.

1929 {
1930 $new_obj = new ilObjMediaObject();
1931 $new_obj->setTitle($this->getTitle());
1932 $new_obj->setDescription($this->getDescription());
1933
1934 // media items
1935 foreach($this->getMediaItems() as $key => $val)
1936 {
1937 $new_obj->addMediaItem($val);
1938 }
1939
1940 $new_obj->create(false, true);
1941
1942 // files
1943 $new_obj->createDirectory();
1944 self::_createThumbnailDirectory($new_obj->getId());
1946 ilObjMediaObject::_getDirectory($new_obj->getId()));
1948 ilObjMediaObject::_getThumbnailDirectory($new_obj->getId()));
1949
1950 // meta data
1951 include_once("Services/MetaData/classes/class.ilMD.php");
1952 $md = new ilMD(0, $this->getId(), "mob");
1953 $new_md = $md->cloneMD(0, $new_obj->getId(), "mob");
1954
1955 return $new_obj;
1956 }
static _createThumbnailDirectory($a_obj_id)
Create thumbnail directory.
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.

References _createThumbnailDirectory(), _getDirectory(), _getThumbnailDirectory(), getDescription(), getId(), getMediaItems(), getTitle(), and ilUtil\rCopy().

+ Here is the call graph for this function:

◆ escapeProperty()

ilObjMediaObject::escapeProperty (   $a_value)
protected

Escape property (e.g.

title, caption) to XSLT -> HTML output

Parameters
string$a_value
Returns
string

Definition at line 894 of file class.ilObjMediaObject.php.

895 {
896 return htmlspecialchars($a_value);
897 }

Referenced by getXML().

+ Here is the caller graph for this function:

◆ exportFiles()

ilObjMediaObject::exportFiles (   $a_target_dir)

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

Parameters
string$a_target_dirtarget directory

Definition at line 926 of file class.ilObjMediaObject.php.

927 {
928 $subdir = "il_".IL_INST_ID."_mob_".$this->getId();
929 ilUtil::makeDir($a_target_dir."/objects/".$subdir);
930
931 $mobdir = ilUtil::getWebspaceDir()."/mobs/mm_".$this->getId();
932 ilUtil::rCopy($mobdir, $a_target_dir."/objects/".$subdir);
933//echo "from:$mobdir:to:".$a_target_dir."/objects/".$subdir.":<br>";
934 }
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...

References getId(), ilUtil\getWebspaceDir(), ilUtil\makeDir(), and ilUtil\rCopy().

+ Here is the call graph for this function:

◆ exportMediaFullscreen()

ilObjMediaObject::exportMediaFullscreen (   $a_target_dir,
  $pg_obj 
)

Definition at line 936 of file class.ilObjMediaObject.php.

937 {
938 $subdir = "il_".IL_INST_ID."_mob_".$this->getId();
939 $a_target_dir = $a_target_dir."/objects/".$subdir;
940 ilUtil::makeDir($a_target_dir);
941 $tpl = new ilTemplate("tpl.fullscreen.html", true, true, "Modules/LearningModule");
942 $tpl->setCurrentBlock("ilMedia");
943
944 //$int_links = $page_object->getInternalLinks();
945 $med_links = ilMediaItem::_getMapAreasIntLinks($this->getId());
946
947 // @todo
948 //$link_xml = $this->getLinkXML($med_links, $this->getLayoutLinkTargets());
949
950 require_once("./Services/MediaObjects/classes/class.ilObjMediaObject.php");
951 //$media_obj = new ilObjMediaObject($_GET["mob_id"]);
952 require_once("./Services/COPage/classes/class.ilPageObject.php");
953
954 $xml = "<dummy>";
955 // todo: we get always the first alias now (problem if mob is used multiple
956 // times in page)
957 $xml.= $pg_obj->getMediaAliasElement($this->getId());
958 $xml.= $this->getXML(IL_MODE_OUTPUT);
959 //$xml.= $link_xml;
960 $xml.="</dummy>";
961
962 //die(htmlspecialchars($xml));
963
964 $xsl = file_get_contents("./Services/COPage/xsl/page.xsl");
965 $args = array( '/_xml' => $xml, '/_xsl' => $xsl );
966 $xh = xslt_create();
967
968 //echo "<b>XML:</b>".htmlentities($xml);
969 // determine target frames for internal links
970 $wb_path = "";
971 $enlarge_path = "";
972 $params = array ('mode' => "fullscreen", 'enlarge_path' => $enlarge_path,
973 'link_params' => "ref_id=".$_GET["ref_id"],'fullscreen_link' => "",
974 'ref_id' => $_GET["ref_id"], 'webspace_path' => $wb_path);
975 $output = xslt_process($xh,"arg:/_xml","arg:/_xsl",NULL,$args, $params);
976 //echo xslt_error($xh);
977 xslt_free($xh);
978
979 // unmask user html
980 include_once("./Services/MediaObjects/classes/class.ilPlayerUtil.php");
981 $tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "../../css/style.css");
982 $tpl->setVariable("LOCATION_STYLESHEET", "../../css/system.css");
983 $tpl->setVariable("MEDIA_CONTENT", $output);
984 $output = $tpl->get();
985 //$output = preg_replace("/\/mobs\/mm_(\d+)\/([^\"]+)/i","$2",$output);
986 $output = preg_replace("/mobs\/mm_(\d+)\/([^\"]+)/i","$2",$output);
987 $output = preg_replace("/\.\/Services\/MediaObjects\/flash_mp3_player/i","../../players",$output);
988 $output = preg_replace("/\.\/".str_replace("/", "\/", ilPlayerUtil::getFlashVideoPlayerDirectory())."/i","../../players",$output);
989 $output = preg_replace("/file=..\/..\/..\//i","file=../objects/".$subdir."/",$output);
990 //die(htmlspecialchars($output));
991 fwrite(fopen($a_target_dir.'/fullscreen.html','w'), $output );
992 }
global $tpl
Definition: ilias.php:8
$_GET["client_id"]
const IL_MODE_OUTPUT
static _getMapAreasIntLinks($a_mob_id)
get all internal links of map areas of a mob
getXML($a_mode=IL_MODE_FULL, $a_inst=0)
get MediaObject XLM Tag
static getFlashVideoPlayerDirectory()
Get flash video player directory.
special template class to simplify handling of ITX/PEAR
$params
Definition: example_049.php:96
if(!is_dir( $entity_dir)) exit("Fatal Error ([A-Za-z0-9]+)\s+" &#(? foreach( $entity_files as $file) $output
xslt_free(&$proc)
xslt_create()

References $_GET, $output, $params, $tpl, ilMediaItem\_getMapAreasIntLinks(), ilPlayerUtil\getFlashVideoPlayerDirectory(), getId(), getXML(), IL_MODE_OUTPUT, ilUtil\makeDir(), xslt_create(), and xslt_free().

+ Here is the call graph for this function:

◆ exportXML()

ilObjMediaObject::exportXML ( $a_xml_writer,
  $a_inst = 0 
)

export XML

Definition at line 913 of file class.ilObjMediaObject.php.

914 {
915 $a_xml_writer->appendXML($this->getXML(IL_MODE_FULL, $a_inst));
916 }
const IL_MODE_FULL

References getXML(), and IL_MODE_FULL.

+ Here is the call graph for this function:

◆ fixFilename()

static ilObjMediaObject::fixFilename (   $a_name)
static

Fix filename of uploaded file.

Parameters
string$a_nameupload file name
Returns
string fixed file name

Definition at line 2045 of file class.ilObjMediaObject.php.

2046 {
2047 $a_name = ilUtil::getASCIIFilename($a_name);
2048
2049 $rchars = array("`", "=", "$", "{", "}", "'", ";", " ", "(", ")");
2050 $a_name = str_replace($rchars, "_", $a_name);
2051 $a_name = str_replace("__", "_", $a_name);
2052 return $a_name;
2053 }
static getASCIIFilename($a_filename)
convert utf8 to ascii filename

References ilUtil\getASCIIFilename().

Referenced by ilObjMediaObjectGUI\savePropertiesObject(), ilObjMediaObjectGUI\setObjectPerCreationForm(), and ilObjMediaObjectGUI\uploadFileObject().

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

◆ generatePreviewPic()

ilObjMediaObject::generatePreviewPic (   $a_width,
  $a_height 
)

Upload video preview picture.

Parameters

return

Definition at line 1986 of file class.ilObjMediaObject.php.

1987 {
1988 $item = $this->getMediaItem("Standard");
1989
1990 if ($item->getLocationType() == "LocalFile" &&
1991 is_int(strpos($item->getFormat(), "image/")))
1992 {
1993 $dir = ilObjMediaObject::_getDirectory($this->getId());
1994 $file = $dir."/".
1995 $item->getLocation();
1996 if (is_file($file))
1997 {
1998 if(ilUtil::isConvertVersionAtLeast("6.3.8-3"))
1999 {
2000 ilUtil::execConvert(ilUtil::escapeShellArg($file)."[0] -geometry ".$a_width."x".$a_height."^ -gravity center -extent ".$a_width."x".$a_height." PNG:".$dir."/mob_vpreview.png");
2001 }
2002 else
2003 {
2004 ilUtil::convertImage($file, $dir."/mob_vpreview.png", "PNG", $a_width."x".$a_height);
2005 }
2006 }
2007 }
2008 }
& getMediaItem($a_purpose)
get item for media purpose
static isConvertVersionAtLeast($a_version)
Compare convert version numbers.
static escapeShellArg($a_arg)
static execConvert($args)
execute convert command
static convertImage($a_from, $a_to, $a_target_format="", $a_geometry="", $a_background_color="")
convert image

References $file, _getDirectory(), ilUtil\convertImage(), ilUtil\escapeShellArg(), ilUtil\execConvert(), getId(), getMediaItem(), and ilUtil\isConvertVersionAtLeast().

+ Here is the call graph for this function:

◆ getAllowedFileTypes()

static ilObjMediaObject::getAllowedFileTypes ( )
static

Get allowed file types.

Returns
array

Definition at line 1891 of file class.ilObjMediaObject.php.

1892 {
1893 $mset = new ilSetting("mobs");
1894 if (trim($mset->get("restricted_file_types")) == "")
1895 {
1896 return array();
1897 }
1898 return array_map(function ($v)
1899 {
1900 return strtolower(trim($v));
1901 },
1902 explode(",", $mset->get("restricted_file_types")));
1903 }
ILIAS Setting Class.

◆ getDataDirectory()

ilObjMediaObject::getDataDirectory ( )

Definition at line 1627 of file class.ilObjMediaObject.php.

1628 {
1629 return ilUtil::getWebspaceDir()."/mobs/mm_".$this->getId();
1630 }

References getId(), and ilUtil\getWebspaceDir().

Referenced by handleQuotaUpdate().

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

◆ getDescription()

ilObjMediaObject::getDescription ( )

get description of media object

Returns
string description

Reimplemented from ilObject.

Definition at line 155 of file class.ilObjMediaObject.php.

156 {
157 return parent::getDescription();
158 }

Referenced by createMetaData(), duplicate(), and updateMetaData().

+ Here is the caller graph for this function:

◆ getFilesOfDirectory()

ilObjMediaObject::getFilesOfDirectory (   $a_subdir = "")

Get files of directory.

Parameters
string$a_subdirsubdirectry
Returns
array array of files

Definition at line 656 of file class.ilObjMediaObject.php.

657 {
658 $a_subdir = str_replace("..", "", $a_subdir);
659 $dir = ilObjMediaObject::_getDirectory($this->getId());
660 if ($a_subdir != "")
661 {
662 $dir.= "/".$a_subdir;
663 }
664
665 $files = array();
666 if (is_dir($dir))
667 {
668 $entries = ilUtil::getDir($dir);
669 foreach ($entries as $e)
670 {
671 if (is_file($dir."/".$e["entry"]) && $e["entry"] != "." && $e["entry"] != "..")
672 {
673 $files[] = $e["entry"];
674 }
675 }
676 }
677
678 return $files;
679 }
$files
Definition: add-vimline.php:18
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory

References $files, _getDirectory(), ilUtil\getDir(), and getId().

+ Here is the call graph for this function:

◆ getForbiddenFileTypes()

static ilObjMediaObject::getForbiddenFileTypes ( )
static

Get forbidden file types.

Returns
array

Definition at line 1872 of file class.ilObjMediaObject.php.

1873 {
1874 $mset = new ilSetting("mobs");
1875 if (trim($mset->get("black_list_file_types")) == "")
1876 {
1877 return array();
1878 }
1879 return array_map(function ($v)
1880 {
1881 return strtolower(trim($v));
1882 },
1883 explode(",", $mset->get("black_list_file_types")));
1884 }

Referenced by ilObjMediaObjectGUI\executeCommand(), and ilObjMediaObjectGUI\initForm().

+ Here is the caller graph for this function:

◆ getId()

◆ getImportId()

ilObjMediaObject::getImportId ( )

get import id

Reimplemented from ilObject.

Definition at line 440 of file class.ilObjMediaObject.php.

441 {
442 return $this->import_id;
443 }

References ilObject\$import_id.

◆ getLinkedMediaObjects()

ilObjMediaObject::getLinkedMediaObjects (   $a_ignore = "")

Get all media objects linked in map areas of this media object.

Definition at line 1821 of file class.ilObjMediaObject.php.

1822 {
1823 $linked = array();
1824
1825 if (!is_array($a_ignore))
1826 {
1827 $a_ignore = array();
1828 }
1829
1830 // get linked media objects (map areas)
1831 $med_items = $this->getMediaItems();
1832
1833 foreach($med_items as $med_item)
1834 {
1835 $int_links = ilMapArea::_getIntLinks($med_item->getId());
1836 foreach ($int_links as $k => $int_link)
1837 {
1838 if ($int_link["Type"] == "MediaObject")
1839 {
1840 include_once("./Services/Link/classes/class.ilInternalLink.php");
1841 $l_id = ilInternalLink::_extractObjIdOfTarget($int_link["Target"]);
1842 if (ilObject::_exists($l_id))
1843 {
1844 if (!in_array($l_id, $linked) &&
1845 !in_array($l_id, $a_ignore))
1846 {
1847 $linked[] = $l_id;
1848 }
1849 }
1850 }
1851 }
1852 }
1853//var_dump($linked);
1854 return $linked;
1855 }
static _getIntLinks($a_item_id)
get all internal links of a media items map areas
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public

References ilObject\_exists(), ilInternalLink\_extractObjIdOfTarget(), ilMapArea\_getIntLinks(), and getMediaItems().

+ Here is the call graph for this function:

◆ getMediaItem()

& ilObjMediaObject::getMediaItem (   $a_purpose)

get item for media purpose

Parameters
string$a_purpose
Returns
ilMediaItem

Definition at line 297 of file class.ilObjMediaObject.php.

298 {
299 foreach ($this->media_items as $media_item)
300 {
301 if($media_item->getPurpose() == $a_purpose)
302 {
303 return $media_item;
304 }
305 }
306 return false;
307 }

Referenced by generatePreviewPic(), and hasPurposeItem().

+ Here is the caller graph for this function:

◆ getMediaItemNr()

ilObjMediaObject::getMediaItemNr (   $a_purpose)

Definition at line 344 of file class.ilObjMediaObject.php.

345 {
346 for($i=0; $i<count($this->media_items); $i++)
347 {
348 if($this->media_items[$i]->getPurpose() == $a_purpose)
349 {
350 return $i + 1;
351 }
352 }
353 return false;
354 }

◆ getMediaItems()

& ilObjMediaObject::getMediaItems ( )

get all media items

Returns
array array of media item objects

Definition at line 286 of file class.ilObjMediaObject.php.

287 {
288 return $this->media_items;
289 }

References $media_items.

Referenced by create(), duplicate(), getLinkedMediaObjects(), getXML(), and update().

+ Here is the caller graph for this function:

◆ getMimeType()

static ilObjMediaObject::getMimeType (   $a_file,
  $a_external = false 
)
static

get mime type for file

Parameters
string$a_filefile name
Returns
string mime type static

Definition at line 1518 of file class.ilObjMediaObject.php.

1519 {
1520 include_once("./Services/Utilities/classes/class.ilMimeTypeUtil.php");
1522 return $mime;
1523 }
static lookupMimeType($path_to_file, $fallback=self::APPLICATION__OCTET_STREAM, $a_external=false)

References ilMimeTypeUtil\APPLICATION__OCTET_STREAM, and ilMimeTypeUtil\lookupMimeType().

Referenced by _saveTempFileAsMediaObject(), ilObjMediaObjectGUI\assignFullscreenObject(), ilObjMediaObjectGUI\assignStandardObject(), ilKprimChoiceWizardInputGUI\checkUploads(), ilPCInteractiveImageGUI\create(), ilFileUtils\createFile(), ilObjMediaPoolGUI\createMediaFromUploadDir(), ilSCORM13Package\dbImportSco(), ilPublicUserProfileGUI\deliverVCard(), ilSCORM13Player\getMimetype(), ilMediaPlayerGUI\getMp3PlayerHtml(), ilDclMobRecordFieldModel\parseValue(), ilObjMediaObjectGUI\savePropertiesObject(), assMultipleChoice\setImageFile(), assSingleChoice\setImageFile(), ilObjMediaObjectGUI\setObjectPerCreationForm(), ilPCInteractiveImageGUI\update(), ilObjMediaCastGUI\updateMediaItem(), ilFSStorageExercise\uploadFile(), and ilFSStorageExercise5069\uploadFile().

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

◆ getMultiSrtFiles()

ilObjMediaObject::getMultiSrtFiles ( )

Get all srt files of srt multi upload.

Definition at line 2102 of file class.ilObjMediaObject.php.

2103 {
2104 $items = array();
2105
2106 include_once("./Services/MetaData/classes/class.ilMDLanguageItem.php");
2108
2109 $dir = $this->getMultiSrtUploadDir();
2110 $files = ilUtil::getDir($dir);
2111 foreach ($files as $k => $i)
2112 {
2113 // check directory
2114 if ($i["type"] == "file" && !in_array($k, array(".", "..")))
2115 {
2116 if (pathinfo($k, PATHINFO_EXTENSION) == "srt")
2117 {
2118 $lang = "";
2119 if (substr($k, strlen($k) - 7, 1) == "_")
2120 {
2121 $lang = substr($k, strlen($k) - 6, 2);
2122 if (!in_array($lang, $lang_codes))
2123 {
2124 $lang = "";
2125 }
2126 }
2127 $items[] = array("filename" => $k, "lang" => $lang);
2128 }
2129 }
2130 }
2131 return $items;
2132 }
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
Definition: langwiz.php:349

References $files, $lang, ilMDLanguageItem\_getPossibleLanguageCodes(), ilUtil\getDir(), and getMultiSrtUploadDir().

+ Here is the call graph for this function:

◆ getMultiSrtUploadDir()

ilObjMediaObject::getMultiSrtUploadDir ( )

Get directory for multi srt upload.

Parameters

return

Definition at line 2062 of file class.ilObjMediaObject.php.

2063 {
2064 return ilObjMediaObject::_getDirectory($this->getId()."/srt/tmp");
2065 }

References _getDirectory(), and getId().

Referenced by clearMultiSrtDirectory(), getMultiSrtFiles(), and uploadMultipleSubtitleFile().

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

◆ getOriginID()

ilObjMediaObject::getOriginID ( )

Definition at line 425 of file class.ilObjMediaObject.php.

426 {
427 return $this->origin_id;
428 }

References $origin_id.

◆ getParentObjectIdForUsage()

static ilObjMediaObject::getParentObjectIdForUsage (   $a_usage,
  $a_include_all_access_obj_ids = false 
)
static

Get's the repository object ID of a parent object, if possible.

see ilWebAccessChecker

Definition at line 1251 of file class.ilObjMediaObject.php.

1252 {
1253 if(is_int(strpos($a_usage["type"], ":")))
1254 {
1255 $us_arr = explode(":", $a_usage["type"]);
1256 $type = $us_arr[1];
1257 $cont_type = $us_arr[0];
1258 }
1259 else
1260 {
1261 $type = $a_usage["type"];
1262 }
1263
1264 $id = $a_usage["id"];
1265 $obj_id = false;
1266
1267 switch($type)
1268 {
1269 // RTE / tiny mce
1270 case "html":
1271
1272 switch($cont_type)
1273 {
1274 case "qpl":
1275 // Question Pool *Question* Text (Test)
1276 include_once("./Modules/TestQuestionPool/classes/class.assQuestion.php");
1278 if ($qinfo["original_id"] > 0)
1279 {
1280 include_once("./Modules/Test/classes/class.ilObjTest.php");
1281 $obj_id = ilObjTest::_lookupTestObjIdForQuestionId($id); // usage in test
1282 }
1283 else
1284 {
1285 $obj_id = $qinfo["obj_fi"]; // usage in pool
1286 }
1287 break;
1288
1289 case "spl":
1290 // Question Pool *Question* Text (Survey)
1291 include_once("./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php");
1293 if ($quest)
1294 {
1295 $parent_id = $quest->getObjId();
1296
1297 // pool question copy - find survey, do not use pool itself
1298 if ($quest->getOriginalId() &&
1299 ilObject::_lookupType($parent_id) == "spl")
1300 {
1302 }
1303 // original question (in pool or survey)
1304 else
1305 {
1306 $obj_id = $parent_id;
1307 }
1308
1309 unset($quest);
1310 }
1311 break;
1312
1313 case "exca":
1314 // Exercise assignment
1315 $returned_pk = $a_usage['id'];
1316 // #15995 - we are just checking against exercise object
1317 include_once 'Modules/Exercise/classes/class.ilExSubmission.php';
1318 $obj_id = ilExSubmission::lookupExerciseIdForReturnedId($returned_pk);
1319 break;
1320
1321 case "frm":
1322 // Forum
1323 $post_pk = $a_usage['id'];
1324 include_once 'Modules/Forum/classes/class.ilForumPost.php';
1325 include_once 'Modules/Forum/classes/class.ilForum.php';
1326 $oPost = new ilForumPost($post_pk);
1327 $frm_pk = $oPost->getForumId();
1328 $obj_id = ilForum::_lookupObjIdForForumId($frm_pk);
1329 break;
1330
1331
1332 case "frm~d":
1333 $draft_id = $a_usage['id'];
1334 include_once 'Modules/Forum/classes/class.ilForumPostDraft.php';
1335 include_once 'Modules/Forum/classes/class.ilForum.php';
1336 $oDraft = ilForumPostDraft::newInstanceByDraftId($draft_id);
1337
1338 $frm_pk = $oDraft->getForumId();
1339 $obj_id = ilForum::_lookupObjIdForForumId($frm_pk);
1340 break;
1341 case "frm~h":
1342 $history_id = $a_usage['id'];
1343 include_once 'Modules/Forum/classes/class.ilForumDraftsHistory.php';
1344 include_once 'Modules/Forum/classes/class.ilForumPostDraft.php';
1345 include_once 'Modules/Forum/classes/class.ilForum.php';
1346 $oHistoryDraft = new ilForumDraftsHistory($history_id);
1347 $oDraft = ilForumPostDraft::newInstanceByDraftId($oHistoryDraft->getDraftId());
1348
1349 $frm_pk = $oDraft->getForumId();
1350 $obj_id = ilForum::_lookupObjIdForForumId($frm_pk);
1351 break;
1352 // temporary items (per user)
1353 case "frm~":
1354 case "exca~":
1355 $obj_id = $a_usage['id'];
1356 break;
1357
1358 // "old" category pages
1359 case "cat":
1360 // InfoScreen Text
1361 case "tst":
1362 case "svy":
1363 // data collection
1364 case "dcl":
1365 $obj_id = $id;
1366 break;
1367 }
1368 break;
1369
1370 // page editor
1371 case "pg":
1372
1373 switch($cont_type)
1374 {
1375 // question feedback // parent obj id is q id
1376 case "qfbg":
1377 include_once('./Services/COPage/classes/class.ilPageObject.php');
1379 // note: no break here, we only altered the $id to the question id
1380
1381 case "qpl":
1382 // Question Pool Question Pages
1383 include_once("./Modules/TestQuestionPool/classes/class.assQuestion.php");
1385 if ($qinfo["original_id"] > 0)
1386 {
1387 include_once("./Modules/Test/classes/class.ilObjTest.php");
1388 $obj_id = ilObjTest::_lookupTestObjIdForQuestionId($id); // usage in test
1389 }
1390 else
1391 {
1392 $obj_id = $qinfo["obj_fi"]; // usage in pool
1393 }
1394 if ($obj_id == 0) // this is the case, if question is in learning module -> get lm id
1395 {
1396 include_once("./Services/COPage/classes/class.ilPCQuestion.php");
1398 if ($pinfo && $pinfo["parent_type"] == "lm")
1399 {
1400 include_once("./Modules/LearningModule/classes/class.ilLMObject.php");
1401 $obj_id = ilLMObject::_lookupContObjID($pinfo["page_id"]);
1402 }
1403 $pinfo = ilPCQuestion::_getPageForQuestionId($id, "sahs");
1404 if ($pinfo && $pinfo["parent_type"] == "sahs")
1405 {
1406 include_once("./Modules/SCORM2004/classes/class.ilSCORM2004Node.php");
1407 $obj_id = ilSCORM2004Node::_lookupSLMID($pinfo["page_id"]);
1408 }
1409 }
1410 break;
1411
1412 case "lm":
1413 // learning modules
1414 include_once("./Modules/LearningModule/classes/class.ilLMObject.php");
1416 break;
1417
1418 case "gdf":
1419 // glossary definition
1420 include_once("./Modules/Glossary/classes/class.ilGlossaryDefinition.php");
1421 include_once("./Modules/Glossary/classes/class.ilGlossaryTerm.php");
1423 $obj_id = ilGlossaryTerm::_lookGlossaryID($term_id);
1424 break;
1425
1426 case "wpg":
1427 // wiki page
1428 include_once 'Modules/Wiki/classes/class.ilWikiPage.php';
1430 break;
1431
1432 case "sahs":
1433 // sahs page
1434 // can this implementation be used for other content types, too?
1435 include_once('./Services/COPage/classes/class.ilPageObject.php');
1436 $obj_id = ilPageObject::lookupParentId($id, 'sahs');
1437 break;
1438
1439 case "prtf":
1440 // portfolio
1441 include_once "Modules/Portfolio/classes/class.ilPortfolioPage.php";
1443 break;
1444
1445 case "prtt":
1446 // portfolio template
1447 include_once "Modules/Portfolio/classes/class.ilPortfolioTemplatePage.php";
1449 break;
1450
1451 case "blp":
1452 // blog
1453 include_once('./Services/COPage/classes/class.ilPageObject.php');
1454 $obj_id = ilPageObject::lookupParentId($id, 'blp');
1455 break;
1456
1457 case "impr":
1458 // imprint page - always id 1
1459 // fallthrough
1460
1461 case "crs":
1462 case "grp":
1463 case "cat":
1464 case "fold":
1465 case "root":
1466 case "cont":
1467 case "cstr":
1468 // repository pages
1469 $obj_id = $id;
1470 break;
1471 }
1472 break;
1473
1474 // Media Pool
1475 case "mep":
1476 $obj_id = $id;
1477 break;
1478
1479 // News Context Object (e.g. MediaCast)
1480 case "news":
1481 include_once("./Services/News/classes/class.ilNewsItem.php");
1483 break;
1484 }
1485
1486 return $obj_id;
1487 }
static _instanciateQuestion($question_id)
Creates an instance of a question with a given question id.
static _lookupSurveyObjId($a_question_id)
static _getQuestionInfo($question_id)
Returns question information from the database.
static lookupExerciseIdForReturnedId($a_returned_id)
Get exercise from submission id (used in ilObjMediaObject)
Class ilForumDraftHistory.
static _lookupObjIdForForumId($a_for_id)
static _lookupTermId($a_def_id)
Looks up term id for a definition id.
static _lookGlossaryID($term_id)
get glossary id form term id
static _lookupContObjID($a_id)
get learning module / digibook id for lm object
static _lookupContextObjId($a_news_id)
Context Object ID.
static _lookupTestObjIdForQuestionId($a_q_id)
Get test Object ID for question ID.
static _getPageForQuestionId($a_q_id, $a_parent_type="")
Get page for question id.
static lookupParentId($a_id, $a_type)
Lookup parent id.
static findPortfolioForPage($a_page_id)
Get portfolio id of page id.
static _lookupSLMID($a_id)
Lookup Scorm Learning Module ID for node id.
static lookupObjIdByPage($a_page_id)
returns the wiki/object id to a given page id

References $id, ilObject\$type, ilPCQuestion\_getPageForQuestionId(), assQuestion\_getQuestionInfo(), SurveyQuestion\_instanciateQuestion(), ilGlossaryTerm\_lookGlossaryID(), ilNewsItem\_lookupContextObjId(), ilLMObject\_lookupContObjID(), ilForum\_lookupObjIdForForumId(), ilSCORM2004Node\_lookupSLMID(), SurveyQuestion\_lookupSurveyObjId(), ilGlossaryDefinition\_lookupTermId(), ilObjTest\_lookupTestObjIdForQuestionId(), ilObject\_lookupType(), ilPortfolioPage\findPortfolioForPage(), ilExSubmission\lookupExerciseIdForReturnedId(), ilWikiPage\lookupObjIdByPage(), and ilPageObject\lookupParentId().

Referenced by ilObjMediaObjectAccess\checkAccessMob(), ilMediaObjectUsagesTableGUI\fillRow(), and handleQuotaUpdate().

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

◆ getRefId()

ilObjMediaObject::getRefId ( )

get reference id @access public

Returns
integer reference id

Reimplemented from ilObject.

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

53 {
54 return false;
55 }

◆ getRestrictedFileTypes()

static ilObjMediaObject::getRestrictedFileTypes ( )
static

Get restricted file types (this is for the input form, this list will be empty, if "allowed list" is empty)

Definition at line 1860 of file class.ilObjMediaObject.php.

1861 {
1862 return array_filter(self::getAllowedFileTypes(), function ($v) {
1863 return !in_array($v, self::getForbiddenFileTypes());
1864 });
1865 }

Referenced by ilObjMediaObjectGUI\executeCommand(), and ilObjMediaObjectGUI\initForm().

+ Here is the caller graph for this function:

◆ getSrtFiles()

ilObjMediaObject::getSrtFiles ( )

Get srt files.

Definition at line 1750 of file class.ilObjMediaObject.php.

1751 {
1752 $srt_dir = ilObjMediaObject::_getDirectory($this->getId())."/srt";
1753
1754 if (!is_dir($srt_dir))
1755 {
1756 return array();
1757 }
1758
1759 $items = ilUtil::getDir($srt_dir);
1760
1761 $srt_files = array();
1762 foreach ($items as $i)
1763 {
1764 if (!in_array($i["entry"], array(".", "..")) && $i["type"] == "file")
1765 {
1766 $name = explode(".", $i["entry"]);
1767 if ($name[1] == "srt" && substr($name[0], 0, 9) == "subtitle_")
1768 {
1769 $srt_files[] = array("file" => $i["entry"],
1770 "full_path" => "srt/".$i["entry"], "language" => substr($name[0], 9, 2));
1771 }
1772 }
1773 }
1774
1775 return $srt_files;
1776 }

References _getDirectory(), ilUtil\getDir(), and getId().

Referenced by getXML().

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

◆ getThumbnailPath()

static ilObjMediaObject::getThumbnailPath (   $a_mob_id,
  $a_thumbname 
)
static

Get thumbnail path.

Parameters
string$a_thumbnamethumbnail file name
Returns
string thumbnail path

Definition at line 1797 of file class.ilObjMediaObject.php.

1798 {
1799 $t_dir = ilObjMediaObject::_getThumbnailDirectory($a_mob_id);
1800 return $t_dir."/".$a_thumbname;
1801 }

References _getThumbnailDirectory().

Referenced by ilPCIIMOverlaysTableGUI\fillRow().

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

◆ getTitle()

ilObjMediaObject::getTitle ( )

get object title @access public

Returns
string object title

Reimplemented from ilObject.

Definition at line 72 of file class.ilObjMediaObject.php.

73 {
74 return parent::getTitle();
75 }

Referenced by createMetaData(), duplicate(), and updateMetaData().

+ Here is the caller graph for this function:

◆ getUsages()

ilObjMediaObject::getUsages (   $a_include_history = true)

get all usages of current media object

Definition at line 1143 of file class.ilObjMediaObject.php.

1144 {
1145 return self::lookupUsages($this->getId(), $a_include_history);
1146 }
static lookupUsages($a_id, $a_include_history=true)
Lookup usages of media object.

References getId(), and lookupUsages().

Referenced by delete(), and handleQuotaUpdate().

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

◆ getVideoPreviewPic()

ilObjMediaObject::getVideoPreviewPic (   $a_filename_only = false)

Get video preview pic.

Parameters

return

Definition at line 2016 of file class.ilObjMediaObject.php.

2017 {
2018 $dir = ilObjMediaObject::_getDirectory($this->getId());
2019 $ppics = array("mob_vpreview.jpg",
2020 "mob_vpreview.jpeg",
2021 "mob_vpreview.png");
2022 foreach ($ppics as $p)
2023 {
2024 if (is_file($dir."/".$p))
2025 {
2026 if ($a_filename_only)
2027 {
2028 return $p;
2029 }
2030 else
2031 {
2032 return $dir."/".$p;
2033 }
2034 }
2035 }
2036 return "";
2037 }

References _getDirectory(), and getId().

Referenced by uploadVideoPreviewPic().

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

◆ getXML()

ilObjMediaObject::getXML (   $a_mode = IL_MODE_FULL,
  $a_inst = 0 
)

get MediaObject XLM Tag

Parameters
int$a_modeIL_MODE_ALIAS | IL_MODE_OUTPUT | IL_MODE_FULL

Definition at line 686 of file class.ilObjMediaObject.php.

687 {
688 global $ilUser;
689
690 // TODO: full implementation of all parameters
691//echo "-".$a_mode."-";
692 switch ($a_mode)
693 {
694 case IL_MODE_ALIAS:
695 $xml = "<MediaObject>";
696 $xml .= "<MediaAlias OriginId=\"il__mob_".$this->getId()."\"/>";
697 $media_items = $this->getMediaItems();
698 for($i=0; $i<count($media_items); $i++)
699 {
700 $item = $media_items[$i];
701 $xml .= "<MediaAliasItem Purpose=\"".$item->getPurpose()."\">";
702
703 // Layout
704 $width = ($item->getWidth() != "")
705 ? "Width=\"".$item->getWidth()."\""
706 : "";
707 $height = ($item->getHeight() != "")
708 ? "Height=\"".$item->getHeight()."\""
709 : "";
710 $halign = ($item->getHAlign() != "")
711 ? "HorizontalAlign=\"".$item->getHAlign()."\""
712 : "";
713 $xml .= "<Layout $width $height $halign />";
714
715 // Caption
716 if ($item->getCaption() != "")
717 {
718 $xml .= "<Caption Align=\"bottom\">".
719 $this->escapeProperty($item->getCaption())."</Caption>";
720 }
721
722 // Text Representation
723 if ($item->getTextRepresentation() != "")
724 {
725 $xml .= "<TextRepresentation>".
726 $this->escapeProperty($item->getTextRepresentation())."</TextRepresentation>";
727 }
728
729 // Parameter
730 $parameters = $item->getParameters();
731 foreach ($parameters as $name => $value)
732 {
733 $xml .= "<Parameter Name=\"$name\" Value=\"$value\"/>";
734 }
735 $xml .= $item->getMapAreasXML();
736 $xml .= "</MediaAliasItem>";
737 }
738 break;
739
740 // for output we need technical sections of meta data
741 case IL_MODE_OUTPUT:
742
743 // get first technical section
744// $meta = $this->getMetaData();
745 $xml = "<MediaObject Id=\"il__mob_".$this->getId()."\">";
746
747 $media_items = $this->getMediaItems();
748 for($i=0; $i<count($media_items); $i++)
749 {
750 $item = $media_items[$i];
751
752 $xml .= "<MediaItem Purpose=\"".$item->getPurpose()."\">";
753
754 // Location
755 $loc = ($item->getLocationType() == "Reference")
756 ? ilUtil::secureUrl($item->getLocation())
757 : $item->getLocation();
758 $xml.= "<Location Type=\"".$item->getLocationType()."\">".
759 $this->handleAmps($loc)."</Location>";
760
761 // Format
762 $xml.= "<Format>".$item->getFormat()."</Format>";
763
764 // Layout
765 $width = ($item->getWidth() != "")
766 ? "Width=\"".$item->getWidth()."\""
767 : "";
768 $height = ($item->getHeight() != "")
769 ? "Height=\"".$item->getHeight()."\""
770 : "";
771 $halign = ($item->getHAlign() != "")
772 ? "HorizontalAlign=\"".$item->getHAlign()."\""
773 : "";
774 $xml .= "<Layout $width $height $halign />";
775
776 // Caption
777 if ($item->getCaption() != "")
778 {
779 $xml .= "<Caption Align=\"bottom\">".
780 $this->escapeProperty($item->getCaption())."</Caption>";
781 }
782
783 // Text Representation
784 if ($item->getTextRepresentation() != "")
785 {
786 $xml .= "<TextRepresentation>".
787 $this->escapeProperty($item->getTextRepresentation())."</TextRepresentation>";
788 }
789
790 // Parameter
791 $parameters = $item->getParameters();
792 foreach ($parameters as $name => $value)
793 {
794 $xml .= "<Parameter Name=\"$name\" Value=\"$value\"/>";
795 }
796 $xml .= $item->getMapAreasXML();
797
798 // Subtitles
799 if ($item->getPurpose() == "Standard")
800 {
801 $srts = $this->getSrtFiles();
802 foreach ($srts as $srt)
803 {
804 $def = "";
805 $meta_lang = "";
806 if ($ilUser->getLanguage() != $meta_lang &&
807 $ilUser->getLanguage() == $srt["language"])
808 {
809 $def = ' Default="true" ';
810 }
811 $xml .= "<Subtitle File=\"".$srt["full_path"].
812 "\" Language=\"".$srt["language"]."\" ".$def."/>";
813 }
814 }
815 $xml .= "</MediaItem>";
816 }
817 break;
818
819 // full xml for export
820 case IL_MODE_FULL:
821
822// $meta = $this->getMetaData();
823 $xml = "<MediaObject>";
824
825 // meta data
826 include_once("Services/MetaData/classes/class.ilMD2XML.php");
827 $md2xml = new ilMD2XML(0, $this->getId(), $this->getType());
828 $md2xml->setExportMode(true);
829 $md2xml->startExport();
830 $xml.= $md2xml->getXML();
831
832 $media_items = $this->getMediaItems();
833 for($i=0; $i<count($media_items); $i++)
834 {
835 $item = $media_items[$i];
836
837 // highlight mode
838 $xml .= "<MediaItem Purpose=\"".$item->getPurpose()."\">";
839
840 // Location
841 $xml.= "<Location Type=\"".$item->getLocationType()."\">".
842 $this->handleAmps($item->getLocation())."</Location>";
843
844 // Format
845 $xml.= "<Format>".$item->getFormat()."</Format>";
846
847 // Layout
848 $width = ($item->getWidth() != "")
849 ? "Width=\"".$item->getWidth()."\""
850 : "";
851 $height = ($item->getHeight() != "")
852 ? "Height=\"".$item->getHeight()."\""
853 : "";
854 $halign = ($item->getHAlign() != "")
855 ? "HorizontalAlign=\"".$item->getHAlign()."\""
856 : "";
857 $xml .= "<Layout $width $height $halign />";
858
859 // Caption
860 if ($item->getCaption() != "")
861 {
862 $xml .= "<Caption Align=\"bottom\">".
863 str_replace("&", "&amp;", $item->getCaption())."</Caption>";
864 }
865
866 // Text Representation
867 if ($item->getTextRepresentation() != "")
868 {
869 $xml .= "<TextRepresentation>".
870 str_replace("&", "&amp;", $item->getTextRepresentation())."</TextRepresentation>";
871 }
872
873 // Parameter
874 $parameters = $item->getParameters();
875 foreach ($parameters as $name => $value)
876 {
877 $xml .= "<Parameter Name=\"$name\" Value=\"$value\"/>";
878 }
879 $xml .= $item->getMapAreasXML(true, $a_inst);
880 $xml .= "</MediaItem>";
881 }
882 break;
883 }
884 $xml .= "</MediaObject>";
885 return $xml;
886 }
const IL_MODE_ALIAS
escapeProperty($a_value)
Escape property (e.g.
handleAmps($a_str)
Replace "&" (if not an "&") with "&".
static secureUrl($url)
Prepare secure href attribute.

References $ilUser, $media_items, escapeProperty(), getId(), getMediaItems(), getSrtFiles(), ilObject\getType(), handleAmps(), IL_MODE_ALIAS, IL_MODE_FULL, IL_MODE_OUTPUT, and ilUtil\secureUrl().

Referenced by exportMediaFullscreen(), and exportXML().

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

◆ handleAmps()

ilObjMediaObject::handleAmps (   $a_str)

Replace "&" (if not an "&amp;") with "&amp;".

Definition at line 903 of file class.ilObjMediaObject.php.

904 {
905 $a_str = str_replace("&amp;", "&", $a_str);
906 $a_str = str_replace("&", "&amp;", $a_str);
907 return $a_str;
908 }

Referenced by getXML().

+ Here is the caller graph for this function:

◆ handleQuotaUpdate()

static ilObjMediaObject::handleQuotaUpdate ( ilObjMediaObject  $a_mob)
staticprotected

Definition at line 529 of file class.ilObjMediaObject.php.

530 {
531 global $ilSetting;
532
533 // if neither workspace nor portfolios are activated, we skip
534 // the quota update here. this due to performance reasons on installations
535 // that do not use workspace/portfolios, but heavily copy content.
536 // in extreme cases (media object in pool and personal blog, deactivate workspace, change media object,
537 // this may lead to incorrect data in the quota calculation)
538 if ($ilSetting->get("disable_personal_workspace") && !$ilSetting->get('user_portfolios'))
539 {
540 return;
541 }
542
543 $parent_obj_ids = array();
544 foreach($a_mob->getUsages() as $item)
545 {
546 $parent_obj_id = $a_mob->getParentObjectIdForUsage($item);
547 if($parent_obj_id &&
548 !in_array($parent_obj_id, $parent_obj_ids))
549 {
550 $parent_obj_ids[]= $parent_obj_id;
551 }
552 }
553
554 // we could suppress this if object is present in a (repository) media pool
555 // but this would lead to "quota-breaches" when the pool item is deleted
556 // and "suddenly" all workspace owners get filesize added to their
557 // respective quotas, regardless of current status
558
559 include_once "Services/DiskQuota/classes/class.ilDiskQuotaHandler.php";
561 $a_mob->getId(),
562 ilUtil::dirSize($a_mob->getDataDirectory()),
563 $parent_obj_ids);
564 }
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.
static getParentObjectIdForUsage($a_usage, $a_include_all_access_obj_ids=false)
Get's the repository object ID of a parent object, if possible.
global $ilSetting
Definition: privfeed.php:17

References $ilSetting, getDataDirectory(), getId(), getParentObjectIdForUsage(), ilObject\getType(), getUsages(), and ilDiskQuotaHandler\handleUpdatedSourceObject().

Referenced by _deleteAllUsages(), _removeUsage(), _saveUsage(), create(), delete(), and update().

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

◆ hasFullscreenItem()

ilObjMediaObject::hasFullscreenItem ( )

Definition at line 357 of file class.ilObjMediaObject.php.

358 {
359 return $this->hasPurposeItem("Fullscreen");
360 }
hasPurposeItem($purpose)
returns wether object has media item with specific purpose

References hasPurposeItem().

+ Here is the call graph for this function:

◆ hasPurposeItem()

ilObjMediaObject::hasPurposeItem (   $purpose)

returns wether object has media item with specific purpose

Parameters
string$purpose
Returns
boolean

Definition at line 368 of file class.ilObjMediaObject.php.

369 {
370 if(is_object($this->getMediaItem($purpose)))
371 {
372 return true;
373 }
374 else
375 {
376 return false;
377 }
378 }

References getMediaItem().

Referenced by hasFullscreenItem().

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

◆ isAlias()

ilObjMediaObject::isAlias ( )

Definition at line 415 of file class.ilObjMediaObject.php.

416 {
417 return $this->is_alias;
418 }

References $is_alias.

◆ isTypeAllowed()

static ilObjMediaObject::isTypeAllowed (   $a_type)
static

Is type allowed.

Parameters
string$a_type
Returns
bool

Definition at line 1911 of file class.ilObjMediaObject.php.

1912 {
1913 if (in_array($a_type, self::getForbiddenFileTypes()))
1914 {
1915 return false;
1916 }
1917 if (count(self::getAllowedFileTypes()) == 0 || in_array($a_type, self::getAllowedFileTypes()))
1918 {
1919 return true;
1920 }
1921 return false;
1922 }

References $a_type.

Referenced by ilPageObjectGUI\showPage().

+ Here is the caller graph for this function:

◆ lookupUsages()

static ilObjMediaObject::lookupUsages (   $a_id,
  $a_include_history = true 
)
static

Lookup usages of media object.

Todo:
: This should be all in one context -> mob id table

Definition at line 1153 of file class.ilObjMediaObject.php.

1154 {
1155 global $ilDB;
1156
1157 $hist_str = "";
1158 if ($a_include_history)
1159 {
1160 $hist_str = ", usage_hist_nr";
1161 }
1162
1163 // get usages in pages
1164 $q = "SELECT DISTINCT usage_type, usage_id, usage_lang".$hist_str." FROM mob_usage WHERE id = ".
1165 $ilDB->quote($a_id, "integer");
1166
1167 if (!$a_include_history)
1168 {
1169 $q.= " AND usage_hist_nr = ".$ilDB->quote(0, "integer");
1170 }
1171
1172 $us_set = $ilDB->query($q);
1173 $ret = array();
1174 while($us_rec = $ilDB->fetchAssoc($us_set))
1175 {
1176 $ut = "";
1177 if(is_int(strpos($us_rec["usage_type"], ":")))
1178 {
1179 $us_arr = explode(":", $us_rec["usage_type"]);
1180 $ut = $us_arr[1];
1181 $ct = $us_arr[0];
1182 }
1183
1184 // check whether page exists
1185 $skip = false;
1186 if ($ut == "pg")
1187 {
1188 include_once("./Services/COPage/classes/class.ilPageObject.php");
1189 if (!ilPageObject::_exists($ct, $us_rec["usage_id"]))
1190 {
1191 $skip = true;
1192 }
1193 }
1194
1195 if (!$skip)
1196 {
1197 $ret[] = array("type" => $us_rec["usage_type"],
1198 "id" => $us_rec["usage_id"],
1199 "lang" => $us_rec["usage_lang"],
1200 "hist_nr" => $us_rec["usage_hist_nr"]);
1201 }
1202 }
1203
1204 // get usages in media pools
1205 $q = "SELECT DISTINCT mep_id FROM mep_tree JOIN mep_item ON (child = obj_id) WHERE mep_item.foreign_id = ".
1206 $ilDB->quote($a_id, "integer")." AND mep_item.type = ".$ilDB->quote("mob", "text");
1207 $us_set = $ilDB->query($q);
1208 while($us_rec = $ilDB->fetchAssoc($us_set))
1209 {
1210 $ret[] = array("type" => "mep",
1211 "id" => $us_rec["mep_id"]);
1212 }
1213
1214 // get usages in news items (media casts)
1215 include_once("./Services/News/classes/class.ilNewsItem.php");
1216 $news_usages = ilNewsItem::_lookupMediaObjectUsages($a_id);
1217 foreach($news_usages as $nu)
1218 {
1219 $ret[] = $nu;
1220 }
1221
1222
1223 // get usages in map areas
1224 $q = "SELECT DISTINCT mob_id FROM media_item it, map_area area ".
1225 " WHERE area.item_id = it.id ".
1226 " AND area.link_type = ".$ilDB->quote("int", "text")." ".
1227 " AND area.target = ".$ilDB->quote("il__mob_".$a_id, "text");
1228 $us_set = $ilDB->query($q);
1229 while($us_rec = $ilDB->fetchAssoc($us_set))
1230 {
1231 $ret[] = array("type" => "map",
1232 "id" => $us_rec["mob_id"]);
1233 }
1234
1235 // get usages in personal clipboards
1236 $users = ilObjUser::_getUsersForClipboadObject("mob", $a_id);
1237 foreach ($users as $user)
1238 {
1239 $ret[] = array("type" => "clip",
1240 "id" => $user);
1241 }
1242
1243 return $ret;
1244 }
static _lookupMediaObjectUsages($a_mob_id)
Lookup media object usage(s)
static _getUsersForClipboadObject($a_type, $a_id)
get all users, that have a certain object within their clipboard
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
$ret
Definition: parser.php:6

References $ilDB, $ret, ilPageObject\_exists(), ilObjUser\_getUsersForClipboadObject(), and ilNewsItem\_lookupMediaObjectUsages().

Referenced by ilObjMediaObjectAccess\checkAccessMob(), getUsages(), and ilLMObject\updateInternalLinks().

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

◆ makeThumbnail()

ilObjMediaObject::makeThumbnail (   $a_file,
  $a_thumbname,
  $a_format = "png",
  $a_size = "80" 
)

Make thumbnail.

Definition at line 1781 of file class.ilObjMediaObject.php.

1783 {
1784 $m_dir = ilObjMediaObject::_getDirectory($this->getId());
1787 ilUtil::convertImage($m_dir."/".$a_file,
1788 $t_dir."/".$a_thumbname, $a_format, $a_size);
1789 }

References _createThumbnailDirectory(), _getDirectory(), _getThumbnailDirectory(), ilUtil\convertImage(), and getId().

+ Here is the call graph for this function:

◆ MDUpdateListener()

ilObjMediaObject::MDUpdateListener (   $a_element)

Meta data update listener.

Important note: Do never call create() or update() method of ilObject here. It would result in an endless loop: update object -> update meta -> update object -> ... Use static _writeTitle() ... methods instead.

Parameters
string$a_element

Reimplemented from ilObject.

Definition at line 179 of file class.ilObjMediaObject.php.

180 {
181 include_once 'Services/MetaData/classes/class.ilMD.php';
182
183 switch($a_element)
184 {
185 case 'General':
186
187 // Update Title and description
188 $md = new ilMD(0, $this->getId(), $this->getType());
189 $md_gen = $md->getGeneral();
190
191 if (is_object($md_gen))
192 {
193 ilObject::_writeTitle($this->getId(),$md_gen->getTitle());
194 $this->setTitle($md_gen->getTitle());
195
196 foreach($md_gen->getDescriptionIds() as $id)
197 {
198 $md_des = $md_gen->getDescription($id);
199 ilObject::_writeDescription($this->getId(),$md_des->getDescription());
200 $this->setDescription($md_des->getDescription());
201 break;
202 }
203 }
204
205 break;
206
207 default:
208 }
209 return true;
210 }
setTitle($a_title)
set object title
setDescription($a_description)
set description of media object
static _writeTitle($a_obj_id, $a_title)
write title to db (static)
static _writeDescription($a_obj_id, $a_desc)
write description to db (static)

References $id, ilObject\_writeDescription(), ilObject\_writeTitle(), getId(), ilObject\getType(), setDescription(), and setTitle().

+ Here is the call graph for this function:

◆ modifyExportIdentifier()

ilObjMediaObject::modifyExportIdentifier (   $a_tag,
  $a_param,
  $a_value 
)

Definition at line 994 of file class.ilObjMediaObject.php.

995 {
996 if ($a_tag == "Identifier" && $a_param == "Entry")
997 {
998 $a_value = ilUtil::insertInstIntoID($a_value);
999 }
1000
1001 return $a_value;
1002 }
static insertInstIntoID($a_value)
inserts installation id into ILIAS id

References ilUtil\insertInstIntoID().

+ Here is the call graph for this function:

◆ putInTree()

ilObjMediaObject::putInTree (   $a_parent_ref)

maybe this method should be in tree object!?

Todo:
role/rbac stuff

Reimplemented from ilObject.

Definition at line 57 of file class.ilObjMediaObject.php.

58 {
59 $this->ilias->raiseError("Operation ilObjMedia::putInTree() not allowed.",$this->ilias->error_obj->FATAL);
60 }

◆ read()

ilObjMediaObject::read ( )

read media object data from db

Reimplemented from ilObject.

Definition at line 385 of file class.ilObjMediaObject.php.

386 {
387//echo "<br>ilObjMediaObject:read";
388 parent::read();
389
390 // get media items
392 }
static _getMediaItemsOfMOb(&$a_mob)
read media items into media objects (static)

References ilMediaItem\_getMediaItemsOfMOb().

+ Here is the call graph for this function:

◆ removeAdditionalFile()

ilObjMediaObject::removeAdditionalFile (   $a_file)

Remove additional file.

Definition at line 1807 of file class.ilObjMediaObject.php.

1808 {
1809 $file = str_replace("..", "", $a_file);
1811 if (is_file($file))
1812 {
1813 unlink($file);
1814 }
1815 }

References $file, _getDirectory(), and getId().

Referenced by uploadVideoPreviewPic().

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

◆ removeAllMediaItems()

ilObjMediaObject::removeAllMediaItems ( )

remove all media items

Definition at line 338 of file class.ilObjMediaObject.php.

339 {
340 $this->media_items = array();
341 }

◆ removeMediaItem()

ilObjMediaObject::removeMediaItem (   $a_purpose)

Definition at line 313 of file class.ilObjMediaObject.php.

314 {
315 foreach ($this->media_items as $key => $media_item)
316 {
317 if($media_item->getPurpose() == $a_purpose)
318 {
319 unset($this->media_items[$key]);
320 }
321 }
322 // update numbers and keys
323 $i = 1;
324 $media_items = array();
325 foreach ($this->media_items as $media_item)
326 {
327 $media_items [$i] = $media_item;
328 $media_item->setMobId($this->getId());
329 $media_item->setNr($i);
330 $i++;
331 }
332 $this->media_items = $media_items;
333 }

References $media_items, and getId().

+ Here is the call graph for this function:

◆ renameExecutables()

static ilObjMediaObject::renameExecutables (   $a_dir)
static

Rename executables.

Parameters
string

Definition at line 2139 of file class.ilObjMediaObject.php.

2140 {
2142 if (!self::isTypeAllowed("html"))
2143 {
2144 ilUtil::rRenameSuffix($a_dir, "html", "sec"); // see #20187
2145 }
2146 }
static rRenameSuffix($a_dir, $a_old_suffix, $a_new_suffix)
Renames all files with certain suffix and gives them a new suffix.
static renameExecutables($a_dir)
Rename uploaded executables for security reasons.

References ilUtil\renameExecutables(), and ilUtil\rRenameSuffix().

Referenced by _saveTempFileAsMediaObject(), ilObjMediaObjectGUI\executeCommand(), ilMediaObjectDataSet\importRecord(), ilObjMediaObjectGUI\savePropertiesObject(), ilObjMediaObjectGUI\setObjectPerCreationForm(), uploadAdditionalFile(), and ilObjMediaObjectGUI\uploadFileObject().

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

◆ setAlias()

ilObjMediaObject::setAlias (   $a_is_alias)

set wether page object is an alias

Definition at line 410 of file class.ilObjMediaObject.php.

411 {
412 $this->is_alias = $a_is_alias;
413 }

◆ setContainsIntLink()

ilObjMediaObject::setContainsIntLink (   $a_contains_link)

content parser set this flag to true, if the media object contains internal links (this method should only be called by the import parser)

Parameters
boolean$a_contains_linktrue, if page contains intern link tag(s)

Definition at line 1015 of file class.ilObjMediaObject.php.

1016 {
1017 $this->contains_int_link = $a_contains_link;
1018 }

◆ setDescription()

ilObjMediaObject::setDescription (   $a_description)

set description of media object

Reimplemented from ilObject.

Definition at line 163 of file class.ilObjMediaObject.php.

164 {
165 parent::setDescription($a_description);
166 }

Referenced by MDUpdateListener().

+ Here is the caller graph for this function:

◆ setId()

ilObjMediaObject::setId (   $a_id)

set id

Reimplemented from ilObject.

Definition at line 397 of file class.ilObjMediaObject.php.

398 {
399 $this->id = $a_id;
400 }

◆ setImportId()

ilObjMediaObject::setImportId (   $a_import_id)

set import id

@access public

Parameters
string$a_import_idimport id

Reimplemented from ilObject.

Definition at line 445 of file class.ilObjMediaObject.php.

446 {
447 $this->import_id = $a_id;
448 }

◆ setOriginID()

ilObjMediaObject::setOriginID (   $a_id)

Definition at line 420 of file class.ilObjMediaObject.php.

421 {
422 return $this->origin_id = $a_id;
423 }

◆ setRefId()

ilObjMediaObject::setRefId (   $a_id)

set reference id @access public

Parameters
integer$a_idreference id

Reimplemented from ilObject.

Definition at line 47 of file class.ilObjMediaObject.php.

48 {
49 $this->ilias->raiseError("Operation ilObjMedia::setRefId() not allowed.",$this->ilias->error_obj->FATAL);
50 }

◆ setTitle()

ilObjMediaObject::setTitle (   $a_title)

set object title

@access public

Parameters
string$a_titleobject title

Reimplemented from ilObject.

Definition at line 67 of file class.ilObjMediaObject.php.

68 {
69 parent::setTitle($a_title);
70 }

Referenced by MDUpdateListener().

+ Here is the caller graph for this function:

◆ update()

ilObjMediaObject::update (   $a_upload = false)

update media object in db

Definition at line 489 of file class.ilObjMediaObject.php.

490 {
491 parent::update();
492
493 if(!$a_upload)
494 {
495 $this->updateMetaData();
496 }
497
499
500 // iterate all items
501 $media_items = $this->getMediaItems();
502 $j = 1;
503 foreach($media_items as $key => $val)
504 {
505 $item = $media_items[$key];
506 if (is_object($item))
507 {
508 $item->setMobId($this->getId());
509 $item->setNr($j);
510 if ($item->getLocationType() == "Reference")
511 {
512 $item->extractUrlParameters();
513 }
514 $item->create();
515 $j++;
516 }
517 }
518
520 global $ilAppEventHandler;
521 $ilAppEventHandler->raise('Services/MediaObjects',
522 'update',
523 array('object' => $this,
524 'obj_type' => 'mob',
525 'obj_id' => $this->getId())
526 );
527 }
updateMetaData()
update meta data entry

References $media_items, ilMediaItem\deleteAllItemsOfMob(), getId(), getMediaItems(), handleQuotaUpdate(), and updateMetaData().

+ Here is the call graph for this function:

◆ updateMetaData()

ilObjMediaObject::updateMetaData ( )

update meta data entry

Reimplemented from ilObject.

Definition at line 236 of file class.ilObjMediaObject.php.

237 {
238 include_once("Services/MetaData/classes/class.ilMD.php");
239 include_once("Services/MetaData/classes/class.ilMDGeneral.php");
240 include_once("Services/MetaData/classes/class.ilMDDescription.php");
241
242 $md = new ilMD(0, $this->getId(), $this->getType());
243 $md_gen = $md->getGeneral();
244 $md_gen->setTitle($this->getTitle());
245
246 // sets first description (maybe not appropriate)
247 $md_des_ids = $md_gen->getDescriptionIds();
248 if (count($md_des_ids) > 0)
249 {
250 $md_des = $md_gen->getDescription($md_des_ids[0]);
251 $md_des->setDescription($this->getDescription());
252 $md_des->update();
253 }
254 $md_gen->update();
255
256 }

References getDescription(), getId(), getTitle(), and ilObject\getType().

Referenced by update().

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

◆ uploadAdditionalFile()

ilObjMediaObject::uploadAdditionalFile (   $a_name,
  $tmp_name,
  $a_subdir = "",
  $a_mode = "move_uploaded" 
)

Create new media object and update page in db and return new media object.

Definition at line 1715 of file class.ilObjMediaObject.php.

1716 {
1717 $a_subdir = str_replace("..", "", $a_subdir);
1718 $dir = $mob_dir = ilObjMediaObject::_getDirectory($this->getId());
1719 if ($a_subdir != "")
1720 {
1721 $dir.= "/".$a_subdir;
1722 }
1724 ilUtil::moveUploadedFile($tmp_name, $a_name, $dir."/".$a_name, true, $a_mode);
1725 self::renameExecutables($mob_dir);
1726 include_once("./Services/MediaObjects/classes/class.ilMediaSvgSanitizer.php");
1727 ilMediaSvgSanitizer::sanitizeDir($mob_dir); // see #20339
1728
1729 }
static makeDirParents($a_dir)
Create a new directory and all parent directories.

References _getDirectory(), getId(), ilUtil\makeDirParents(), ilUtil\moveUploadedFile(), renameExecutables(), and ilMediaSvgSanitizer\sanitizeDir().

Referenced by uploadSrtFile(), and uploadVideoPreviewPic().

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

◆ uploadMultipleSubtitleFile()

ilObjMediaObject::uploadMultipleSubtitleFile (   $a_file)

Upload multi srt file.

Parameters
array$a_filefile info array
Exceptions
ilMediaObjectsException

Definition at line 2074 of file class.ilObjMediaObject.php.

2075 {
2076 global $lng, $ilUser;
2077
2078 include_once("./Services/MediaObjects/exceptions/class.ilMediaObjectsException.php");
2079 if (!is_file($a_file["tmp_name"]))
2080 {
2081 throw new ilMediaObjectsException($lng->txt("mob_file_could_not_be_uploaded"));
2082 }
2083
2084 $dir = $this->getMultiSrtUploadDir();
2085 ilUtil::delDir($dir, true);
2087 ilUtil::moveUploadedFile($a_file["tmp_name"], "multi_srt.zip", $dir."/"."multi_srt.zip");
2088 ilUtil::unzip($dir."/multi_srt.zip", true);
2089 }
General exception class for media objects.
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file

References $ilUser, ilObject\$lng, ilUtil\delDir(), getMultiSrtUploadDir(), ilUtil\makeDirParents(), ilUtil\moveUploadedFile(), and ilUtil\unzip().

+ Here is the call graph for this function:

◆ uploadSrtFile()

ilObjMediaObject::uploadSrtFile (   $a_tmp_name,
  $a_language,
  $a_mode = "move_uploaded" 
)

Upload srt file.

Parameters

return

Definition at line 1737 of file class.ilObjMediaObject.php.

1738 {
1739 if (is_file($a_tmp_name) && $a_language != "")
1740 {
1741 $this->uploadAdditionalFile("subtitle_".$a_language.".srt", $a_tmp_name, "srt", $a_mode);
1742 return true;
1743 }
1744 return false;
1745 }
uploadAdditionalFile($a_name, $tmp_name, $a_subdir="", $a_mode="move_uploaded")
Create new media object and update page in db and return new media object.

References uploadAdditionalFile().

+ Here is the call graph for this function:

◆ uploadVideoPreviewPic()

ilObjMediaObject::uploadVideoPreviewPic (   $a_prevpic)

Upload video preview picture.

Parameters

return

Definition at line 1964 of file class.ilObjMediaObject.php.

1965 {
1966 // remove old one
1967 if ($this->getVideoPreviewPic(true) != "")
1968 {
1969 $this->removeAdditionalFile($this->getVideoPreviewPic(true));
1970 }
1971
1972 $pi = pathinfo($a_prevpic["name"]);
1973 $ext = $pi["extension"];
1974 if (in_array($ext, array("jpg", "jpeg", "png")))
1975 {
1976 $this->uploadAdditionalFile("mob_vpreview.".$ext, $a_prevpic["tmp_name"]);
1977 }
1978 }
getVideoPreviewPic($a_filename_only=false)
Get video preview pic.
removeAdditionalFile($a_file)
Remove additional file.

References getVideoPreviewPic(), removeAdditionalFile(), and uploadAdditionalFile().

+ Here is the call graph for this function:

Field Documentation

◆ $contains_int_link

ilObjMediaObject::$contains_int_link

Definition at line 32 of file class.ilObjMediaObject.php.

Referenced by containsIntLink().

◆ $id

ilObjMediaObject::$id

Definition at line 30 of file class.ilObjMediaObject.php.

Referenced by getId(), getParentObjectIdForUsage(), and MDUpdateListener().

◆ $is_alias

ilObjMediaObject::$is_alias

Definition at line 28 of file class.ilObjMediaObject.php.

Referenced by isAlias().

◆ $media_items

ilObjMediaObject::$media_items

Definition at line 31 of file class.ilObjMediaObject.php.

Referenced by create(), getMediaItems(), getXML(), removeMediaItem(), and update().

◆ $origin_id

ilObjMediaObject::$origin_id

Definition at line 29 of file class.ilObjMediaObject.php.

Referenced by getOriginID().


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