Using the installer API to support package installation

From Joomla! Documentation

Revision as of 04:57, 5 July 2008 by Erikfinnegan (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


MjazTools have come up with a contribution including an Ant build script to package your development result into an archive for distribution.

The script needs to be extended for sorting your files into folders within the archive, which are needed for the Joomla! extension installer API. See the recommended file locations below:

Development file Archive folder
/components/com_<component name>/** /site/** (mimic folder structure)
/adminsitrator/components/com_<component name>/** /admin/** (mimic folder structure)
/language/en-GB/en-GB.com_<component name>.ini /language/site (flatten structure: discard language code subfolders)
administrator/language/en-GB/en-GB.com_<component name>.ini /language/admin (flatten structure: discard language code subfolders)
install.<component name>.php /
uninstall.<component name>.php /
install.<component name>.sql /admin
uninstall.<component name>.sql /admin
<component name>.xml The manifest file /

The Component Manifest File

Your component needs an xml-file declaring meta data (author, license, etc.), which files are included and indicates some special files to the installer API, like the included languages and SQL-scripts for (un)installing.

The most important xml-elements are explained below. For a full syntax refer to the manifest's DTD:

The root element

<install type="component|module|..." method="upgrade">
    <name>component name</name>

Enter the type of your extension, and indicate whether the installer shall be able to overwrite existing files. If the method attribute is not given, the installer will quit gracefully when encountering any existing file on the webspace.

The file list

    <files folder="site">

        <files folder="admin">

List all files which make up the code of your component, which will later go to the component subfolder of the site. Same for the administration part.

The language files