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 public. More...
 
 setRefId ($a_id)
 
 getRefId ()
 
 putInTree ($a_parent_ref)
 
 createReference ()
 
 setTitle ($a_title)
 
 getTitle ()
 
 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 ()
 
 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)
 
 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 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 public More...
 
 setId ($a_id)
 set object id public More...
 
 setRefId ($a_id)
 set reference id public More...
 
 getRefId ()
 get reference id public More...
 
 getType ()
 get object type public More...
 
 setType ($a_type)
 set object type public More...
 
 getPresentationTitle ()
 get presentation title Normally same as title Overwritten for sessions More...
 
 getTitle ()
 get object title public More...
 
 getUntranslatedTitle ()
 get untranslated object title 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 public More...
 
 getLastUpdateDate ()
 get last update date public More...
 
 getDiskUsage ()
 Gets the disk usage of the object in bytes. More...
 
 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) 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 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 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 public.

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

References array.

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  }
Create styles array
The data for the language used.

Member Function Documentation

◆ _createThumbnailDirectory()

static ilObjMediaObject::_createThumbnailDirectory (   $a_obj_id)
static

Create thumbnail directory.

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

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

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

645  {
647  ilUtil::createDirectory(ilUtil::getWebspaceDir()."/thumbs/mm_".$a_obj_id);
648  }
static createDirectory($a_dir, $a_mod=0755)
create directory
static getWebspaceDir($mode="filesystem")
get webspace directory
+ 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.

References $a_type, $ilDB, $row, and array.

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

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  }
$a_type
Definition: workflow.php:93
Create styles array
The data for the language used.
global $ilDB
+ 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.

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

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

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.
$h
static deducibleSize($a_mime)
checks if mime type is provided by getimagesize()
$w
$a_type
Definition: workflow.php:93
$info
Definition: example_052.php:80
$r
Definition: example_031.php:79
Create styles array
The data for the language used.
+ 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

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

References $ilDB, and ilInternalLink\_extractObjIdOfTarget().

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

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  }
global $ilDB
+ 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.

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().

572  {
573  return ilUtil::getWebspaceDir()."/mobs/mm_".$a_mob_id;
574  }
static getWebspaceDir($mode="filesystem")
get webspace directory
+ 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.

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

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

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  }
$a_type
Definition: workflow.php:93
$mobs
Create styles array
The data for the language used.
static _lookupType($a_id, $a_reference=false)
lookup object type
global $ilDB
+ 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.

References array.

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

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  }
Create styles array
The data for the language used.
+ 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.

References ilUtil\getWebspaceDir().

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

592  {
593  return ilUtil::getWebspaceDir($a_mode)."/thumbs/mm_".$a_mob_id;
594  }
static getWebspaceDir($mode="filesystem")
get webspace directory
+ 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.

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

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

582  {
583  return ilUtil::getHtmlPath(ilUtil::getWebspaceDir()."/mobs/mm_".$a_mob_id);
584  }
static getHtmlPath($relative_path)
get url of path
static getWebspaceDir($mode="filesystem")
get webspace directory
+ 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.

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

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

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
static _lookupLocationForMobId($a_mob_id, $a_purpose)
Lookup location for mob id.
$location
Definition: buildRTE.php:44
+ 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.

References _lookupItemPath().

Referenced by ilSCORM2004ScoGUI\getExportResources().

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.
+ 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.

References $a_type, and $ilDB.

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

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  }
$a_type
Definition: workflow.php:93
global $ilDB
+ 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.

References $location, and ilUtil\resizeImage().

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

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  }
$location
Definition: buildRTE.php:44
static resizeImage($a_from, $a_to, $a_width, $a_height, $a_constrain_prop=false)
resize image
+ 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.

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

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

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  }
$size
Definition: RandomTest.php:79
static getImageSize($a_location)
Get image size from location.
static sanitizeDir($a_path)
Sanitize directory recursively.
$location
Definition: buildRTE.php:44
static deducibleSize($a_mime)
checks if mime type is provided by getimagesize()
static _getDirectory($a_mob_id)
get directory for files of media object (static)
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
Class ilMediaItem.
Class ilObjMediaObject.
static getMimeType($a_file, $a_external=false)
get mime type for file
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
+ 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.

