Types d'extension (définitions générales)
From Joomla! Documentation
Joomla! est un système de gestion de contenu comprenant de nombreuses fonctionnalités, mais si vous construisez un site web sous Joomla! et que vous avez besoin de fonctionnalités supplémentaires non disponibles par défaut dans Joomla, vous pouvez facilement ajouter des extensions. Il existe 5 types d'extensions pour Joomla! : les composants, les modules, les plugins, les templates et les langues. Chacune de ces extensions gère des fonctionnalités spécifiques (certaines fonctionnalités natives de Joomla! sont implémentées grâce à l'utilisation d'extensions).
Composants
Les composants sont les extensions les plus larges et les plus complexes ; on peut les décrire comme étant des mini-applications. La plupart des composants contiennent deux parties : une partie site et une partie administration. A chaque fois qu'une page Joomla! est chargée, un composant est appelé pour le rendu du corps de la page. Par exemple, le contenu (com_content) est le composant qui génère l'affichage du contenu ; les utilisateurs peuvent le voir sur le frontend de votre site, et, en tant qu'administrateur, vous pouvez modifier le contenu. Les composants représentent la majeure partie de votre page, car un composant est piloté par un élément de menu et chaque élément de menu exécute un composant.
- Exemples: Contenu (com_content), Bannières (com_banners), Contact (com_contact), Fils d'actualités (com_newsfeeds) et Liens web (com_weblinks)
Gestion des fonctionnalités : Menu haut de l'administration > “Composants” (“Fiches de contact” pour com_contact)
Modules
Les modules sont des extensions plus légères et plus flexibles utilisées pour le rendu des pages. Ces modules sont généralement connus comme étant les boîtes disposées autour d'un composant, par exemple, le module de connexion. Le pied de page (footer) est également un module. Ainsi, vous pouvez décider d'afficher ou de masquer le module de connexion selon l'élément de menu visité par l'utilisateur. Parfois, les modules sont liés aux composants, comme le module "derniers articles" qui est lié au com_content et qui permet d'afficher les liens des éléments de contenu les plus récents. Toutefois, les modules n'ont pas besoin d'être liés à des composants, et ils n'ont, en fait, même pas besoin d'être liés à quoi que ce soit, ils peuvent contenir tout simplement du HTML statique ou du texte.
- Exemples : Bannières (mod_banners), Menu (mod_menu), Qui est en ligne (mod_whosonline)
- Gestion des fonctionnalités : Menu haut de l'administration > “Extensions” > “Gestion des modules”
Plugins
Les plugins sont des extensions plus avancées et sont essentiellement des gestionnaires d'évènements.Lors de l'exécution de n'importe quelle partie de Joomla!, que ce soit le noyau, un module ou un composant, un évènement peut être déclenché. Lors du déclenchement d'un évènement, les plugins qui sont associés à l'application qui gère cet évènement, s'exécutent. Par exemple, un plugin peut être utilisé pour intercepter un article soumis par un utilisateur pour filtrer les mots non désirés.
- Exemples : Contenu - Chargement de module, Editeur - TinyMCE
- Gestion des fonctionnalités : Menu haut de l'administration > “Extensions” > “Gestion des plug-ins”
Templates
Le template correspond au design de votre site web propulsé par Joomla. Grâce à un template, vous pouvez modifier le look et l'aspect de votre site web. Les templates contiennent certains champs dans lesquels un composant (un seul) et des modules (autant que vous le souhaitez) s'afficheront. Les templates sont simples à construire et à personnaliser et ils fournissent un maximum de flexibilité pour vous permettre de styliser votre site.
- Gestion de la fonctionnalité : Menu haut de l'administration > “Extensions” > “Gestion des templates”
Langues
Les extensions les plus basiques sont probablement les langues. Les packs de langue peuvent être inclus soit nativement dans le noyau Joomla, soit intégrés dans une extension. En substance, ces fichiers consistent en des paires de clé/valeur, ces paires fournissent une traduction pour les chaines de texte statiques affectées au code source de Joomla. Ces packs de langues affecteront le frontend comme le backend d'un site. Remarque : ces packs de langue incluent également un méta-fichier XML qui décrit la langue.
- Gestion de la fonctionnalité : Menu haut de l'administration > “Extensions” > “Gestion des langues”
Libraries
Libraries are standalone PHP snippets that Joomla uses. Note nearly all of Joomla's core code is available as a library called "src". All composer libraries are installed as a library "vendor" (such as PHPMailer). Many of the most popular 3rd party extensions in Joomla use libraries to reuse common functionality across their components.
File
The File extension type is used to install individual files into Joomla into a custom directory. There are no examples in Joomla Core of this type and it is the least used type however it can be used for example to place CLI scripts into the cli directory within Joomla or to place template overrides into a specific directory.
Packages
Packages are simply a group of any of the above types of extensions. A common use of a package would be to ship a template that also bundles a system plugin. Or a component that also installs a library it uses. In Joomla many language packs install as a package so the frontend and backend languages can be installed independently.
L'installation d'une extension
Il existe 4 méthodes d'installation d'une extension. Vous pouvez télécharger une extension, l'installer à partir d'un répertoire, l'installer à partir d'une URL ou l'installer à partir du web.