it-swarm.dev

Variabile dello stato di accesso di Joomla nei moduli

Come posso accedere alle mie variabili di stato nei moduli Joomla?

Di solito lo faccio come

$app = JFactory::getApplication();
$variable = $app->getUserState('com_mycomponent.view.filter.variable' ,'default');

Ma nel modulo il risultato sarà vuoto o in questo caso sarà il valore predefinito.

Nel modulo è presente un campo di selezione. Devo memorizzare l'input della selezione, per mostrare nuovamente il valore selezionato dopo aver inviato la pagina. Senza questo, il campo di selezione verrà resettato dopo aver inviato la pagina.

5
Perino

Il tuo codice è corretto - L'ho testato su un modulo personalizzato, in Joomla 3. Assicurati di avere i cookie abilitati. Prova questo nel tuo modulo e vedrai che funziona:

$app = JFactory::getApplication();
$app->setUserState('com_mycomponent.view.filter.variable' ,'new state');
$variable = $app->getUserState('com_mycomponent.view.filter.variable' ,'default');
echo $variable;

Dovrebbe generare ' nuovo stato ' (lo fa nel mio ambiente di test). In caso contrario, è possibile che i cookie siano disabilitati, le variabili di sessione disabilitate sul server o qualcos'altro che non va nella tua installazione ...

Se genera "nuovo stato", verifica che tu stia impostando lo stato prima di tentare di ottenerlo. Vedi qui per maggiori informazioni: http://docs.joomla.org/How_to_use_user_state_variables

6
Sam