From Joomla! Documentation

< Tables


  • Since: 1.6
  • Deprecated Since: Current


The extensions table is designed to hold all extensions installed into Joomla!. The extensions table also functions as the primary storage of information for plugins as of 1.6 as well as the library and package extensions added in to the 1.6 release. Additionally, modules now uses the table to gather its information for installation or uninstallation. The aim of the extensions table is to reduce the need to create a new table for each extension instead thus allowing specific tables to be created that store information that is unique to that extension instead of information that should be shared. This table is closely modelled off the plugins table with some slight additions and replaces the plugins table in the Joomla! 1.6 release.

Extensions Table
Field Type Null Key Default Extra Comments
extension_id int(11) PRI NULL auto_increment Unique extension ID
name varchar(100) Friendly name of the extension
type varchar(20) The extension type
element varchar(100) The unique name of the element
folder varchar(100) The folder of the element
client_id tinyint(3) 0 The client ID of the extension
enabled tinyint(3) 1 The enabled status of the extension
access tinyint(3) unsigned 0 Primitive access control
protected tinyint(3) 0 Uninstallation protection
manifest_cache text Cache of the XML manifest file
params text Parameters for the extensions
data text Unused excess data field
checked_out int(10) unsigned 0 Checked Out (FKEY
checked_out_time datetime 0000-00-00 00:00:00 Checked Out Time
ordering int(11) YES 0 Ordering
state int(11) 0 Extension State (discovered, installed, etc)


Not all fields are used for all extension types. For example, plugins use the folder whilst most other extensions do not. Client ID is used by modules, templates and languages to specify which application (client) they should run in (e.g. administrator or site). The extensions table can be used to set defaults for extensions where there may exist instances of the extension (e.g. modules), however in 1.6 this does not occur. The table also features the standard checked out fields to support extension locking which is utilised by plugins. The protected field controls if an extension can be uninstalled through the administrator interface and the access is analagous to the access control field used in many other tables (typically public, registered or special). Again, extensions may wish to use this table as either the primary table (plugins) or as a 'defaults' table or 'global' table to control the behaviour of all instances of an extension.