public function display($cachable = false, $urlparams = false) { $menu = $this->app->getMenu (); $home = $menu->getActive (); if (!$home) { JRequest::setVar ( 'view', 'category' ); JRequest::setVar ( 'layout', 'list' ); //JError::raiseError ( 500, JText::_ ( 'COM_KUNENA_NO_ACCESS' ) ); } else { // Find default menu item $default = $this->_getDefaultMenuItem($menu, $home); if (!$default || $default->id == $home->id) { // There is no default menu item, use category view instead $default = $menu->getItem ( KunenaRoute::getItemID("index.php?option=com_kunena&view=category&layout=list") ); if ($default) { $default = clone $default; $defhome = KunenaRoute::getHome($default); if (!$defhome || $defhome->id != $home->id) $default = clone $home; $default->query['view'] = 'category'; $default->query['layout'] = 'list'; } } if (!$default) { JError::raiseError ( 500, JText::_ ( 'COM_KUNENA_NO_ACCESS' ) ); } // Add query variables from shown menu item foreach ( $default->query as $var => $value ) { JRequest::setVar ( $var, $value ); } // Remove query variables coming from the home menu item JRequest::setVar ( 'defaultmenu', null ); // Set active menu item to point the real page $menu->setActive ( $default->id ); } // Reset our router KunenaRoute::initialize(); // Run display task from our new controller $controller = KunenaController::getInstance(); $controller->execute ('display'); // Set redirect and message $this->setRedirect ($controller->getRedirect(), $controller->getMessage(), $controller->getMessageType()); }
/** * Redirect to home page. * * @return KunenaLayout * * @throws KunenaExceptionAuthorise */ public function execute() { $menu = $this->app->getMenu(); $home = $menu->getActive(); if (!$home) { $this->input->set('view', 'category'); $this->input->set('layout', 'list'); // throw new KunenaExceptionAuthorise(JText::_('COM_KUNENA_NO_ACCESS'), 500); } else { // Find default menu item. $default = $this->getDefaultMenuItem($menu, $home); if (!$default || $default->id == $home->id) { // There is no default menu item, use category view instead. $default = $menu->getItem(KunenaRoute::getItemID('index.php?option=com_kunena&view=category&layout=list')); if ($default) { $default = clone $default; $defhome = KunenaRoute::getHome($default); if (!$defhome || $defhome->id != $home->id) { $default = clone $home; } $default->query['view'] = 'category'; $default->query['layout'] = 'list'; } } if (!$default) { throw new KunenaExceptionAuthorise(JText::_('COM_KUNENA_NO_ACCESS'), 500); } // Add query variables from shown menu item. foreach ($default->query as $var => $value) { $this->input->set($var, $value); } // Remove query variables coming from the home menu item. $this->input->set('defaultmenu', null); // Set active menu item to point the real page. $this->input->set('Itemid', $default->id); $menu->setActive($default->id); } // Reset our router. KunenaRoute::initialize(); // Get HMVC controller for the current page. $controller = KunenaControllerApplication::getInstance($this->input->getCmd('view'), $this->input->getCmd('layout', 'default'), $this->input->getCmd('task', 'display'), $this->input, $this->app); if (!$controller) { throw new KunenaExceptionAuthorise(JText::_('COM_KUNENA_NO_ACCESS'), 404); } return $controller->execute(); }