it-swarm-eu.dev

Qual è l'approccio migliore per aggiornare le informazioni utente nella tabella informazioni utente componente personalizzato?

Ho sviluppato un componente personalizzato che memorizza alcune informazioni dell'utente in tabelle separate, voglio archiviare/aggiornare le informazioni dell'utente quando l'utente viene eliminato o aggiornato dalla sezione di amministrazione o dal front-end.

3
lokeshpahal

Dovresti salvare i tuoi dati usando un Plugin Utente - sono molto facili da scrivere. Un esempio è disponibile in Creazione di un plug-in di profilo , sebbene l'esempio possa avere più di quello che ti serve.

Gli eventi in cui verrebbe inserito il tuo codice sono onUserAfterSave e onUserAfterDelete e sono documentati su Plugin/Eventi/Utente . Questi eventi verranno generati quando un utente viene salvato o eliminato nell'amministratore o nel front-end.

Il coraggio del plugin sarebbe questo:

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
        }
    }
}
6
GDP