Type de champ de formulaire menuitem
From Joomla! Documentation
Le type de champ de formulaire menuitem fournit une liste déroulante regroupant des éléments de menu disponibles dans votre site Joomla.

- type (obligatoire) doit être "menuitem".
- name (nom) (obligatoire) est le nom unique du champ.
- label (étiquette) (obligatoire) (traduisible) est le titre descriptif du champ.
- default (par défaut) (facultatif) est l'élément de menu par défaut. Notez qu'il s'agit du numéro ItemID de l'élément de menu.
- description (facultatif) (traduisible) est le texte qui s'affichera dans une info-bulle lorsque l'utilisateur passe sa souris sur la liste déroulante.
- published (publié) (facultatif) détermine si les éléments de menu pris en compte sont ceux répertoriés ou uniquement ceux publiés. Si '0', alors il s'agira de tous les éléments de menu listés. Si '1' alors il s'agira uniquement des éléments de menu publiés. Vous pouvez également utiliser des valeurs séparées par une virgule comme par exemple '1,2'.
- menu_type (optional) filters by the
menutypevalue in database table#__menuor rather the value of form fieldMenu Typein edit form of a menu. - client_id (optional) filters by the
client_idvalue in database table#__menu. '0' for site menu items. '1' for administrator menu items. The default value is '0'. - language (optional) filters by the
languagevalue in database table#__menu(language tags). You can also use comma separated values like 'en-GB,de-DE'.
Pour ajouter des lignes supplémentaires avec des chaînes traduisibles (comme "Select" ou "Default"), il suffit d'ajouter une option au XML. Par exemple :
<option value="">JDEFAULT</option>
Exemple de définition de champ XML :
<field name="mymenuitem" type="menuitem" default="45" label="Select a menu item" description="Select a menu item" />
Résolution d'une URL
Le type de champ de formulaire menuitem donne l'ID du lien de menu sélectionné. Pour obtenir une URL optimisée pour les moteurs de recherche en utilisant l'ID, utilisez JRoute :
JRoute::_("index.php?Itemid={$id}");