Sto sviluppando un nuovo componente Joomla personalizzato MVC (com_helpdesk) e devo verificare se l'utente ha effettuato l'accesso al sito. In caso contrario, dovrebbe reindirizzare alla pagina di accesso con il parametro "return". Qualcuno potrebbe aiutarmi con esso?
È possibile utilizzare l'oggetto utente di Joomla per questo.
$user = JFactory::getUser(); // Get the user object
$app = JFactory::getApplication(); // Get the application
if ($user->id != 0)
{
// you are logged in
}
else
{
// Redirect the user
$app->redirect(JRoute::_('index.php?option=com_users&view=login'));
}
Se desideri visualizzare un messaggio quando vengono reindirizzati, puoi utilizzare quanto segue:
$msg = 'You must be logged in to view this content';
$app->redirect(JRoute::_('index.php?option=com_users&view=login'), $msg);
Althugh Lodder ha risposto alle mie domande, ecco cosa ho fatto e ritengo che il modo più sofisticato di gestire i componenti personalizzati. Aggiunge il parametro return al componente com_users.
Nel controller principale, (componenti/com_mycomponent/controller.php)
Sostituisco il seguente metodo:
public function display($cachable = false, $urlparams = array()) {
$user = JFactory::getUser();
if ($user->get('guest') == 1) {
$this->setRedirect(JRoute::_('index.php?option=com_users&view=login&return=' . base64_encode(JUri::current()), "You must be logged in to view this content"));
return;
}
parent::display($cachable, $urlparams);
}