References $a_type, $ilDB, and array.

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

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  }
$a_type
Definition: workflow.php:93
Create styles array
The data for the language used.
global $ilDB
+ 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.

References array.

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

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  }
Create styles array
The data for the language used.
+ 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.

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

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
+ 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.

References $contains_int_link.

1025  {
1026  return $this->contains_int_link;
1027  }

◆ 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.

References array, createMetaData(), getId(), and getMediaItems().

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 
474  self::handleQuotaUpdate($this);
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  }
Create styles array
The data for the language used.
& getMediaItems()
get all media items
createMetaData()
create meta data entry
+ 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().

637  {
639  }
static _getDirectory($a_mob_id)
get directory for files of media object (static)
static createDirectory($a_dir, $a_mod=0755)
create directory
+ Here is the call graph for this function:

◆ createMetaData()

ilObjMediaObject::createMetaData ( )

create meta data entry

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

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

Referenced by create().

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  }
$ilUser
Definition: imgupload.php:18
getType()
get object type public
getDescription()
get description of media object
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createReference()

ilObjMediaObject::createReference ( )

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

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

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

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
130  self::handleQuotaUpdate($this);
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 _getThumbnailDirectory($a_mob_id, $a_mode="filesystem")
get directory for files of media object (static)
static deleteAllItemsOfMob($a_mob_id)
Delete all items of a mob.
getUsages($a_include_history=true)
get all usages of current media object
static _getDirectory($a_mob_id)
get directory for files of media object (static)
deleteMetaData()
delete meta data entry
static getLogger($a_component_id)
Get component logger.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
+ Here is the call graph for this function:

◆ deleteMetaData()

ilObjMediaObject::deleteMetaData ( )

delete meta data entry

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

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

Referenced by delete().

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  }
getType()
get object type public
+ 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.

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

Referenced by ilDclMobRecordFieldModel\afterClone().

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 _getThumbnailDirectory($a_mob_id, $a_mode="filesystem")
get directory for files of media object (static)
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.
static _getDirectory($a_mob_id)
get directory for files of media object (static)
Class ilObjMediaObject.
& getMediaItems()
get all media items
getDescription()
get description of media object
+ Here is the call graph for this function:
+ Here is the caller 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.

Referenced by getXML().

895  {
896  return htmlspecialchars($a_value);
897  }
+ 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.

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

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 rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
static getWebspaceDir($mode="filesystem")
get webspace directory
+ 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.

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

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  }
xslt_create()
static _getMapAreasIntLinks($a_mob_id)
get all internal links of map areas of a mob
$_GET["client_id"]
xslt_free(&$proc)
global $tpl
Definition: ilias.php:8
if(!is_dir( $entity_dir)) exit("Fatal Error ([A-Za-z0-9]+)\+" &#(? foreach( $entity_files as $file) $output
special template class to simplify handling of ITX/PEAR
static getFlashVideoPlayerDirectory()
Get flash video player directory.
Create styles array
The data for the language used.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
getXML($a_mode=IL_MODE_FULL, $a_inst=0)
get MediaObject XLM Tag
const IL_MODE_OUTPUT
$params
Definition: example_049.php:96
+ 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.

References getXML(), and IL_MODE_FULL.

914  {
915  $a_xml_writer->appendXML($this->getXML(IL_MODE_FULL, $a_inst));
916  }
const IL_MODE_FULL
getXML($a_mode=IL_MODE_FULL, $a_inst=0)
get MediaObject XLM Tag
+ 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.

References array, and ilUtil\getASCIIFilename().

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

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
Create styles array
The data for the language used.
+ 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

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

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

Referenced by ilObjMediaCastGUI\saveCastItemObject().

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  }
static isConvertVersionAtLeast($a_version)
Compare convert version numbers.
& getMediaItem($a_purpose)
get item for media purpose
static _getDirectory($a_mob_id)
get directory for files of media object (static)
static execConvert($args)
execute convert command
static convertImage($a_from, $a_to, $a_target_format="", $a_geometry="", $a_background_color="")
convert image
static escapeShellArg($a_arg)
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAllowedFileTypes()

