web-dev-qa-db-fra.com

Variable d'état d'accès Joomla dans les modules

Comment puis-je accéder à mes variables d'état dans les modules Joomla?

D'habitude je le fais comme

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

Mais dans le module, le résultat sera vide ou, dans ce cas, ce sera la valeur par défaut.

Dans le module, il y a un champ de sélection. Je dois stocker l'entrée de la sélection pour afficher à nouveau la valeur sélectionnée après avoir soumis la page. Sans cela, le champ de sélection sera réinitialisé après la soumission de la page.

5
Perino

Votre code est correct - je l’ai testé sur un module personnalisé, dans Joomla 3. Veuillez vous assurer que les cookies sont activés. Essayez ceci dans votre module, et vous verrez que cela fonctionne:

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

Il devrait générer ' nouvel état ' (cela se produit dans mon environnement de test). Si ce n'est pas le cas, il se peut que les cookies soient désactivés, les variables de session désactivées sur votre serveur ou un problème avec votre installation ...

Si le résultat est "nouvel état", vérifiez que vous avez bien défini l'état avant d'essayer de l'obtenir. Voir ici pour plus d'informations: http://docs.joomla.org/How_to_use_user_state_variables

6
Sam