4require_once
"./Services/Object/classes/class.ilObject.php";
5require_once
"./Services/MetaData/classes/class.ilMDLanguageItem.php";
6require_once(
"./Modules/Folder/classes/class.ilObjFolder.php");
7require_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))
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";
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");
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").
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");
An exception for terminatinating execution or to throw for unit testing.
static _searchKeywords($a_query, $a_type, $a_rbac_id=0)
Search for objects by keywords.
Class ilObject Basic functions for all objects.
getType()
get object type @access public
getDescription()
get object description
getId()
get object id @access public
static _lookupType($a_id, $a_reference=false)
lookup object type
getTitle()
get object title @access public
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...