Difference between revisions of "Extension types (general definitions)"

From Joomla! Documentation

 
(40 intermediate revisions by 13 users not shown)
Line 1: Line 1:
Joomla! already is a rich featured content management system but if you're building a website with Joomla! and you
+
<noinclude><languages /></noinclude>
need extra features which aren't available in Joomla! by default, you can easily extend it with extensions. There are
 
five types of extensions for Joomla!: Components, Modules, Plugins, Templates, and Languages. Each of these extensions handle specific functionality.
 
  
[[Image:Extensions.jpg]]
+
{{RightTOC}}<translate><!--T:1-->
 +
Joomla! already is a rich featured content management system, but if you're building a website with Joomla! and you need extra features which aren't available in Joomla! by default, you can easily extend it with extensions. There are five common types of extensions for Joomla!: Components, Modules, Plugins, Templates, and Languages. There are three others: Packages, Files and Libraries. Each of these extensions handle specific functionality (many built-in features of Joomla! are implemented using extensions).</translate>
  
[[Image:ExtensionInstallation.jpg|Administrator Installation]]
+
[[Image:Extensions-<translate><!--T:2-->
 +
en</translate>.jpg]]
  
== Components ==
+
<translate>
 +
== [[S:MyLanguage/Component|Components]] == <!--T:3-->
 +
</translate>
  
A component is the largest and most complex extension of them all, they can be seen as mini-applications. There are two parts in a component, an administrator part and a site part. Every time a Joomla page loads, a component is called to render the main page body. For example, com_registration is the component which handles user registration, users can sign up as a member at the frontend of your site and, as an administrator, you can edit these users. Components are the major portion of your page because a component is driven by a menu item and every menu item runs a component.
+
<translate>
 +
<!--T:4-->
 +
Components are the largest and most complex extensions of them all; they can be seen as mini-applications. Most components have two parts: a site part and an administrator part. Every time a Joomla! page is requested, ''one'' component is called to render the body of the page. For example, Content (com_content) is the component which handles the display of content; users can view at the frontend of your site and, as an administrator, you can edit the content. Components are the major portion of your page because a component is driven by a menu item and every menu item runs a component.
 +
</translate>
  
''For example:'' com_content, com_registration
+
*<translate>
 +
<!--T:5-->
 +
Examples: Content (com_content), Banners (com_banners), Contacts (com_contact), News Feeds (com_newsfeeds) and Web Links (com_weblinks)
 +
</translate>
 +
*<translate>
 +
<!--T:6-->
 +
Management feature: {{rarr|Admin head menu,Components,Contacts (for com_contact)}}
 +
For a more detailed description of components, [[S:MyLanguage/Absolute_Basics_of_How_a_Component_Functions|see this link here]].
 +
</translate>
  
''Admin head menu'' > “Components”
+
<translate>
  
 +
== [[S:MyLanguage/Module|Modules]] == <!--T:7-->
 +
</translate>
  
== Modules ==
+
<translate>
 +
<!--T:8-->
 +
Modules are more lightweight and flexible extensions used for page rendering.  These modules are mostly known as the “boxes” that are arranged around a component, for example: the login module. The Footer is a module. Modules are assigned per menu item. So, you can decide to show or hide the login module depending on which menu item the user is viewing. Sometimes modules are linked to components such as the “Latest News” module which links to the com_content and displays links to the newest content items. However, modules do not need to be linked to components, as a matter of fact they don't even need to be linked to anything and can be just static HTML or text.
 +
</translate>
  
Modules are more lightweight and flexible extensions used for page rendering. Sometimes modules are linked to components such as the “latest news” module which links to the com_content and displays links to the newest content items. These modules are mostly known as the “boxes” that are arranged around a component, for example: the login module. The footer is a module. Modules are assigned per menu item. So, you can decide to show or hide the logon module depending on which component (menu item) is used. However, modules do not need to be linked to components, as a matter of fact they don't even need to be linked to anything and can be just static HTML or text.
+
*<translate>
 +
