Développement d'un composant MVC - Ajout d'un type de menu pour la partie publique du site
From Joomla! Documentation
< J4.x:Developing an MVC Component
This article is part of the tutorial "Developing an MVC Component for Joomla 4.x". It is intended to be a follow-along programming tutorial, so if you have not read the previous parts of the tutorial you are encouraged to do so.
Dans cet article, nous allons voir comment ajouter un élément de menu à notre composant Hello World. Il s'agit d'un processus très simple, dans lequel nous créons un fichier de configuration de menu à côté de notre modèle de page avec un nom correspondant. Ce fichier est ensuite lu par le système de menu de Joomla ! et notre page devient une cible de lien disponible.
Créons le fichier de configuration de notre modèle "Hello World" :
1 | Créer : site/tmpl/hello/default.xml | La description de l'élément de menu pour le modèle de page "Hello". |
2 | Mettre à jour : helloworld.xml | Nouvelle version du manifeste du composant |
site/tmpl/hello/default.xml
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="Hello World!">
<message><![CDATA[My first Joomla! page]]></message>
</layout>
</metadata>
helloworld.xml
Et comme toujours, nous mettons à jour le fichier manifeste de notre extension avec le nouveau numéro de version.
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="4.0" method="upgrade">
<name>Hello World</name>
<!-- The following elements are optional and free of formatting constraints -->
<creationDate>December 2020</creationDate>
<!-- Dummy author, feel free to replace anywhere you see it-->
<author>John Smith</author>
<authorUrl>https://smith.ca</authorUrl>
<copyright>John Smith</copyright>
<license>GPL v3</license>
<!-- The version string is recorded in the components table -->
<version>0.0.3</version>
<!-- The description is optional and defaults to the name -->
<description>
A hello world component!
</description>
<!-- This is the PHP namespace under which the extension's
code is organised. It should follow this format:
Vendor\Component\ComponentName
"Vendor" can be your company or your own name
The "ComponentName" section MUST match the name used
everywhere else for your component. Whatever the name of
this XML file is, the namespace must match (ignoring CamelCase).
-->
<namespace path="src/">JohnSmith\Component\HelloWorld</namespace>
<files folder="site/">
<folder>src</folder>
<folder>tmpl</folder>
</files>
<administration>
<!-- The link that will appear in the Admin panel's "Components" menu -->
<menu link="index.php?option=com_helloworld">Hello World</menu>
<!-- List of files and folders to copy, and where to copy them -->
<files folder="admin/">
<folder>services</folder>
<folder>src</folder>
<folder>tmpl</folder>
</files>
</administration>
</extension>
Archivez en zip et installez votre extension comme précédemment. Une fois que vous l'avez fait, développez la section "Menus" du menu de gauche, et cliquez sur l'icône du signe plus à côté du Menu principal. Vous accéderez ainsi à l'écran "Nouvel élément de menu".
Il existe de nombreuses options ici, mais les deux qui nous intéressent sont le nom du lien et son type. Donnez au lien de menu un nom tel que "Hello World", puis sélectionnez le type d'élément de menu. Vous verrez une liste de tous les types d'éléments de menu disponibles, classés par catégorie.
Vous devriez voir notre composant "Hello World" dans une nouvelle catégorie. Développez cette catégorie et notre nouveau type de lien devrait apparaître. Sélectionnez-le, puis enregistrez l'élément de menu. Rendez-vous sur le site public de votre installation Joomla ! et vous devriez voir le lien "Hello World" apparaître dans le menu principal. En cliquant dessus, vous accéderez à la page "Hello World" que nous avons créée dans le dernier article.
Voyez comme c'était facile !