web-dev-qa-db-fra.com

Supprimer l'option archivée du champ d'état

J'utilise le champ de formulaire ci-dessous dans le fichier filter_mypage.xml de mon composant personnalisé.

<field
    name="state"
    type="status"
    label="JOPTION_SELECT_PUBLISHED"
    onchange="this.form.submit();">
      <option value="">JOPTION_SELECT_PUBLISHED</option>
</field>

Par défaut, cela affiche les options Trashed, Unpublished, Published, Archived, All

Je ne veux pas l'option Archived et je veux le retirer de la liste. Est-ce possible?

1
Malaiselvan

Vous pouvez soit créer vos propres options (voir réponse de Hasanalsamra) ou utiliser l'option filter du champ d'état:

<field
    name="state"
    type="status"
    filter="*,0,1,-2"
    label="JOPTION_SELECT_PUBLISHED"
    onchange="this.form.submit();"
    >
    <option value="">JOPTION_SELECT_PUBLISHED</option>
</field>

Pour référence:

* = tous
0 = non publié
1 = publié
2 = archivé
- 2 = mis à la corbeille

Vous trouverez un exemple de cette utilisation dans le composant principal du backend, com_menu (\ administrateur\composants\com_menus\modèles\forms\filter_items.xml).

4
fruppel

Oui, vous pouvez faire vos propres options, voici comment:

<field
    name="state"
    type="list"
    label="JOPTION_SELECT_PUBLISHED"
    onchange="this.form.submit();">
    <option value="">JOPTION_SELECT_PUBLISHED</option>
    <option value="-2">JTRASHED</option>
    <option value="0">JUNPUBLISHED</option>
    <option value="1">JPUBLISHED</option>
    <option value="*">JALL</option>
</field>
3
TheNextStage