2011-12-01 108 views
4

我需要自定義組件中的方法。我需要做出不同的操作(刪除用戶和其他信息),然後以編程方式註銷用戶(不帶按鈕鏈接),我該如何實現這一目標?用joomla以編程方式註銷

我試過在方法結束做到這一點:

$return = JRoute::_('index.php?option=com_users&task=user.logout', true); 
$this->setRedirect($return,$msg); 

但是,這給出了一個無效的令牌消息。

謝謝

+0

根據https://api.joomla.org/cms-3/classes/JApplication.html#method_logout,註銷函數從4.0開始已被棄用。它仍然可用嗎?如果沒有,是否有人有替代解決方案? –

回答

13

什麼Joomla版本你工作?如果是的Joomla 1.7,你可以在你的代碼做到這一點:

$app = JFactory::getApplication(); 
$app->logout($user_id); 

其中$ user_id是要註銷該用戶的ID。如果您將其保留爲空或不設置,則會註銷正在執行請求的用戶。 爲Joomla 1.5,你可以用同樣的方式,但在的Joomla 1.5有一個全局變量名爲$主機保存應用程序的一個實例,所以你可以做:

global $mainframe; 
$mainframe->logout($user_id); 

我希望它幫助!

+0

完美,這是我正在尋找的解決方案,謝謝 – user1075778

+0

不贊成使用4.0 ... –

3
$app = JFactory::getApplication(); 
$app->logout(); 
-1

如果是Joomla 2.5您可以使用Joomla的默認登錄模塊(它也有一個註銷按鈕)。轉到擴展>>模塊管理器>>新建>>登錄>>正確配置並保存。

+0

不能看到用戶通過編程方式詢問'不是通過按鈕單擊? –

+0

當然「不是通過按鈕點擊」,我指的配置頁面提供了一種如何配置此事件的方式(因爲用戶希望註銷刪除用戶)。 –