Développement d'un composant MVC - Ajout d'un type de menu pour la partie publique du site
From Joomla! Documentation
< J3.x:Developing an MVC Component
Les articles de cette série
Ajout d'un type de menu à la partie site
Ajout d'un modèle à la partie site
Ajout d'une requête de variable dans le type de menu
Utilisation de la base de données
Backend de base
Ajout de la gestion des langues
Ajout d'actions en backend
Ajout de décorations pour le backend
Ajout de vérifications
Ajout de catégories
Ajout de configuration
Ajout d'un fichier script installation/désinstallation/mise à jour
Ajout d'un formulaire de frontend
Utilisation du filtre de langues
- Ajouter une fenêtre modale
- Ajout d'associations
- Ajout de Checkout
- Ajout d'un filtre
- Ajout de niveaux
- Ajout de versions
- Ajout de tags
- Ajout d'accès
- Ajout d'un processus de traitement
- Ajout d'un cache
- Ajout d'un fil d'actualité
Ajout d'un serveur de mise à jour
Ceci est une série qui regroupe plusieurs articles pour devenir un didacticiel sur la façon de développer un Composant pour Joomla! suivant le principe Modèle-Vue-Contrôleur.
Commencez avec l'introduction, et naviguez dans les articles de cette série soit à l'aide des boutons de navigation en bas des articles, soit grâce au menu de droite : Les articles de cette série.
Notes
- Ce didacticiel fait partie de la série de didacticiels sur le Développement d'un Composant MVC pour Joomla! 3.x. Vous êtes invité à lire les articles précédents de cette série avant de lire celui-ci.
- Vous pouvez suivre les étapes ci-dessous pour ajouter un menu à votre composant "Hello World!" ou vous pouvez directement télécharger l'archive
- Vous pouvez visualiser une vidéo associée à cette étape sur Étape 3, Ajout d'un élément de menu.
Dans cet article, nous verrons comment ajouter un élément de menu dans un composant de base pour Joomla. Dans le cadre de cet exemple, nous allons poursuivre notre travail sur le composant Hello World!.
Il existe différentes façons de mettre à jour un composant Joomla. Comme pour le précédent didacticiel, nous allons nous concentrer sur la seconde option.
1 | Ajouter manuellement les fichiers dans <path_to_joomla>/ |
2 | Mettez à jour à l'aide du gestionnaire d'extension Joomla! et le répertoire d'origine, non compressé, utilisé lors de l'installation initiale du composant. |
3 | Mettez effectivement à jour à l'aide du gestionnaire d'extension de Joomla! et un Serveur de mise à Jour. |
Pour ajouter un élément de menu, vous devrez vous rendre vers com_helloworld, qui est le répertoire d'origine créé pour notre composant. Vous devez utiliser la structure de mise à jour du répertoire en partant du précédent didacticiel. À l'aide de votre gestionnaire de fichiers préféré, créez ou mettez à jour les fichiers ci-dessous. Que ce soit pour une création ou encore une mise à jour des fichiers, ajoutez le code source pour chaque fichier se trouvant dans Détails du fichier.
1 | Créer : default.xml | <path_to_com_helloworld/site/views/helloworld/tmpl/default.xml |
2 | Mettre à jour : helloworld.xml | <path_to_com_helloworld/helloworld.xml |
Mettre à jour le composant
Pour mettre à jour le composant Hello World! dans votre site Joomla, veuillez suivre les mêmes étapes que pour : l'installation initiale.
Avec le composant correctement mis à jour, nous allons pouvoir lui ajouter un élément de menu. Ceci va nous permettre d'accéder à notre composant par un menu plutôt que d'avoir à se souvenir de ce qui a été saisi dans la barre d'adresse. Ceci se fera en utilisant le gestionnaire de menus de Joomla!.
- À l'aide de votre navigateur web préféré, accédez au panneau d'administration de votre site Joomla. L'adresse devrait être <votreSite>/joomla/administrator/index.php. Pour l'exemple, nous allons naviguer vers localhost/joomla/administrator/index.php.
- Ajoutez un nouvel élément de menu en cliquant sur Menus → <menu existant> → "Ajouter un lien de menu". Un nouvel écran s'affiche.
- Dans le champ "Titre de menu", entrez "Hello World!"
- Dans le champ "Type de lien de menu", cliquez sur le bouton "Sélection" et chosissez Hello World! → Hello World à partir de l'écran de sélection.
- Cliquez sur "Enregistrer et Fermer".
Vous devriez maintenant pouvoir accéder au composant par le menu que vous venez de créer.
Détails du fichier
site/views/helloworld/tmpl/default.xml
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE">
<message>COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC</message>
</layout>
</metadata>
helloworld.xml
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.0" method="upgrade">
<name>Hello World!</name>
<!-- The following elements are optional and free of formatting constraints -->
<creationDate>January 2018</creationDate>
<author>John Doe</author>
<authorEmail>john.doe@example.org</authorEmail>
<authorUrl>http://www.example.org</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</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>Description of the Hello World component ...</description>
<update> <!-- Runs on update; New since J2.5 -->
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>
<!-- Site Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /site/ in the package -->
<files folder="site">
<filename>index.html</filename>
<filename>helloworld.php</filename>
<filename>controller.php</filename>
<folder>views</folder>
</files>
<administration>
<!-- Administration Menu Section -->
<menu link='index.php?option=com_helloworld'>Hello World!</menu>
<!-- Administration Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /admin/ in the package -->
<files folder="admin">
<!-- Admin Main File Copy Section -->
<filename>index.html</filename>
<filename>helloworld.php</filename>
<!-- SQL files section -->
<folder>sql</folder>
</files>
</administration>
</extension>
Explications du code
Dans le cas où vous seriez désireux de savoir pourquoi cela fonctionne de cette façon.
default.xml
Note - Pour le moment, les chaînes ne seront pas traduites dans l'interface d'administration. Dans un prochain article, nous verrons comment effectuer la traduction.
helloworld.xml
<version>0.0.3</version>
Met à jour le numéro de version.
Contenu du composant
À ce stade du didacticiel, votre composant doit contenir les fichiers suivants :
1 | helloworld.xml | ceci est un fichier (manifest) XML qui va indiquer à Joomla! la façon d'installer notre composant. |
2 | site/helloworld.php | ceci est le point d'entrée pour le composant "Hello World!". |
3 | site/index.html | empêche le serveur web de lister le contenu du répertoire. |
4 | site/controller.php | fichier représentant le contrôleur |
5 | site/views/index.html | empêche le serveur web de lister le contenu du répertoire. |
6 | site/views/helloworld/index.html | empêche le serveur web de lister le contenu du répertoire. |
7 | site/views/helloworld/view.html.php | fichier représentant la vue |
8 | site/views/helloworld/tmpl/index.html | empêche le serveur web de lister le contenu du répertoire. |
9 | site/views/helloworld/tmpl/default.php | la vue par défaut |
10 | site/views/helloworld/tmpl/default.xml | fichier ajoutant un élément de menu |
11 | admin/index.html | empêche le serveur web de lister le contenu du répertoire. |
12 | admin/helloworld.php | ceci est le point d'entrée pour l'administration du composant "Hello World!". |
13 | admin/sql/index.html | empêche le serveur web de lister le contenu du répertoire. |
14 | admin/sql/updates/index.html | empêche le serveur web de lister le contenu du répertoire. |
15 | admin/sql/updates/mysql/index.html | empêche le serveur web de lister le contenu du répertoire. |
16 | admin/sql/updates/mysql/0.0.1.sql | fichier permettant d'initialiser le schéma de version du composant com_helloworld. |