<!--T:9-->
 +
Examples: Banners (mod_banners), Menus (mod_menu), Who's Online (mod_whosonline)
 +
</translate>
  
For example: mod_banners, mod_mainmenu
+
*<translate>
 +
<!--T:10-->
 +
Management feature: {{rarr|Admin head menu,Extensions,Modules}}
 +
</translate>
  
''Admin head menu'' > “Extensions” > “Module Manager”
+
<translate>
 +
== [[S:MyLanguage/Plugin|Plugins]] == <!--T:11-->
 +
</translate>
  
== Plugins ==
+
<translate>
 +
<!--T:12-->
 +
Plugins are more advanced extensions and are in essence event handlers. In the execution of any part of Joomla, be it the core, a module or a component, an event can be triggered. When an event is triggered, plugins that are registered with the application to handle that event execute. For example, a plugin could be used to intercept user-submitted articles and filter out bad words.
 +
</translate>
  
Plugins are more advanced extensions and are in essence event handlers. In the execution of any part of Joomla, be it the core, a module or a component, an event can be triggered. When an event is triggered, plugins that are registered with the application to handle that event execute. Plugins were also known as mambots.
+
*<translate>
 +
<!--T:13-->
 +
Examples: Content - Load Modules, Editor - TinyMCE
 +
</translate>
  
For example: content.searchbot, tinymce
+
*<translate>
 +
<!--T:14-->
 +
Management feature: {{rarr|Admin head menu,Extensions,Plugins}}
 +
</translate>
  
''Admin head menu'' > “Extensions” > “Plugin Manager”
+
<translate>
 +
== [[S:MyLanguage/Template|Templates]] == <!--T:15-->
 +
</translate>
  
== Templates ==
+
<translate>
 +
<!--T:16-->
 +
A template is basically the design of your Joomla! powered website. With a template you can change the look and feel of your website. Templates have certain fields in which the component (just one) and modules (as many as you like) will be shown. Templates are easy to build or customize and they provide maximum flexibility in how you style your site.
 +
</translate>
  
A template is basically the design of your Joomla! powered website. With a template you can change the look and feel of your website. Templates have certain fields in which components and modules will be shown. Templates are easy to build or customize and they provide maximum flexibility in how you style your site.
+
*<translate>
 +
<!--T:17-->
 +
Management feature: {{rarr|Admin head menu,Extensions,Templates}}
 +
</translate>
  
Admin head menu > “Extensions” > “Template Manager”
+
<translate>
 +
== [[S:MyLanguage/Language|Languages]] == <!--T:18-->
 +
</translate>
  
== Languages ==
+
<translate>
 +
<!--T:19-->
 +
Probably the most basic extensions are languages. Languages can be packaged in two ways: either as a core package or as an extension package. In essence, both the core and the extension language package files consist of key/value pairs, which provide the translation of static text strings, assigned within the Joomla! source code. These language packs will affect both the front and administrator side of your Joomla site. Note: these language packs also include an XML meta file which describes the language.
 +
</translate>
  
Probably the most basic extensions are languages. Languages can be packaged in two ways, either as a core package or as an extension package. In essence, these files consist key/value pairs, these pairs provide the translation of static text strings which are assigned within the Joomla! source code. These language packs will affect both the front and administrator side. Note: these language packs also include an XML meta file which describes the language and font information to use for PDF content generation.
+
*<translate>
 +
<!--T:20-->
 +
Management feature: {{rarr|Admin head menu,Extensions,Language(s)}}
 +
</translate>
  
