Buon giorno,
sono nuovo sia di questo forum, sia di Yii quindi scusatemi in anticipo per la domanda forse semplice.
Ho fatto un po' di ricerche ma non sono riuscito a trovare la risposta.
Avrei un problema di questo tipo, io ho nel database una tabella utenti con un campo chiamato lang dove ho specificato il codice della lingua e vorrei che dopo che hanno effettuato l'accesso il sistema prenda la lingua dell'utente.
Ho letto la guida e ho trovato questi due metodi:
public string getLanguage()
public void setLanguage(string $language)
così ho provato a mettere nel SiteController nel login il seguente codice:
$user = new User(Yii::app()->user->getId());
Yii::app()->setLanguage( $user->lang );
ma non funziona funziona solo se lo metto nel controller quando genera l'index, ma così facendo funziona solo per quella pagina e non per tutta l'app.
Spero di essermi spiegato, vi ringrazio in anticipo per la pazienza e l'eventuale risposta.
Ciao!
Page 1 of 1
Gestione Delle Lingue Per Utente
#2
Posted 17 February 2013 - 06:52 AM
Ad ogni richiesta devi eseguire il comando:
Che però ti consiglio di recuperare dalla sessione per non appesantire il carico del database:
Poi devi preoccuparti di come recuperare il linguaggio quando non è in sessione:
Quindi imposti sempre la lingua con questa priorità: se non c'è la sessione, la recuperi dall'utente corrente, altrimenti dalla sessione:
Ho scritto questo codice "a sentimento" senza provarlo. Facci sapere se funziona correttamente.
Yii::app()->setLanguage( $user->lang );
Che però ti consiglio di recuperare dalla sessione per non appesantire il carico del database:
Yii::app()->setLanguage( Yii::app()->session['_lang'] );
Poi devi preoccuparti di come recuperare il linguaggio quando non è in sessione:
$user = new User(Yii::app()->user->getId()); Yii::app()->setLanguage( $user->lang );
Quindi imposti sempre la lingua con questa priorità: se non c'è la sessione, la recuperi dall'utente corrente, altrimenti dalla sessione:
if(isset(Yii::app()->session['_lang'])) {
Yii::app()->setLanguage( Yii::app()->session['_lang'] );
} else {
$user = new User(Yii::app()->user->getId());
Yii::app()->setLanguage( $user->lang );
}
Ho scritto questo codice "a sentimento" senza provarlo. Facci sapere se funziona correttamente.
#3
Posted 19 February 2013 - 05:23 PM
Ho incluso il tuo codice nel metodo init() di controller.php così non ho dovuto specificarlo per ogni controller e sembra funzionare benissimo.
Grazie!
Grazie!
Share this topic:
Page 1 of 1

Help












