web-dev-qa-db-fra.com

Rediriger vers un élément de menu depuis le contrôleur

J'ai une variable de configuration qui un type d'élément de menu où admin peut sélectionner un élément de menu. Ceci est utilisé pour rediriger l'utilisateur final s'il n'a pas accès à la vue.

Dans le fichier de contrôleur de composant, je fais la validation d'accès et je souhaite maintenant rediriger vers l'élément de menu.

Comment puis-je effectuer la redirection vers un élément de menu particulier avec le bon Itemid?

2
Malaiselvan

Si vous êtes dans le contrôleur et avez Itemid à partir de la configuration du composant, vous pouvez essayer cette redirection simple:

$this->redirect(JRoute::_('index.php?Itemid=' .JComponentHelper::getParams('com_yourcomponent')->get('login_itemid')))

si vous avez vous-même, il sera utilisé, sinon il utilisera un link url à partir d'un élément de menu.

2
Lanah

Je le fais de cette façon (pourvu que vous connaissiez le Itemid)

$app    = JFactory::getApplication();
$menu   = $app->getMenu();

$item           = $menu->getItem($Itemid);
$params         = $item->params;
$return_menu_id = $params->get('return_menu_id ');
$return_item    = $menu->getItem($return_menu_id);  
$return_menu    = JRoute::_($return_item->link.'&Itemid='.$return_item->id);
$app->redirect($return_menu);

J'espère que ce travail pour vous aussi

2
Piero Marsilio