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 $this->
ilObject($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");
275 function notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params = 0)
315 if ($a_node_id==
$_GET[
"ref_id"])
317 $parent_obj =& $this->
ilias->obj_factory->getInstanceByRefId($a_node_id);
318 $parent_type = $parent_obj->getType();
319 if($parent_type == $this->
getType())
321 $a_node_id = (int) $tree->getParentId($a_node_id);
325 parent::notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params);
339 $obj_id = $this->tree->getRootId();
342 if ($a_type ==
"fold" || $a_type ==
"")
344 $objs = $this->tree->getChildsByType($obj_id,
"fold");
346 if ($a_type ==
"mob" || $a_type ==
"")
348 $mobs = $this->tree->getChildsByType($obj_id,
"mob");
350 foreach(
$mobs as $key => $mob)
354 if ($a_type ==
"pg" || $a_type ==
"")
356 $pgs = $this->tree->getChildsByType($obj_id,
"pg");
358 foreach($pgs as $key => $pg)
375 $obj_id = $this->tree->getRootId();
378 $objs = $this->tree->getFilteredChilds(array(
"fold",
"dummy"), $obj_id);
385 function getMediaObjects($a_title_filter =
"", $a_format_filter =
"", $a_keyword_filter =
'', $a_caption_filter)
389 $query =
"SELECT DISTINCT mep_tree.*, object_data.* ".
390 "FROM mep_tree JOIN mep_item ON (mep_tree.child = mep_item.obj_id) ".
391 " JOIN object_data ON (mep_item.foreign_id = object_data.obj_id) ";
393 if ($a_format_filter !=
"" or $a_caption_filter !=
'')
395 $query.=
" JOIN media_item ON (media_item.mob_id = object_data.obj_id) ";
399 " WHERE mep_tree.mep_id = ".$ilDB->quote($this->
getId(),
"integer").
400 " AND object_data.type = ".$ilDB->quote(
"mob",
"text");
403 if (trim($a_title_filter) !=
"")
405 $query.=
" AND ".$ilDB->like(
"object_data.title",
"text",
"%".trim($a_title_filter).
"%");
407 if ($a_format_filter !=
"")
409 $filter = ($a_format_filter ==
"unknown")
412 $query.=
" AND ".$ilDB->equals(
"media_item.format", $filter,
"text",
true);
414 if(trim($a_caption_filter))
416 $query .=
'AND '.$ilDB->like(
'media_item.caption',
'text',
'%'.trim($a_caption_filter).
'%');
420 " ORDER BY object_data.title";
423 $set = $ilDB->query(
$query);
424 while ($rec = $ilDB->fetchAssoc($set))
426 $rec[
"foreign_id"] = $rec[
"obj_id"];
432 if($a_keyword_filter)
434 include_once
'./Services/MetaData/classes/class.ilMDKeyword.php';
437 foreach($objs as $obj)
439 if(in_array($obj[
'foreign_id'],
$res))
444 return (array) $filtered;
456 $query =
"SELECT foreign_id as id FROM ".
457 " mep_tree JOIN mep_item ON (mep_tree.child = mep_item.obj_id) ".
458 " JOIN object_data ON (mep_item.foreign_id = object_data.obj_id) ".
459 " WHERE mep_tree.mep_id = ".$ilDB->quote($a_id,
"integer").
460 " AND mep_item.type = ".$ilDB->quote(
"mob",
"text").
461 " AND object_data.type = ".$ilDB->quote(
"mob",
"text");
462 $set = $ilDB->query(
$query);
464 while ($rec = $ilDB->fetchAssoc($set))
478 $query =
"SELECT DISTINCT media_item.format f FROM mep_tree ".
479 " JOIN mep_item ON (mep_item.obj_id = mep_tree.child) ".
480 " JOIN object_data ON (mep_item.foreign_id = object_data.obj_id) ".
481 " JOIN media_item ON (media_item.mob_id = object_data.obj_id) ".
482 " WHERE mep_tree.mep_id = ".$ilDB->quote($this->
getId(),
"integer").
483 " AND object_data.type = ".$ilDB->quote(
"mob",
"text").
486 $set = $ilDB->query(
$query);
487 while ($rec = $ilDB->fetchAssoc($set))
491 $formats[$rec[
"f"]] = $rec[
"f"];
495 $formats[
"unknown"] = $lng->txt(
"mep_unknown");
508 if ($obj_id == $this->tree->getRootId())
513 return $this->tree->getParentId($obj_id);
523 if (!$this->tree->isInTree($a_obj_id))
525 $parent = ($a_parent ==
"")
526 ? $this->tree->getRootId()
528 $this->tree->insertNode($a_obj_id, $parent);
548 $node_data = $this->tree->getNodeData($obj_id);
549 $subtree = $this->tree->getSubtree($node_data);
552 if($this->tree->isInTree($obj_id))
554 $this->tree->deleteTree($node_data);
558 foreach ($subtree as $node)
561 if ($node[
"type"] ==
"mob")
570 if ($node[
"type"] ==
"fold")
579 if ($node[
"type"] ==
"pg")
581 include_once(
"./Modules/MediaPool/classes/class.ilMediaPoolPage.php");
589 include_once(
"./Modules/MediaPool/classes/class.ilMediaPoolItem.php");
605 $set = $ilDB->query(
"SELECT * FROM mep_tree JOIN mep_item ON (child = obj_id) WHERE ".
606 " foreign_id = ".$ilDB->quote($a_foreign_id,
"integer").
607 " AND mep_id = ".$ilDB->quote($a_pool_id,
"integer")
609 if ($rec = $ilDB->fetchAssoc($set))
623 $set = $ilDB->query(
"SELECT * FROM mep_tree WHERE child = ".
624 $ilDB->quote($a_item_id,
"integer").
625 " AND mep_id = ".$ilDB->quote($a_pool_id,
"integer"));
626 if ($rec = $ilDB->fetchAssoc($set))
643 $mep_item->setTitle($a_title);
644 $mep_item->setType(
"fold");
646 if ($mep_item->getId() > 0)
649 $parent = $a_parent > 0
651 : $tree->getRootId();
653 return $mep_item->getId();
668 $new_obj = parent::cloneObject($a_target_id,$a_copy_id);
670 $new_obj->setTitle($this->
getTitle());
678 $this->
getTree()->readRootId());
691 include_once(
"./Modules/MediaPool/classes/class.ilMediaPoolItem.php");
692 include_once(
"./Modules/MediaPool/classes/class.ilMediaPoolPage.php");
693 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
696 $nodes = $this->
getTree()->getChilds($a_source_parent);
697 foreach ($nodes as $node)
700 $item->setType($node[
"type"]);
701 switch ($node[
"type"])
706 $new_mob = $mob->duplicate();
707 $item->setForeignId($new_mob->getId());
708 $item->setTitle($new_mob->getTitle());
713 $item->setTitle($node[
"title"]);
717 $new_page->setParentId($a_new_obj->getId());
718 $new_page->setId($item->getId());
722 $page->copy($new_page->getId(), $new_page->getParentType(), $new_page->getParentId(),
true);
729 $item->setTitle($node[
"title"]);
735 $a_new_obj->insertInTree($item->getId(), $a_target_parent);
751 include_once(
"./Services/Export/classes/class.ilExport.php");
753 $conf = $exp->getConfig(
"Modules/MediaPool");
754 $conf->setMasterLanguageOnly(
true);
755 $exp->exportObject($this->
getType(),$this->
getId(),
"4.4.0");
static _searchKeywords($a_query, $a_type, $a_rbac_id=0)
Search for objects by keywords.
Class ilObject Basic functions for all objects.
ilObject($a_id=0, $a_reference=true)
Constructor public.
getId()
get object id public
getTitle()
get object title public
getDescription()
get object description
redirection script todo: (a better solution should control the processing via a xml file) ...
getType()
get object type public
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static _lookupType($a_id, $a_reference=false)
lookup object type
static _exists($a_id)
Check whether meida pool page exists.