web-dev-qa-db-fra.com

Je change la valeur de la liste dans le module mais cela ne change pas dans les params

J'ai une liste Joomla! champ de formulaire dans mon XML, cela fonctionne dans le back-end, je peux changer le menu déroulant. Une fois enregistré, l'élément reste le même.

Quand je print_r($params)

La valeur est sortie en tant que "true" et non la valeur Parfois, il apparaît en tant que 1, quelle que soit l'option choisie.

Si je change le PHP j'obtiens un

Ce qui pourrait causer cela étant donné que l'option est sélectionnée correctement lorsque je la visualise dans le back-end.

XML

        <field name="list"
               type="list"
               default=""
               label="MOD_KOY_YOUR_LOGO_LIST"
               description="">
            <option value="0">MOD_MY_MOD_OPTION_LOGO_ONLY</option>
            <option value="1">MOD_MY_MOD_OPTION_TEXT_ONLY</option>
            <option value="2">MOD_MY_MOD_OPTION_TEXT_AND_LOGO</option>
        </field>

Est-il possible que mon utilisation de plusieurs showon= sont la cause du problème? tous semblent fonctionner correctement, mais certains sont imbriqués. Par imbriqué je veux dire si a = 1, alors montrer b. Si b = 1, montrez c.

2
Eoin

Je me suis rendu compte que je devais m'assurer que ma sortie était un nombre, par opposition à vrai/faux ou 0/1 etc. (booléen).

La façon dont j'ai fait cela était de le définir comme intval

$list= intval($params['list']);

Ensuite, je peux appeler $list dans ma déclaration if et il fonctionnera correctement.

J'espère que cela aidera quelqu'un d'autre à l'avenir s'il existe un meilleur moyen de commenter.

1
Eoin