1
Gestione utenti e community / Re:Email "non" unica in Joomla 1.5
« il: 17 Giu 2009, 11:52:18 »Sono d'accordo con tutti coloro che hanno correttamente suggerito di non eliminare il vincolo sull'email unica, sostenendo la loro tesi con validi motivi: lo spam, il recovery password che invia la nuova password all'email dell'utente.
Ciononostante se 1diaboliko84 desidera rimuovere questo controllo credo sia lecito farglielo fare e forse posso dargli una mano
Il codice che esegue il controllo dell'email fa parte del core di Joomla: modificarlo porterà la tua versione ad un branch. Questo significa che per ogni aggiornamento di Joomla dovrai rimodificare correttamente il codice oppure perderai la tua modifica (altro motivo a sfavore)
Cmq, il controllo sull'email unica è fatto nella classe JTableUser nel metodo check.
Il relativo file è libraries/joomla/database/table/user.php.
Circa alla riga 183 troverai questo codice :Codice: [Seleziona]// check for existing email
$query = 'SELECT id'
. ' FROM #__users '
. ' WHERE email = '. $this->_db->Quote($this->email)
. ' AND id != '. (int) $this->id
;
$this->_db->setQuery( $query );
$xid = intval( $this->_db->loadResult() );
if ($xid && $xid != intval( $this->id )) {
$this->setError( JText::_( 'WARNREG_EMAIL_INUSE' ) );
return false;
}
Credo che basti commentarlo.
Non ho trovato altri pezzi di codice che verifichino l'univocità dell'email durante il processo di registrazione
Ciao
Diego
Salve Diego,
io ho provato e hai ragione, funziona, ma non va commentato tutto quel frammento di codice, ma solo la parte da if a return false, cosi':
Codice: [Seleziona]
// check for existing email
$query = 'SELECT id'
. ' FROM #__users '
. ' WHERE email = '. $this->_db->Quote($this->email)
. ' AND id != '. (int) $this->id
;
$this->_db->setQuery( $query );
$xid = intval( $this->_db->loadResult() );
/* if ($xid && $xid != intval( $this->id )) {
$this->setError( JText::_( 'WARNREG_EMAIL_INUSE' ) );
return false;
}
*/
Ciao
Antonio Fasulo