static ilObjMediaObject::getAllowedFileTypes ( )
static

Get allowed file types.

Returns
array

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

References array.

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.
Create styles array
The data for the language used.

◆ getDataDirectory()

ilObjMediaObject::getDataDirectory ( )

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

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

Referenced by handleQuotaUpdate().

1628  {
1629  return ilUtil::getWebspaceDir()."/mobs/mm_".$this->getId();
1630  }
static getWebspaceDir($mode="filesystem")
get webspace directory
+ 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

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

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

156  {
157  return parent::getDescription();
158  }
+ 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.

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

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
static _getDirectory($a_mob_id)
get directory for files of media object (static)
Create styles array
The data for the language used.
+ 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.

References array.

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

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  }
ILIAS Setting Class.
Create styles array
The data for the language used.
+ Here is the caller graph for this function:

◆ getId()

◆ getImportId()

ilObjMediaObject::getImportId ( )

get import id

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

References ilObject\$import_id.

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

◆ 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.

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

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 _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
static _getIntLinks($a_item_id)
get all internal links of a media items map areas
Create styles array
The data for the language used.
& getMediaItems()
get all media items
+ 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.

Referenced by ilObjMediaCastGUI\editCastItemObject(), generatePreviewPic(), ilObjMediaCastGUI\getMediaItem(), hasPurposeItem(), and ilNewsTimelineItemGUI\render().

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  }
+ 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.

References $media_items.

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

287  {
288  return $this->media_items;
289  }
+ 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.

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(), assSingleChoice\setImageFile(), assMultipleChoice\setImageFile(), ilObjMediaObjectGUI\setObjectPerCreationForm(), ilPCInteractiveImageGUI\update(), ilObjMediaCastGUI\updateMediaItem(), ilFSStorageExercise5069\uploadFile(), and ilFSStorageExercise\uploadFile().

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)
+ 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.

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

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  }
$files
Definition: add-vimline.php:18
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
Create styles array
The data for the language used.
getMultiSrtUploadDir()
Get directory for multi srt upload.
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
Definition: langwiz.php:349
+ Here is the call graph for this function:

◆ getMultiSrtUploadDir()

ilObjMediaObject::getMultiSrtUploadDir ( )

Get directory for multi srt upload.

Parameters

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

References _getDirectory(), and getId().

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

2063  {
2064  return ilObjMediaObject::_getDirectory($this->getId()."/srt/tmp");
2065  }
static _getDirectory($a_mob_id)
get directory for files of media object (static)
+ 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.

References $origin_id.

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

◆ 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.

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().

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");
1397  $pinfo = ilPCQuestion::_getPageForQuestionId($id, "lm");
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");
1415  $obj_id = ilLMObject::_lookupContObjID($id);
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 _lookupObjIdForForumId($a_for_id)
static _lookupSLMID($a_id)
Lookup Scorm Learning Module ID for node id.
static _lookupTestObjIdForQuestionId($a_q_id)
Get test Object ID for question ID.
static _lookupSurveyObjId($a_question_id)
static findPortfolioForPage($a_page_id)
Get portfolio id of page id.
static _lookupContObjID($a_id)
get learning module / digibook id for lm object
static lookupExerciseIdForReturnedId($a_returned_id)
Get exercise from submission id (used in ilObjMediaObject)
Class ilForumDraftHistory.
static _lookupTermId($a_def_id)
Looks up term id for a definition id.
static _getQuestionInfo($question_id)
Returns question information from the database.
static lookupParentId($a_id, $a_type)
Lookup parent id.
static _getPageForQuestionId($a_q_id, $a_parent_type="")
Get page for question id.
static _instanciateQuestion($question_id)
Creates an instance of a question with a given question id.
static _lookupType($a_id, $a_reference=false)
lookup object type
static _lookGlossaryID($term_id)
get glossary id form term id
static _lookupContextObjId($a_news_id)
Context Object ID.
static lookupObjIdByPage($a_page_id)
returns the wiki/object id to a given page id
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRefId()

