protected static function _findItem($needles = null) { $app = JFactory::getApplication(); $menus = $app->getMenu('site'); $active = $menus->getActive(); $component = JComponentHelper::getComponent('com_tz_pinboard'); $items = $menus->getItems('component_id', $component->id); // Prepare the reverse lookup array. if (self::$lookup === null) { self::$lookup = array(); foreach ($items as $item) { if (isset($item->query) && isset($item->query['view'])) { $view = $item->query['view']; if (!isset(self::$lookup[$view])) { self::$lookup[$view] = array(); } if ($active && $active->component == 'com_tz_pinboard') { if (isset($active->query) && isset($active->query['view'])) { if (isset($active->query['id'])) { self::$lookup[$active->query['view']][$active->query['id']] = $active->id; } } } } } } if ($needles) { foreach ($needles as $view => $ids) { if (isset(self::$lookup[$view])) { if ($view == 'manageruser') { foreach ($items as $item) { if ($view == $item->query['view']) { $Itemid = $item->id; return $Itemid; } } } else { if ($view == 'tags') { foreach ($items as $item) { if (isset($item->query['id_tag']) && !empty($item->query['id_tag'])) { foreach ($ids as $id) { if ($id == (int) $item->query['id_tag']) { $Itemid = $item->id; return $Itemid; } } } } return $component->params->get('mymenuitem'); } else { if ($view == 'addpinboards') { foreach ($items as $item) { if ($view == $item->query['view']) { $Itemid = $item->id; return $Itemid; } } } else { if ($view == "detail") { foreach ($items as $item) { if ($view == $item->query['view']) { $Itemid = $item->id; return $Itemid; } } } } } } foreach ($ids as $id) { if (isset(self::$lookup[$view][(int) $id])) { return self::$lookup[$view][(int) $id]; } } } } } else { if ($active && $active->component == 'com_tz_pinboard') { return $active->id; } } return null; }