2017-12-14 4 views
0

Joomlaの3にonUserBeforeSaveイベントを打つことができ、私は onUserBeforeSave にしようとしていますが、このイベントでは、Joomlaのコードが実行され、制御は私のコードに来ていません。ないユーザーファイル -</p> <p>で私のコード

class PlgUserotp extends JPlugin 
{ 

public function onUserBeforeSave($oldUser,$isnew,$newuser) 
    { 

     $errors = NULL; 
     $phone_number = NULL; 

     foreach ($newuser as $key => $value) 
     { 

      if($key=="username") 
       $username = $value; 
      elseif ($key=="email1") 
       $email = $value; 
      elseif ($key=="password1") 
       $password = $value; 
      else 
       $extra_data[$key]=$value; 
     } 
      //echo $username . $email .$password; 

    $this->startVerificationProcess($username,$email,$errors,$phone_number,$password,$extra_data); 
    //MoCurlOTP::mo_send_otp_token('EMAIL',$newuser["email1"],''); 

    } 
} 

答えて

1

この問題をデバッグするための最初の手順は、プラグインが実際にロードされていることを確認することです。最初にを追加して、それが本当に死ぬかどうかを確認してください。そうであれば、Joomlaは本当にあなたのプラグインをロードしていることを意味します(プラグインが有効であることを確認し、System - cacheプラグインが無効になっていることを確認してください)。

次のステップは、Joomlaがプラグインオブジェクトをインスタンス化していることを確認することです。これは、constructメソッドを追加してから、その関数にdie('In constructor');を追加して行います。このメッセージが表示されない場合は、クラス名がXMLマニフェストファイルで定義されているクラス名と一致していないことを意味します。

最後のステップでは、機能の冒頭にdie('In onUserBeforeSave');を追加して、onUserBeforeSaveが実際にトリガーされているかどうかを確認します。それがトリガされていない場合は、このイベントがそこからトリガされるので、ファイルlibraries/src/User/User.php(私はあなたがJoomla 3.8.xを使用していると仮定しています)をデバッグしてみてください。トリガされている場合、これはコードが機能していることを意味しますが、効果はありません。

関連する問題