ilObjMediaObject::getRefId ( )

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.

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

1861  {
1862  return array_filter(self::getAllowedFileTypes(), function ($v) {
1863  return !in_array($v, self::getForbiddenFileTypes());
1864  });
1865  }
+ Here is the caller graph for this function:

◆ getSrtFiles()

ilObjMediaObject::getSrtFiles ( )

Get srt files.

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

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

Referenced by getXML().

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  }
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
static _getDirectory($a_mob_id)
get directory for files of media object (static)
Create styles array
The data for the language used.
+ 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.

References _getThumbnailDirectory().

Referenced by ilPCIIMOverlaysTableGUI\fillRow().

1798  {
1799  $t_dir = ilObjMediaObject::_getThumbnailDirectory($a_mob_id);
1800  return $t_dir."/".$a_thumbname;
1801  }
static _getThumbnailDirectory($a_mob_id, $a_mode="filesystem")
get directory for files of media object (static)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTitle()

ilObjMediaObject::getTitle ( )

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

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

73  {
74  return parent::getTitle();
75  }
+ 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.

References getId().

Referenced by delete(), and handleQuotaUpdate().

1144  {
1145  return self::lookupUsages($this->getId(), $a_include_history);
1146  }
+ 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

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

References _getDirectory(), array, and getId().

Referenced by ilObjMediaCastGUI\getCastItemValues(), and uploadVideoPreviewPic().

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  }
static _getDirectory($a_mob_id)
get directory for files of media object (static)
Create styles array
The data for the language used.
+ 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.

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

Referenced by exportMediaFullscreen(), and exportXML().

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  }
getSrtFiles()
Get srt files.
escapeProperty($a_value)
Escape property (e.g.
const IL_MODE_FULL
$ilUser
Definition: imgupload.php:18
getType()
get object type public
const IL_MODE_ALIAS
static secureUrl($url)
Prepare secure href attribute.
& getMediaItems()
get all media items
const IL_MODE_OUTPUT
handleAmps($a_str)
Replace "&" (if not an "&amp;") with "&amp;".
+ 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.

Referenced by getXML().

904  {
905  $a_str = str_replace("&amp;", "&", $a_str);
906  $a_str = str_replace("&", "&amp;", $a_str);
907  return $a_str;
908  }
+ 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.

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

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  }
getUsages($a_include_history=true)
get all usages of current media object
getType()
get object type public
Create styles array
The data for the language used.
static getParentObjectIdForUsage($a_usage, $a_include_all_access_obj_ids=false)
Get&#39;s the repository object ID of a parent object, if possible.
global $ilSetting
Definition: privfeed.php:17
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.
+ Here is the call graph for this function:

◆ hasFullscreenItem()

ilObjMediaObject::hasFullscreenItem ( )

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

References hasPurposeItem().

358  {
359  return $this->hasPurposeItem("Fullscreen");
360  }
hasPurposeItem($purpose)
returns wether object has media item with specific purpose
+ 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.

References getMediaItem().

Referenced by hasFullscreenItem().

369  {
370  if(is_object($this->getMediaItem($purpose)))
371  {
372  return true;
373  }
374  else
375  {
376  return false;
377  }
378  }
& getMediaItem($a_purpose)
get item for media purpose
+ 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.

References $is_alias.

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

◆ 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.

References $a_type.

Referenced by ilPageObjectGUI\showPage().

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  }
$a_type
Definition: workflow.php:93
+ 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.

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

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

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 _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
static _getUsersForClipboadObject($a_type, $a_id)
get all users, that have a certain object within their clipboard
static _lookupMediaObjectUsages($a_mob_id)
Lookup media object usage(s)
Create styles array
The data for the language used.
global $ilDB
$ret
Definition: parser.php:6
+ 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.

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

