/** * * @return \Gems_Tracker_Engine_TrackEngineInterface * @throws \Gems_Exception */ protected function getTrackEngine() { if ($this->trackEngine instanceof \Gems_Tracker_Engine_TrackEngineInterface) { return $this->trackEngine; } $trackId = $this->_getIdParam(); if (!$trackId) { throw new \Gems_Exception($this->_('Missing track identifier.')); } $menuSource = $this->menu->getParameterSource(); $this->trackEngine = $this->loader->getTracker()->getTrackEngine($trackId); $this->trackEngine->applyToMenuSource($menuSource); $menuSource->setRequestId($trackId); // Tell the menu we're using track id as request id return $this->trackEngine; }