/**
  * Get all media objects linked in map areas of this media object
  */
 function getLinkedMediaObjects($a_ignore = "")
 {
     $linked = array();
     if (!is_array($a_ignore)) {
         $a_ignore = array();
     }
     // get linked media objects (map areas)
     $med_items = $this->getMediaItems();
     foreach ($med_items as $med_item) {
         $int_links = ilMapArea::_getIntLinks($med_item->getId());
         foreach ($int_links as $k => $int_link) {
             if ($int_link["Type"] == "MediaObject") {
                 include_once "./Services/COPage/classes/class.ilInternalLink.php";
                 $l_id = ilInternalLink::_extractObjIdOfTarget($int_link["Target"]);
                 if (ilObject::_exists($l_id)) {
                     if (!in_array($l_id, $linked) && !in_array($l_id, $a_ignore)) {
                         $linked[] = $l_id;
                     }
                 }
             }
         }
     }
     //var_dump($linked);
     return $linked;
 }
Exemplo n.º 2
0
 /**
  * get all internal links of map areas of a mob
  *
  * @param	int		$a_mob_id		media object id
  */
 function _getMapAreasIntLinks($a_mob_id)
 {
     global $ilDB;
     // read media_items records
     $query = "SELECT * FROM media_item WHERE mob_id = " . $ilDB->quote($a_mob_id, "integer") . " ORDER BY nr";
     $item_set = $ilDB->query($query);
     $links = array();
     while ($item_rec = $ilDB->fetchAssoc($item_set)) {
         $map_links = ilMapArea::_getIntLinks($item_rec["id"]);
         foreach ($map_links as $key => $map_link) {
             $links[$key] = $map_link;
         }
     }
     return $links;
 }