2013-12-13 39 views
0

自從iv完成任何joomla開發工作後,它一直沿用時間,所以在這裏有點生疏。我有一個用戶註冊頁面的joomla網站,我需要在用戶註冊後調用另一個腳本或web服務。我想使用註冊詳細信息在另一個程序中創建用戶。所以基本上他們註冊joomla並同時註冊我的其他程序。我希望在他們驗證他們在joomla中的電子郵件地址後調用另一個腳本。修改Joomla註冊以驗證其他腳本

以升級安全方式執行此操作的最佳方法是什麼?任何人都可以指向我的教程方向或類似的東西。

好,我有我的基本的插件設置:

代碼:

defined('_JEXEC') or die('Access Denied'); 

    class plgUserSugarusercreator extends JPlugin { 

    function onUserAfterSave($user, $isnew, $success, $msg){ 

    } 
} 

我猜病態必須使用onAfterSave方法,但我怎麼判斷什麼時候用戶實際上是激活?我不希望功能火災,如果它的新或只是在每次保存,但只有當用戶被激活。

+0

最好的方法是開發一個插件,在用戶註冊後執行你的代碼。我建議使用插件,因爲最好更改網站行爲,而不是編輯核心文件以實現「升級安全方式」。 http://docs.joomla.org/Portal:Plugin_Development – Lodder

+0

我有我的基本plgin結構設置,但林不知道如何確保我的自定義代碼只會在用戶被激活時觸發。 – user794846

+0

我不認爲有一個onAfterActivate事件。 http://docs.joomla.org/Plugin/Events 顯然你有$ isnew,所以你會知道它並不容易。 我認爲你可能會更好地在保存之前而不是之後這樣做,這樣你就可以知道激活的舊值,然後你可以獲取這些信息,並在成功保存之後將它與新值進行比較 – Elin

回答

0

沒有與激活用戶綁定的事件,並且由於根據配置激活可能以不同方式發生,或根本不需要,所以您剩下另一個選項。

如果用戶最終被激活,他們將登錄。這也可以在點擊激活鏈接時自動實現,感謝JED in authentication上的幾個插件。

因此,您只需在用戶第一次輸入onUserLogin()事件時創建輔助系統登錄。您將需要存儲遠程登錄信息的創建,因此您不要一遍又一遍地重複(可能使用用戶配置文件插件)。此外,您還需要綁定兩個事件:

onUserAfterSave 
onUserAfterDelete 

如果您想讓兩個系統保持同步。