J3.x

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
Revision as of 16:14, 15 November 2018 by Lorangerart (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎العربية • ‎中文(台灣)‎
Joomla! 
3.x
Didacticiel
Développement d'un composant MVC

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

  1. Ajout d'ACL

Ajout d'un fichier script installation/désinstallation/mise à jour

Ajout d'un formulaire de frontend

  1. Ajout d'une image
  2. Ajout d'un plan
  3. Ajout d'AJAX
  4. Ajout d'un alias

Utilisation du filtre de langues

  1. Ajouter une fenêtre modale
  2. Ajout d'associations
  3. Ajout de Checkout
  4. Ajout d'un filtre
  5. Ajout de niveaux
  6. Ajout de versions
  7. Ajout de tags
  8. Ajout d'accès
  9. Ajout d'un processus de traitement
  10. Ajout d'un cache
  11. Ajout d'un fil d'actualité

Ajout d'un serveur de mise à jour

  1. Adding Custom Fields
  2. Upgrading to Joomla4



Ceci est une série qui regroupe plusieurs articles pour devenir un didacticiel sur la façon de développer un Composant pour Joomla! Joomla 3.x 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

  • Vous pouvez suivre les étapes ci-dessous pour ajouter un menu à votre composant "Hello World!" ou vous pouvez directement télécharger l'archive

Ajout d'un élément de menu au composant

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.