J'ai développé un composant personnalisé qui stocke certaines informations utilisateur dans des tables séparées. Je souhaite stocker/mettre à jour les informations utilisateur lorsque l'utilisateur est supprimé ou mis à jour à partir de la section admin ou du frontal.
Vous devriez sauvegarder vos données en utilisant un plugin utilisateur - ils sont très faciles à écrire. Vous trouverez un exemple à l'adresse Création d'un plugin de profil , bien que cet exemple puisse en contenir plus que nécessaire.
Les événements dans lesquels votre code entrerait sont onUserAfterSave
et onUserAfterDelete
et sont documentés à l'emplacement Plugin/Events/User . Ces événements se déclenchent lorsqu'un utilisateur est enregistré ou supprimé dans l'admin ou le front-end.
Les entrailles du plugin serait la suivante:
defined('_JEXEC') or die;
class PlgUserMyPlugin extends JPlugin
{
protected $app;
protected $db;
public function onUserAfterDelete($user, $success, $msg) {
if (!$success)
return false;
$query = $this->db->getQuery(true)
->delete($this->db->quoteName('#__mytable'))
->where($this->db->quoteName('userid') . ' = ' . (int) $user['id']);
$this->db->setQuery($query)->execute();
return true;
}
public function onUserAfterSave($user, $isnew, $success, $msg) {
if (!$success)
return false;
// Update your table here
if ($isnew) {
// New User
}else{
// Existing User
}
}
}