2011-11-08 46 views
5

我對Joomla並不十分熟悉,但我的任務是編寫一個功能與問題無關的模塊。從Joomla模塊發出重定向

其中一個要求是,如果模塊被加載,它應該檢查用戶是否登錄,如果沒有 - 將他重定向到特定的URL。

經過一番搜索,我想出了這樣的事情,但它顯然不是一個工作答案:

$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; 
} 

我認爲問題出在獲得到控制器。創建一個新的控制器當然不是要走的路。有沒有辦法從Joomla模塊獲取當前控制器,並且問題是重定向?

謝謝你的任何答案。

回答

15

我稱之爲我的每個控制器的這種靜態函數構造

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

謝謝,這正是我一直在尋找。我會在幾分鐘內接受你的回答。 – Przemek

+0

thnx ...完美的作品! –