|This article or section is in the process of an expansion or major restructuring. You are welcome to assist in its construction by editing it as well. If this article or section
has not been edited in several days, please remove this template.|
In Joomla! an Article is a piece of content consisting of text (HTML), possibly with links to other resources (for example, images). Articles are the basic units of information in the content system and the bottom level in the content hierarchy. Since Joomla! 2.5 , each Article is in exactly one Category, and Categories can be in other Categories. It is also possible to have Uncategorised Articles that exist without being associated with any Category.
In Joomla! a Category is a collection of Articles. In Joomla! versions up to and including , is the middle level in the hierarchy Sections -> Categories -> Articles. For example, a website might have Sections called "Animals" and "Plants". Within the "Animals" Section, the website might have Categories such as "Birds" and "Mammals". Within the "Birds" Category, the website might have Articles such as "Parrots" and "Sparrows". In Joomla! versions and up, Categories can contain other Categories. The example above could be created using an "Animal" category, the Categories "Birds" and "Mammals" that are in that category, and the "Parrots" and "Sparrows" Articles in the "Birds" category.
A component is a kind of Joomla! extension. Components are the main functional units of Joomla!; they can be seen as mini-applications. An easy analogy would be that Joomla! is the operating system and the components are desktop applications. They are usually displayed in the center of the main content area of a template (depending on the template).
Most components have two main parts: an administrator part and a site part. The site part is what is used to render pages when being called during normal site operation. The administrator part provides an interface to configure and manage different aspects of the component and is accessible through the Joomla! administrator application.
Joomla! comes with a number of core components, like the content management system, contact forms and Web Links.
An extension is a software package that extends your Joomla! installation in some way. A small selection of extensions is included with the default Joomla! installation but many more are available from the Joomla! Extensions Directory.
The term extension is generic and the following specific extension types are available (listed alphabetically):
- Component (since ) – adds custom functions to your site that can be selected from menus
- Language (since ) – defines an additional language for your site
- Library (since ) – provides functions to be used by other extensions
- Mambot (in ) – modifies content in articles
- Module (since ) – shows nonessential data in a side box, possibly on multiple pages
- Package (since ) – bundles related extensions
- Plugin (since ) – modifies content in articles or provides functions to extend other extensions
- Template (since ) – define the look, feel, and navigation capabilities of your site
For an overview of the most important extension types and the functionality they provide, see Extension types (general definitions).
Version 1.5 of Joomla! changed the way that third-party Extensions work with the Joomla! core programs. Extensions written for version 1.0 need to be modified in order to use the new 1.5 methodology. To allow for backward compatibility with existing 1.0 Extensions, a Plugin called "System - Legacy" is included with Joomla! 1.5. This Plugin allows many Extensions developed for version 1.0 to work with version 1.5. This Plugin is disabled by default and must be enabled before you can use any Extensions in "Legacy" mode. It can be enabled from the Plugin Manager screen.
Extensions that have been tested by the Extension provider to work using the Legacy Plugin are labeled as "1.5 Legacy". Extensions that use the new 1.5 methodology are labeled as "1.5 Native". In general, "1.5 Native" Extensions will perform somewhat faster than "1.5 Legacy", because the Legacy Plugin requires one extra layer of processing. Over time, it is expected that the majority of Extensions will be available in "1.5 Native" mode.
Modules are lightweight and flexible extensions used for page rendering. These modules are often “boxes” arranged around a component on a typical page. A well-known example is the login module. Modules are assigned per menu item, so you can decide to show or hide (for example) the login module depending on which page (menu item) the user is currently on. Some modules are linked to components: the “latest news” module, for example, links to the content component (com_content) and displays links to the newest content items. However, modules do not need to be linked to components; they don't even need to be linked to anything and can be just static HTML or text.
Modules are managed in the Administrator by the Module Manager (help screen).
The term patch file is used for two different file types. The term patch file is sometimes used to refer to archive files that allow you to upgrade from one Joomla! version to another (for example, from version 1.0.0 to version 1.0.7). These upgrade files are also referred to as upgrade packages.
The other meaning for a patch file is a file created by source code version control software -- for example, Subversion or SVN, which is used for the Joomla! source code. This type of patch file contains instructions for changing the contents of one or more source code files. The SVN software reads the patch file and then can automatically change the source code of the files being patched.
Patch files are used by the Bug Squad to test proposed bug fixes. They can also be used to contribute proposed new features to the version under development. For more information about the structure of SVN patch files, read Learn more about patch files.
PHP is a computer scripting language designed for creating dynamic web pages. PHP is widely-used for web development and can be embedded into HTML. It generally runs on a web server, taking PHP code as its input and creating web pages as output. Joomla! is primarily written using the PHP language. For more information, see Where can you learn about PHP? For more information see: Where can you learn about PHP?
A plugin is a kind of Joomla! extension. Plugins provide functions which are associated with trigger events. Joomla provides a set of core plugin events, but any extension can fire (custom) events. When a particular event occurs, all plugin functions of the type associated with the event are executed in sequence. This is a powerful way of extending the functionality of the Joomla! Framework. It also offers extension developers a way to allow other extensions to respond to their actions, making extensions extensible.
The Joomla! plugin architecture follows the Observer design pattern. The JPlugin class is derived from JObserver and provides the means to register custom plugin code with core or custom events. The JEventDispatcher class, derived from JObservable, is an event handler which calls all plugins registered for a particular event, when that event is triggered.
In Joomla! versions up to and including , a Section is a collection of Categories. It is the top level in the hierarchy Sections -> Categories -> Articles. For example, a website might have Sections called "Animals" and "Plants". Within the "Animals" Section, the website might have Categories such as "Birds" and "Mammals".