2011-11-08 15 views
5

No estoy realmente familiarizado con Joomla pero me han encargado que escriba un módulo cuya funcionalidad es irrelevante para la pregunta.Emitir una redirección desde un módulo de Joomla

Uno de los requisitos es que si el módulo está cargado, debe verificar si el usuario está conectado y si no, redirigirlo a una URL específica.

Después de buscar información que se me ocurrió algo así, pero no es, evidentemente, una respuesta de trabajo:

$user =& JFactory::getUser(); 

if (!$user->id) { 
    include_once JPATH_COMPONENT . DIRECTORY_SEPARATOR . "controller.php"; // assuming com_content 
    $contentController = new ContentController(); 
    $link = JRoute::_("my url"); 
    $contentController->setRedirect($link); 
    return; 
} 

Creo que el problema radica en conseguir al controlador. Crear un nuevo controlador ciertamente no es el camino a seguir. ¿Hay alguna manera de obtener el controlador actual de un módulo de Joomla y el problema es una redirección?

Gracias por cualquier respuesta.

Respuesta

15

i llamar a esta función estática en cada una de mis controladores de construir

static function forceLoggedIn(){ 


    $user = JFactory::getUser(); 

     if($user->guest||$user->id == 0) 
     { 
      $error = JText::_('YOU MUST BE LOGGED IN'); 
      //base xkè altrimenti andrebbe in loop di redirect 
      JFactory::getApplication()->redirect(JURI::base(), $error, 'error'); 
      return false; 
     } 
    } 
+0

Gracias, que es exactamente lo que estaba buscando. Aceptaré tu respuesta en un par de minutos. – Przemek

+0

thnx ... ¡funciona a la perfección! –

Cuestiones relacionadas