En développement de module, j'utilise un champ pour un élément de menu (à partir de ces documents https://docs.joomla.org/Menuitem_form_field_type ). Je peux travailler à montrer l'élément de menu dans le XML:
<field name="menuitem1" type="menuitem" default="45" label="Select a menu item" description="Select a menu item" />
Je peux alors faire écho à ceci pour le frontend:
<a href="<?php echo $params->get('menuitem1');?>" >
Mais cela ne montre que l'ID de cet élément de menu. Comment puis-je le définir pour qu'il corresponde à l'URI réel de l'élément de menu sélectionné?
Vous pouvez obtenir l'URL en utilisant les éléments suivants:
$itemid = $params->get('menuitem1', 0);
$app = JFactory::getApplication();
$menu = $app->getMenu();
$link = $menu->getItem($itemid)->link;
echo JRoute::_($link);
$link
vous fournira une URL non-SEF. Comme indiqué ci-dessus, vous pouvez utiliser JRoute
pour le convertir en URL SEF.
J'espère que cela t'aides