メールのアクティブ化時のみのプラグインイベント


8

URL https://docs.joomla.org/Plugin/Events/User/enでJoomla Userプラグインイベントを参照しているだけです

onUserLogin
onUserAuthenticate
onUserBeforeSave

メールアクティベーションリンクからメールアドレスを検証する場合にのみ、何かを行うのに役立つのはどれですか。

注:電子メールのアクティブ化の期間中、SOAPサーバーに接続していくつかのものを検証し、アカウントのアクティブ化のみを許可する必要があります。

回答:


3

この方法で行うことができます:ユーザープラグイン(認証プラグインではなく、これは別のものです)を作成します。そのプラグインにonUserBeforeSaveコールバックを配置すると、アカウントが次のようにアクティブ化されているかどうかを確認できます。

class PlgUserCheckmail extends JPlugin
{
    /**
    * Application object
    *
    * @var    JApplicationCms
    * @since  3.2
    */
    protected $app;

    /**
    * Database object
    *
    * @var    JDatabaseDriver
    * @since  3.2
    */
    protected $db;


    public function onUserBeforeSave($oldUser, $isNew, $newUser)
    {
        if(!$isNew)
        {
            if(isset($oldUser['activation']) &&
               !empty($oldUser['activation']) &&
               isset($newUser['activation']) &&
               empty($newUser['activation']))
            {
                // These commands in here are only triggered if the user is activating his account
            }
        }
    }
}

これが役立つことを願って=)

[編集]:ああ、私はほとんど忘れていました:このプラグインはplugins / userディレクトリにあります!


ありがとう。試してみます。不承認の場合にメンバーをアクティブにしないためにfalseを返す必要がありますか?
Malaiselvan 2016年

これが機能しないという以前のコメントを削除しました-愚かなバグがありました。それは機能し、素晴らしい機能を発揮します。先端をありがとう。:)
Simba 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.