''Admin head menu'' > “Extensions” > “Language Manager”
+
== [[S:MyLanguage/Libraries|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.
  
Return to [[http://docs.joomla.org/Beginners Absolute Beginner's Guide to Joomla!]]
+
== 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.
 +
 
 +
<translate>
 +
== Extension Installation == <!--T:21-->
 +
</translate>
 +
 
 +
<translate>
 +
<!--T:22-->
 +
There are 4 methods of installing an extension. You can install from the Joomla Extension Directory (Install from Web), upload an extension, install from a folder or install from a URL.
 +
</translate>
 +
:[[File:30-Installing-template-upload-package-file-<translate><!--T:24-->
 +
en</translate>.png|Administrator Installation]]
 +
 
 +
<noinclude>
 +
<translate><!--T:23-->
 +
[[Category:Extensions]]
 +
[[Category:Definition lists]]</translate>
 +
</noinclude>

Latest revision as of 00:54, 6 September 2021

Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎català • ‎español • ‎français • ‎italiano • ‎português • ‎português do Brasil • ‎български • ‎русский • ‎中文(台灣)‎

Joomla! already is a rich featured content management system, but if you're building a website with Joomla! and you need extra features which aren't available in Joomla! by default, you can easily extend it with extensions. There are five common types of extensions for Joomla!: Components, Modules, Plugins, Templates, and Languages. There are three others: Packages, Files and Libraries. Each of these extensions handle specific functionality (many built-in features of Joomla! are implemented using extensions).

Extensions-en.jpg

Components[edit]

Components are the largest and most complex extensions of them all; they can be seen as mini-applications. Most components have two parts: a site part and an administrator part. Every time a Joomla! page is requested, one component is called to render the body of the page. For example, Content (com_content) is the component which handles the display of content; users can view at the frontend of your site and, as an administrator, you can edit the content. Components are the major portion of your page because a component is driven by a menu item and every menu item runs a component.

  • Examples: Content (com_content), Banners (com_banners), Contacts (com_contact), News Feeds (com_newsfeeds) and Web Links (com_weblinks)
  • Management feature: Admin head menu  Components  Contacts (for com_contact)

For a more detailed description of components, see this link here.


Modules[edit]

Modules are more lightweight and flexible extensions used for page rendering. These modules are mostly known as the “boxes” that are arranged around a component, for example: the login module. The Footer is a module. Modules are assigned per menu item. So, you can decide to show or hide the login module depending on which menu item the user is viewing. Sometimes modules are linked to components such as the “Latest News” module which links to the com_content and displays links to the newest content items. However, modules do not need to be linked to components, as a matter of fact they don't even need to be linked to anything and can be just static HTML or text.

  • Examples: Banners (mod_banners), Menus (mod_menu), Who's Online (mod_whosonline)
  • Management feature: Admin head menu  Extensions  Modules

Plugins[edit]

Plugins are more advanced extensions and are in essence event handlers. In the execution of any part of Joomla, be it the core, a module or a component, an event can be triggered. When an event is triggered, plugins that are registered with the application to handle that event execute. For example, a plugin could be used to intercept user-submitted articles and filter out bad words.

  • Examples: Content - Load Modules, Editor - TinyMCE
  • Management feature: Admin head menu  Extensions  Plugins

Templates[edit]

A template is basically the design of your Joomla! powered website. With a template you can change the look and feel of your website. Templates have certain fields in which the component (just one) and modules (as many as you like) will be shown. Templates are easy to build or customize and they provide maximum flexibility in how you style your site.

  • Management feature: Admin head menu  Extensions  Templates

Languages[edit]

Probably the most basic extensions are languages. Languages can be packaged in two ways: either as a core package or as an extension package. In essence, both the core and the extension language package files consist of key/value pairs, which provide the translation of static text strings, assigned within the Joomla! source code. These language packs will affect both the front and administrator side of your Joomla site. Note: these language packs also include an XML meta file which describes the language.

  • Management feature: Admin head menu  Extensions  Language(s)

Libraries[edit]

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[edit]

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[edit]

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.

Extension Installation[edit]

There are 4 methods of installing an extension. You can install from the Joomla Extension Directory (Install from Web), upload an extension, install from a folder or install from a URL.

Administrator Installation