The Joomla! Glossary is helpful for learning common terms used in Joomla! tutorials, help screens and advanced documentation.
Access Control List or ACL is according to the Wikipedia definition, “...ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed to be performed on given objects.” In the case of Joomla there are two separate aspects to its Access Control List which site administrators can control:
The implementation of ACL in Joomla was substantially changed in the Joomla! 2.5 series which allowed for more flexibility in groups and permissions.
Aliases are short pieces of text that represent the title of certain items (Menu items, Articles and Categories) in a machine-friendly format. This format allows only lowercase letters and dashes (-).
Aliases are used by Joomla to make Search Engine Friendly URLs. There are technical limitations to the types of characters that can be included in URLs, so Joomla prevents problems with invalid characters by allowing you to specify an alias.
You can fill in an alias yourself. If you leave the alias field empty, Joomla will automatically create an alias from the Title field of an item when it is saved. This means that if you edit the title of an item, but you leave the old alias in its field, the alias (and the URL that is created from it) will not change. Empty the alias field if you want generate a new alias.
An anchor is created using the <a> tag in HTML. An anchor allows you to place a bookmark inside an HTML page. In Joomla!, you can place an anchor inside an article (for example, using the TinyMCE editor). This lets you create a link that will go directly to that point in the article.
The HTML source code for an anchor looks like the following:
<a name="my_anchor" title="My Anchor"></a>
You can link to an anchor from within the same page using the HTML code
<a href="#my_anchor" ></a>
Clicking that link will take you directly to the location of the anchor tag.
You can link to an anchor in a different page by appending "#" plus the anchor name to the end of the URL. In the example above, if the URL for the article was
http://www.mysite.com/my_article.html, then you could link directly to the anchor in that page with the URL
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! , each Article is in exactly one Category. A Category can be in another Category making it a sub Category. It is also possible to have Uncategorised Articles. These articles exist without being associated with any Category.
Before Joomla! 2.5 and earlier versions, an Article was the third level in the hierarchy Sections → Categories → Articles. Now an Article is a bottom level and will always be the second level or greater in hierarchy.
Articles are maintained using the Article Manager (see the Content Article Manager for or the Content Article Manager for ) which can be reached in the Administrator (Back-end) by clicking on the Content menu, then the Article Manager menu item.
See also: Category
A Cascading Style Sheet or CSS is used to control the presentation of an XHTML page. For example, a CSS file will often control the font, margins, color, background graphics, and other aspects of a web page's appearance. CSS allows you to separate the content of an XHTML page from it's appearance. In Joomla!, CSS files (for example, template.css) are normally part of the template.
Every part of Joomla! powered web site or any CMS type of web site needs a method to display and store its content logically. The usual method is by categories and subcategories. Joomla! allows for multiple ways to display and use content controlled by categorisation. Some of the content types which have categorisation are articles (Main content of web pages), banners, contacts and web links.
Joomla! category named "Uncategorised" is the default category, assigned to any and all content types. The "Uncategorised" category is not descriptive and should be used on as needed basis for content types which do not fall under a specific category.
When creating and assigning categories, you should have a planned structure. As an example, this is one way of how you would categorise several Joomla articles on birds. Create two top article categories called "Animals" and "Plants". Under the "Animals" category, you might have sub categories called "Birds" and "Mammals". Under the "Birds" sub category, you might have 3 articles named "Hawks," "Parrots" and "Sparrows".
The example above could be expanded even more with specific articles on different species of Hawks, Parrots and Sparrows. Start with using an "Animal" top Category, placing the sub categories "Birds" and "Mammals" are under the "Animal" category, and then a "Hawks," "Parrots" and "Sparrows" sub category under the "Birds" Sub Category as shown below.
Now you can create multiple articles in the Hawk, Parrot and Sparrow sub categories using the different genus or common names of the specific types of these 3 birds.
Categories and their sub categories are maintained using the "Category Manager" which can be reached in the administrator back-end interface by clicking on the "Content" menu type, then the "Category Manager" menu item for the type.
See also: Article
The visible graphical interface features of an application are sometimes referred to as chrome. See Applying custom module chrome for information about how to modify the look of modules (in other words, the module "chrome").
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. Created by a component, content is 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 of your site when they are requested by your site visitors 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.
The word "core" in Joomla! pertains to the distributed files which are needed to create and administrate a Joomla CMS powered web site. These files can be downloaded from the Joomla website at http://www.joomla.org/download.html. The Joomla "core" also contains some basic functionality to get new Joomla installations working quickly and easily. Included are the user manager, article manager, weblink manager, category manager, contact manager, and menu manager. There is also a template manager with a few basic templates to power the front-end (website/user) view, a module manager with basic modules, plugin manager with basic plugins, and a few other "out of the box" extensions to extend the functionality of a basic Joomla installation. These core's extensions should not be confused with extensions which are available for downloading from the JED (Joomla! Extension Directory).
See also: Joomla Extension Directory.
The database table prefix is a string (a few characters long) prepended to the name of Joomla!'s tables. Using a prefix enables you to run multiple installations of Joomla! using a single database.
The database table prefix can be set during installation. Changing it later is possible, but requires access to the database through a non-Joomla medium or a Joomla Extension such as Akeeba Admin Tools and will cause some downtime.
Extension developers need to use the string
#__ to represent the prefix. This will be replaced by the real prefix during runtime by Joomla.
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:
For an overview of the most important extension types and the functionality they provide, see Extension types (general definitions).
Lightweight Directory Access Protocol (LDAP) is a protocol designed to access directory systems over TCP/IP. Because of this various databases provide an LDAP interface such as Microsoft's Active Directory, Novell's eDirectory, as well as more dedicated LDAP solutions such as OpenLDAP.
Joomla! has had a native LDAP library,
JLDAP (changed to
JClientLDAP in ) and a native LDAP authentication plugin. This allows Joomla! to authenticate against LDAP systems out of the box: to configure, go to the Plugin Manager and enable and edit the Authentication - LDAP plugin.
You can also read a tutorial on getting started from scratch with LDAP.
Languages are perhaps the most basic and critical extension type. Languages are packaged as either a core language pack or an extension language pack. These packages consist of INI files which contain key/value pairs. These key/value pairs provide the translation of static text strings within Joomla! source code. This allows both the Joomla! core and third party components and modules to be internationalised. Core language packs also include an XML meta file describing the language and providing information about the fonts to use for PDF content generation.
In Joomla!, a Menu is a set of menu items used for website navigation. Each menu item defines an URL to a page on your site, and holds settings that control the contents (articles, category(ies) lists, tagged items, etc) and style (module(s), layout) of that page.
Creating menus is rather simple. From the Admin Menu, in the backend of your Joomla! site, you choose: Menus > Menu Manager > Add New Menu. On the opened to you Menu Manager: Add Menu page enter your menu title into the "Title *" field (mandatory), your menu type into the "Menu type *" field (mandatory) and, if you wish, your menu brief description into the "Description" field (optional). After that you can start adding new menu items to this new menu.
Any website can have more than one menu.
A Menu isn't automatically shown on the site's front-end. You need to create a Menu Module using the Module Manager and instruct the module which Menu to show. Subsequently, you can select where the module should appear on the site, by choosing one of the available Module Positions of the active Template.
There is even more control on when the menu should appear, by adjusting the settings of the menu module. So, you can set it to appear in all or just a few pages of your choice (assigning the module on menu items), or make it visible to all, or only specific user-groups (e.g. registered users).
It is also possible to create Split menus.
A Menu that isn't shown by any module is commonly called a hidden menu. Hidden menus can be used to create URLs that are not visible on any page, within menus. For example, this can be very useful, if we want to create a single article page, with a custom URL, and specific content settings (layout, modules), that could be accessible through another page (article, blog category, module, etc), but we don't want to display a Menu Item for it, anywhere on our Menus.
Joomla makes extensive use of the Model-View-Controller design pattern.
When Joomla is started to process a request from a user, such as a GET for a particular page, or a POST containing form data, one of the first things that Joomla does is to analyse the URL to determine which component will be responsible for processing the request, and hand control over to that component.
If the component has been designed according to the MVC pattern, it will pass control to the controller. The controller is responsible for analysing the request and determining which model(s) will be needed to satisfy the request, and which view should be used to return the results back to the user.
The model encapsulates the data used by the component. In most cases this data will come from a database, either the Joomla database, or some external database, but it is also possible for the model to obtain data from other sources, such as via a web services API running on another server. The model is also responsible for updating the database where appropriate. The purpose of the model is to isolate the controller and view from the details of how data is obtained or amended.
The view is responsible for generating the output that gets sent to the browser by the component. It calls on the model for any information it needs and formats it appropriately. For example, a list of data items pulled from the model could be wrapped into an HTML table by the view.
Since Joomla is designed to be highly modular, the output from the component is generally only part of the complete web page that the user will ultimately see. Once the view has generated the output, the component hands control back to the Joomla framework which then loads and executes the template. The template combines the output from the component, and any modules that are active on the current page, so that it can be delivered to the browser as a single page.
To provide additional power and flexibility to web designers, who may only be concerned with creating new designs rather than manipulating the underlying code, Joomla splits the traditional view into a separate view and layout. The view pulls data from the model, as in a traditional MVC pattern, but then simply makes that data available to the layout, which is responsible for formatting the data for presentation to the user. The advantage of having this split is that the Joomla template system provides a simple mechanism for layouts to be overridden in the template. These layout overrides (often called "template overrides" because they form part of the template, although actually it is the layout that is being overridden) are bundled with the template and give the template designer complete control over all the output from the Joomla core and any installed third-party extensions that comply with the MVC design pattern.
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 Joomla! Administrator view by the Module Manager. More information about module management can be found on the appropriate version help screens.
Module Class Suffix is a parameter in Joomla! modules. It is set Module: [Edit] screen under Advanced Parameters. Setting this parameter causes Joomla! to either add a new CSS class or modify the existing CSS class for the
div element for this specific module.
When Joomla! generates a module, it automatically create a CSS class called "moduletable" to allow styling of the module -- for example,
To create a new class, enter the parameter with a leading space. For example, entering a space plus "myNewClass" will create a new CSS class called "myNewClass". The HTML will be changed to
<div class="moduletable myNewClass">
To change the name of the existing class, enter in the parameter without a leading space. For example, entering "_mySuffix" (no leading space) will cause the HTML to changed to
Generally, it is recommended to use a leading space to create a new class. This way, CSS styling for this module that uses the standard class names will continue to work. You can use the new class name to add any desired styling to the module without needing to re-create all of the existing CSS code. Note that, if you create a new class name, make sure it has a unique name and doesn't conflict with any existing class names.
See Using Class Suffixes for more information.
A module position is a placeholder in a template. Placeholders identify one or several positions within the template and tell the Joomla! application where to place output from modules assigned to a particular position. The template designer has complete control over module positions, creating variations between templates and the respective Joomla! default positions assigned to modules in the installation sample data.
For example, the module position Left could be defined to be on the left side of the template to display a site navigation menu. So if a module is assigned the Left position, it will be displayed wherever the designer puts that Left module position - not necessarily the left side of the page.
Module chrome allows template designers to have a certain amount of control over the way the output from a Module is displayed in their template. Essentially, it consists of a small amount of predefined HTML which is inserted before, after, or around the output from each module, and which can then be styled using CSS. Module chrome is commonly used to provide borders around modules, especially with rounded corners, but it can be used for much more than that.
Module chrome is determined by using the 'style' attribute in the statement calling the module. For example, the following statement may be used in the index.php file of the currently assigned as main template to insert the Modules in the 'user1' position and apply the 'custom' Module chrome:
<jdoc:include type="modules" name="user1" style="custom" />
It can be seen that the same Module chrome is applied to every Module in that position - in other words, if you want to have two Modules in a column, but want them to have different Module chrome, then they would need to be set up as two different 'positions' (e.g. 'user1' and 'user2').
The standard Joomla! 1.5+ package includes six default Module chrome styles. However, the flexibility of the template system means that you are not limited to these styles - it's very easy to create as many new styles as you want!
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?
Page Class Suffix is a parameter in Joomla! content menu items. It is set in a particular menu item: [Edit Menu Item] page, under the "Page Display" tab. A new page class suffix will cause Joomla! to either add a new CSS class or modify the existing CSS class for elements in the assigned to this very menu item page layout.
When Joomla! generates a page, it automatically creates pre-defined CSS classes to allow styling of the page. For example, a page might have the element
To create a new class, enter the parameter with a leading space. For example, entering a space plus "myNewClass" will create a new CSS class called "myNewClass" and it will be inserted as a class for elements in that Menu Item. In this case the example above will be changed to
<div class="componentheading myNewClass">
To change the name of the existing class, enter in the parameter without a leading space. For example, entering "_mySuffix" (no leading space) will cause the HTML to changed to
Generally, it is recommended to use a leading space to create a new class. This way, CSS styling for this component that uses the standard class names will continue to work. You can use the new class name to add any desired styling to the component without needing to re-create all of the existing CSS code. Note that, if you create a new class name, make sure it has a unique name and doesn't conflict with any existing class names.
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.
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! Platform. 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 provides the means to register custom plugin code with core or custom events. The JDispatcher class (JEventDispatcher in Joomla 3.x) is an event handler which calls all plugins registered for a particular event, when that event is triggered.
Search engine friendly URLs is a term commonly abbreviated as SEF URLs or SEF for short. Normal Joomla! URLs look something like this:
You can optionally have URLs display to look like static HTML pages like this:
Since Joomla! 1.5, there are built-in options for generating SEF URLs. These are enabled by changing the "SEO Settings" (Search Engine Optimisation) in the Site tab in the Global Configuration screen in the Joomla! back end. There are also third-party extensions that create SEF URLs for Joomla!.
A split menu is where different levels of a single menu are displayed in two or more locations on a single web page.
For example, a common requirement is for a menu of top-level items to appear at the top of the page. When one of the items is clicked the user is taken to a page where a secondary menu, say on the left of the page, shows second-level items within the scope of the top-level item.
The menus appear in separate locations on the page, but are related because one shows only top-level items while the other shows second-level items. This idea can be extended to include menus for third-level items and beyond.
This can be implemented in Joomla using a single multi-level menu then creating more than one menu module each referring to a different level.
See also: Menu
A template is a type of Joomla! extension that changes the way your site looks. There are two types of templates used by the Joomla! CMS: Front-end Templates and Back-end Templates. The Front-end Template controls the way your website is presented to the user viewing the website's content. The Back-end Template controls the way your website's administrative tasks are presented for controlling management functions by a Joomla! Administrator. These would include common tasks such as: user, menu, article, category, module, component, plugin and template management.
Template style is a feature introduced in that allows users to assign different template styles to individual menu items. By default, Joomla! assigns a template style to all menu items upon installation. A yellow star indicates the default template style in use. A default template style can be partially or completely overridden by assigning different template styles to the desired menu items in order to obtain a different look for their respective pages.
A template style can be assigned to menu items one of two ways.
An Upgrade Package in Joomla! is an archive of files that contain the files that have changed between Joomla! versions. When this archive is unpacked, it replaces the old version of the modified files with the new version. For example, if fifty files were changed between version 3.x.1 and 3.x.2, the upgrade package from 3.x.1 to 3.x.2 would contain these fifty files and, when unpacked, would replace these fifty files and upgrade the installed version from 3.x.1 to 3.x.2.