4 require_once
"./Services/Object/classes/class.ilObject.php";
5 require_once
"./Services/MetaData/classes/class.ilMDLanguageItem.php";
6 require_once(
"./Modules/Folder/classes/class.ilObjFolder.php");
7 require_once(
"./Modules/MediaPool/classes/class.ilMediaPoolItem.php");
36 parent::__construct($a_id,$a_call_by_reference);
46 $this->default_width = $a_val;
56 return $this->default_width;
66 $this->default_height = $a_val;
76 return $this->default_height;
86 $this->for_translation = $a_val;
108 $set = $ilDB->query(
"SELECT * FROM mep_data ".
109 " WHERE id = ".$ilDB->quote($this->getId(),
"integer")
111 if ($rec = $ilDB->fetchAssoc($set))
130 $tree =
new ilTree($a_obj_id);
131 $tree->setTreeTablePK(
"mep_id");
132 $tree->setTableNames(
"mep_tree",
"mep_item");
146 $ilDB->manipulate(
"INSERT INTO mep_data ".
147 "(id, default_width, default_height, for_translation) VALUES (".
148 $ilDB->quote($this->getId(),
"integer").
", ".
149 $ilDB->quote($this->getDefaultWidth(),
"integer").
", ".
150 $ilDB->quote($this->getDefaultHeight(),
"integer").
", ".
151 $ilDB->quote($this->getForTranslation(),
"integer").
167 $this->tree->setTreeTablePK(
"mep_id");
168 $this->tree->setTableNames(
'mep_tree',
'mep_item');
169 $this->tree->addTree($this->
getId(), 1);
191 if (!parent::update())
197 $ilDB->manipulate(
"UPDATE mep_data SET ".
198 " default_width = ".$ilDB->quote($this->getDefaultWidth(),
"integer").
",".
199 " default_height = ".$ilDB->quote($this->getDefaultHeight(),
"integer").
",".
200 " for_translation = ".$ilDB->quote($this->getForTranslation(),
"integer").
" ".
201 " WHERE id = ".$ilDB->quote($this->getId(),
"integer")
221 if (!parent::delete())
227 $childs = $this->tree->getSubTree($this->tree->getNodeData($this->tree->readRootId()));
230 $this->tree->removeTree($this->tree->getTreeId());
233 foreach ($childs as $child)
236 switch ($child[
"type"])
241 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
262 $obj_id = $this->tree->getRootId();
267 $objs = $this->tree->getChildsByType($obj_id,
"fold");
271 $mobs = $this->tree->getChildsByType($obj_id,
"mob");
273 foreach(
$mobs as $key => $mob)
279 $pgs = $this->tree->getChildsByType($obj_id,
"pg");
281 foreach($pgs as $key => $pg)
296 $obj_id = $this->tree->getRootId();
299 $objs = $this->tree->getFilteredChilds(
array(
"fold",
"dummy"), $obj_id);
306 function getMediaObjects($a_title_filter =
"", $a_format_filter =
"", $a_keyword_filter =
'', $a_caption_filter)
310 $query =
"SELECT DISTINCT mep_tree.*, object_data.* ".
311 "FROM mep_tree JOIN mep_item ON (mep_tree.child = mep_item.obj_id) ".
312 " JOIN object_data ON (mep_item.foreign_id = object_data.obj_id) ";
314 if ($a_format_filter !=
"" or $a_caption_filter !=
'')
316 $query.=
" JOIN media_item ON (media_item.mob_id = object_data.obj_id) ";
320 " WHERE mep_tree.mep_id = ".$ilDB->quote($this->
getId(),
"integer").
321 " AND object_data.type = ".$ilDB->quote(
"mob",
"text");
324 if (trim($a_title_filter) !=
"")
326 $query.=
" AND ".$ilDB->like(
"object_data.title",
"text",
"%".trim($a_title_filter).
"%");
328 if ($a_format_filter !=
"")
330 $filter = ($a_format_filter ==
"unknown")
333 $query.=
" AND ".$ilDB->equals(
"media_item.format", $filter,
"text",
true);
335 if(trim($a_caption_filter))
337 $query .=
'AND '.$ilDB->like(
'media_item.caption',
'text',
'%'.trim($a_caption_filter).
'%');
341 " ORDER BY object_data.title";
344 $set = $ilDB->query(
$query);
345 while ($rec = $ilDB->fetchAssoc($set))
347 $rec[
"foreign_id"] = $rec[
"obj_id"];
353 if($a_keyword_filter)
355 include_once
'./Services/MetaData/classes/class.ilMDKeyword.php';
358 foreach($objs as $obj)
360 if(in_array($obj[
'foreign_id'],
$res))
365 return (
array) $filtered;
379 $query =
"SELECT foreign_id as id FROM ".
380 " mep_tree JOIN mep_item ON (mep_tree.child = mep_item.obj_id) ".
381 " JOIN object_data ON (mep_item.foreign_id = object_data.obj_id) ".
382 " WHERE mep_tree.mep_id = ".$ilDB->quote($a_id,
"integer").
383 " AND mep_item.type = ".$ilDB->quote(
"mob",
"text").
384 " AND object_data.type = ".$ilDB->quote(
"mob",
"text");
385 $set = $ilDB->query(
$query);
387 while ($rec = $ilDB->fetchAssoc($set))
401 $query =
"SELECT DISTINCT media_item.format f FROM mep_tree ".
402 " JOIN mep_item ON (mep_item.obj_id = mep_tree.child) ".
403 " JOIN object_data ON (mep_item.foreign_id = object_data.obj_id) ".
404 " JOIN media_item ON (media_item.mob_id = object_data.obj_id) ".
405 " WHERE mep_tree.mep_id = ".$ilDB->quote($this->
getId(),
"integer").
406 " AND object_data.type = ".$ilDB->quote(
"mob",
"text").
409 $set = $ilDB->query(
$query);
410 while ($rec = $ilDB->fetchAssoc($set))
414 $formats[$rec[
"f"]] = $rec[
"f"];
418 $formats[
"unknown"] = $lng->txt(
"mep_unknown");
431 if ($obj_id == $this->tree->getRootId())
436 return $this->tree->getParentId($obj_id);
446 if (!$this->tree->isInTree($a_obj_id))
448 $parent = ($a_parent ==
"")
449 ? $this->tree->getRootId()
451 $this->tree->insertNode($a_obj_id, $parent);
467 $node_data = $this->tree->getNodeData($obj_id);
468 $subtree = $this->tree->getSubtree($node_data);
471 if($this->tree->isInTree($obj_id))
473 $this->tree->deleteTree($node_data);
477 foreach ($subtree as $node)
480 if ($node[
"type"] ==
"mob")
489 if ($node[
"type"] ==
"fold")
498 if ($node[
"type"] ==
"pg")
500 include_once(
"./Modules/MediaPool/classes/class.ilMediaPoolPage.php");
508 include_once(
"./Modules/MediaPool/classes/class.ilMediaPoolItem.php");
524 $set = $ilDB->query(
"SELECT * FROM mep_tree JOIN mep_item ON (child = obj_id) WHERE ".
525 " foreign_id = ".$ilDB->quote($a_foreign_id,
"integer").
526 " AND mep_id = ".$ilDB->quote($a_pool_id,
"integer")
528 if ($rec = $ilDB->fetchAssoc($set))
542 $set = $ilDB->query(
"SELECT * FROM mep_tree WHERE child = ".
543 $ilDB->quote($a_item_id,
"integer").
544 " AND mep_id = ".$ilDB->quote($a_pool_id,
"integer"));
545 if ($rec = $ilDB->fetchAssoc($set))
562 $mep_item->setTitle($a_title);
563 $mep_item->setType(
"fold");
565 if ($mep_item->getId() > 0)
568 $parent = $a_parent > 0
570 : $tree->getRootId();
572 return $mep_item->getId();
583 public function cloneObject($a_target_id,$a_copy_id = 0, $a_omit_tree =
false)
585 $new_obj = parent::cloneObject($a_target_id,$a_copy_id, $a_omit_tree);
587 $new_obj->setTitle($this->
getTitle());
595 $this->
getTree()->readRootId());
608 include_once(
"./Modules/MediaPool/classes/class.ilMediaPoolItem.php");
609 include_once(
"./Modules/MediaPool/classes/class.ilMediaPoolPage.php");
610 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
613 $nodes = $this->
getTree()->getChilds($a_source_parent);
614 foreach ($nodes as $node)
617 $item->setType($node[
"type"]);
618 switch ($node[
"type"])
623 $new_mob = $mob->duplicate();
624 $item->setForeignId($new_mob->getId());
625 $item->setTitle($new_mob->getTitle());
630 $item->setTitle($node[
"title"]);
634 $new_page->setParentId($a_new_obj->getId());
635 $new_page->setId($item->getId());
639 $page->copy($new_page->getId(), $new_page->getParentType(), $new_page->getParentId(),
true);
643 $item->setTitle($node[
"title"]);
649 $a_new_obj->insertInTree($item->getId(), $a_target_parent);
665 include_once(
"./Services/Export/classes/class.ilExport.php");
667 $conf = $exp->getConfig(
"Modules/MediaPool");
668 $conf->setMasterLanguageOnly(
true);
669 $exp->exportObject($this->
getType(),$this->
getId(),
"4.4.0");
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
static _searchKeywords($a_query, $a_type, $a_rbac_id=0)
Search for objects by keywords.
Class ilObject Basic functions for all objects.
getId()
get object id public
getTitle()
get object title public
getDescription()
get object description
getType()
get object type public
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
Create styles array
The data for the language used.
static _lookupType($a_id, $a_reference=false)
lookup object type