1783  {
1784  $m_dir = ilObjMediaObject::_getDirectory($this->getId());
1786  self::_createThumbnailDirectory($this->getId());
1787  ilUtil::convertImage($m_dir."/".$a_file,
1788  $t_dir."/".$a_thumbname, $a_format, $a_size);
1789  }
static _getThumbnailDirectory($a_mob_id, $a_mode="filesystem")
get directory for files of media object (static)
static _getDirectory($a_mob_id)
get directory for files of media object (static)
static convertImage($a_from, $a_to, $a_target_format="", $a_geometry="", $a_background_color="")
convert image
+ 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

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

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

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  }
setDescription($a_description)
set description of media object
static _writeTitle($a_obj_id, $a_title)
write title to db (static)
getType()
get object type public
static _writeDescription($a_obj_id, $a_desc)
write description to db (static)
+ 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.

References ilUtil\insertInstIntoID().

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
+ Here is the call graph for this function:

◆ putInTree()

ilObjMediaObject::putInTree (   $a_parent_ref)

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  }
redirection script todo: (a better solution should control the processing via a xml file) ...

◆ read()

ilObjMediaObject::read ( )

read media object data from db

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

References ilMediaItem\_getMediaItemsOfMOb().

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)
+ 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.

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

Referenced by uploadVideoPreviewPic().

1808  {
1809  $file = str_replace("..", "", $a_file);
1811  if (is_file($file))
1812  {
1813  unlink($file);
1814  }
1815  }
static _getDirectory($a_mob_id)
get directory for files of media object (static)
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
+ 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.

References array.

339  {
340  $this->media_items = array();
341  }
Create styles array
The data for the language used.

◆ removeMediaItem()

ilObjMediaObject::removeMediaItem (   $a_purpose)

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

References $media_items, array, and getId().

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  }
Create styles array
The data for the language used.
+ 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.

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

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

2140  {
2141  ilUtil::renameExecutables($a_dir);
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.
+ 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

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

Referenced by MDUpdateListener().

164  {
165  parent::setDescription($a_description);
166  }
+ Here is the caller graph for this function:

◆ setId()

ilObjMediaObject::setId (   $a_id)

set id

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

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

◆ setImportId()

ilObjMediaObject::setImportId (   $a_id)

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)

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  }
redirection script todo: (a better solution should control the processing via a xml file) ...

◆ setTitle()

ilObjMediaObject::setTitle (   $a_title)

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

Referenced by MDUpdateListener().

68  {
69  parent::setTitle($a_title);
70  }
+ 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.

References array, ilMediaItem\deleteAllItemsOfMob(), getId(), getMediaItems(), and updateMetaData().

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 
519  self::handleQuotaUpdate($this);
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  }
static deleteAllItemsOfMob($a_mob_id)
Delete all items of a mob.
updateMetaData()
update meta data entry
Create styles array
The data for the language used.
& getMediaItems()
get all media items
+ Here is the call graph for this function:

◆ updateMetaData()

ilObjMediaObject::updateMetaData ( )

update meta data entry

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

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

Referenced by update().

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  }
getType()
get object type public
getDescription()
get description of media object
+ 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.

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

Referenced by uploadSrtFile(), and uploadVideoPreviewPic().

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  }
1723  ilUtil::makeDirParents($dir);
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.
static sanitizeDir($a_path)
Sanitize directory recursively.
static _getDirectory($a_mob_id)
get directory for files of media object (static)
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
+ 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.

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

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);
2086  ilUtil::makeDirParents($dir);
2087  ilUtil::moveUploadedFile($a_file["tmp_name"], "multi_srt.zip", $dir."/"."multi_srt.zip");
2088  ilUtil::unzip($dir."/multi_srt.zip", true);
2089  }
static makeDirParents($a_dir)
Create a new directory and all parent directories.
General exception class for media objects.
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
$ilUser
Definition: imgupload.php:18
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
+ Here is the call graph for this function:

◆ uploadSrtFile()

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

Upload srt file.

Parameters

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

References uploadAdditionalFile().

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.
+ Here is the call graph for this function:

◆ uploadVideoPreviewPic()

ilObjMediaObject::uploadVideoPreviewPic (   $a_prevpic)

Upload video preview picture.

Parameters

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

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

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.
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.
Create styles array
The data for the language used.
+ 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 getMediaItems(), and removeMediaItem().

◆ $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: