Joomla.it Forum

Joomla! 3 => Joomla! 3 => : mlacecilia 08 May 2020, 19:25:30

: Cambio gruppo utente a runtime
: mlacecilia 08 May 2020, 19:25:30
Sto sviluppando un sito in cui gli utenti vengono promossi/declassati in base ad una data di scadenza dell'abbonamento, accedendo perciò a diverse voci di menu a seconda dello status attivo/scaduto.
Ho aggiunto dopo il login uno script PHP che confronta la data corrente con la scadenza dell'abbonamento utente e modifica direttamente nella usermap il gruppo di appartenenza.
Tutto funziona bene, tranne che il menu resta quello attivo prima del cambio di gruppo fino alla chiusura della sessione.
Al nuovo accesso, ovviamente, viene mostrato il menu corretto.
Immagino che il menu venga configurato internamente in base ai dati di sessione appena avvenuto il login, per cui la mia modifica diretta non ha effetto finché non viene generata una nuova sessione.
C'è un modo di forzare il refresh del menu?
: Re:Cambio gruppo utente a runtime
: andreasuriani 19 May 2020, 11:33:52
Ciao,
in che modo hai fatto la modifica?

Hai uno script esterno? Un plugin? Hai creato un componente?

Io proverei il refresh della cache.
Occhio però che Joomla è balordo su certe cose, devi fare come dice lui :D

https://docs.joomla.org/Cache (https://docs.joomla.org/Cache)

: Re:Cambio gruppo utente a runtime
: mlacecilia 31 Aug 2020, 18:43:07

Scusa il ritardo...Ho semplicemente incorporato codice PHP nella home, codice che si attiva se l'utente ha fatto il login.
Lo script funziona bene, nel senso che il gruppo viene modificato, ma al refresh della pagina il menù viene ricostruito in base al vecchio gruppo.
Solo dopo il logout, al nuovo login il menù viene generato secondo il nuovo gruppo.
Grazie per il suggerimento. Appena possibile provo ad applicare il refresh della cache e ti dico se questo risolve il problema.
: Re:Cambio gruppo utente a runtime
: renzo973 31 Aug 2020, 23:29:01
non sono un programmatore e magari dico un'eresia, ma quando gli modifichi il menù non puoi forzare anche il logout dell'utente? tipo gli fai scadere la sessione?