2017-12-14 3 views
0

Mein Code in Benutzern File-Lage nicht onUserBeforeSave Ereignis in joomla 3

Ich versuche zu onUserBeforeSave, aber in diesem Fall zu treffen, Joomla-Code ausgeführt wird, kontrolliert nicht zu meinem Code kommen:

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"],''); 

    } 
} 

Antwort

1

Der erste Schritt beim Debuggen dieses Problems besteht darin, sicherzustellen, dass Ihr Plugin wirklich geladen wird. Fügen Sie zuerst einen ganz am Anfang hinzu und sehen Sie, ob es wirklich stirbt. Wenn das der Fall ist, bedeutet dies, dass Joomla wirklich dein Plugin lädt (wenn nicht, dann überprüfe, ob dein Plugin aktiviert ist, überprüfe auch, ob das System-Cache-Plugin für alle Fälle deaktiviert ist).

Der nächste Schritt besteht darin, sicherzustellen, dass Joomla Ihr Plugin-Objekt instanziiert, indem Sie eine construct-Methode hinzufügen und dann eine die('In constructor'); in dieser Funktion hinzufügen. Wenn diese Nachricht nicht angezeigt wird, bedeutet dies, dass Ihr Klassenname nicht mit dem in Ihrer XML-Manifestdatei definierten Klassennamen übereinstimmt.

Der letzte Schritt ist zu überprüfen, ob der onUserBeforeSave wirklich ausgelöst wird, indem Sie am Anfang der Funktion einen die('In onUserBeforeSave'); hinzufügen. Wenn es nicht ausgelöst wird, dann versuche die Datei libraries/src/User/User.php zu debuggen (ich gehe davon aus, dass du Joomla 3.8.x benutzt), da das Event von dort ausgelöst wird. Wenn es ausgelöst wird, bedeutet dies, dass Ihr Code funktioniert, aber keine Wirkung hat.

Verwandte Themen