Developer guide

JA Extension Manager - Joomla extension for Joomla 2.5 and Joomla 3 documentation

In this section we would like to document the development of external repositories to work with JA Extensions Manager, a documentation useful for third party developers willing to provide update services via JA Extensions Manager.

  • PHP 5.x.x
  • Enable CURL PHP extension (Recommended, if not the system will use socket instead)
  • Step 1 - Checkout Service' Source Code from this SVN link http://svn.github.com/joomlart/jaupdater-service.git or download a compressed file at JoomlArt Website (link coming soon)
  • Step 2 - Build repository to store all your extensions. You can arrange your repository with any structure, but we recommend using a fixed path for the following locations of any extension (with extension properties (core product, type, name of extension, version of extension)
    • path to list of versions:
      Example: /path_to_repository/component/com_jaextmanager/
      This folder must have one XML file called jaupdater.element_info.xml to hold all information about this extensions, so services can get extension' information from it
    • path to specific version:
      Example: path to our "version 1.5.0 of Extensions Manager Component" is: /path_to_repository/component/com_jaextmanager/1.5.0/com_jaextmanager/
  • Step 3 - Implement the authentication method
    • We recommend to provide basic interface for authentication
    • Let's implements this interface if you want users to authenticate for using your service. Here is a step-by-step guide to deploy your authentication method:
      • Select a name for your service. (Example: joomlart)
      • go to location: /path_to_service/jaupdater/core/auth/
      • create a file named "authJoomlart.php"
      • create a class named "jaAuthJoomlart"
      • see our class source as an example.
  • Step 4 - Configure your service
    • Go to your service' location, open config.php file.
      • Configure authentication method
        Remember the above name, leave blank if no authentication is required
        Example: "WS_AUTH_PROVIDER"=>"joomlart" // your service provider name here
      • Configure the path to repository and the structure of your repository
        Example: with our above structure, the configuration will be:
        "PRODUCT_VERSIONS"=> "{repo}/{type}/{extFolder}/"
        "PRODUCT_LOCATION"=> "{repo}/{type}/{extFolder}/{version}/{extFolder}/"
    • set the CHMOD for the "packages" folder to be writeble (777)
  • Step 5 - Publish your service URL to user
  • Step 6 - Install JA Extensions Manager Component (com_jaextmanager) and try your service now!

jaupdater.element_info.xml file structure is an XML information file to include the main information:

  • Extension general information
  • List versions of extension

Important: The list must be sorting in a descending order (always have latest version first)

<?xml version="1.0" encoding="utf-8"?>
<element_info>
<element_detail>
<title>Plugin JA Comment</title>
<name>plg_jacomment</name>
<type>plugin</type>
<joomla>j15</joomla>
<date>2010-02-06 01:32:25</date>
<published>1</published>
<version>1.1</version>
<license_type>gpl</license_type>
<description>...<description>
<extKey>plg_jacomment</extKey>
<extFolder>plg_jacomment</extFolder>
</element_detail>

<versions>
<version>
<name>1.1</name>
<releaseDate>2010-03-07</releaseDate>
<changelogUrl>http://pm.joomlart.com/browse/JAECCOMJAEXTMANAGER?report=com.atlassian.jira.plugin.system.project:changelog-panel</changelogUrl>
</version>
<version>
<name>1.0</name>
<releaseDate>2010-02-06</releaseDate>
<changelogUrl>http://pm.joomlart.com/browse/JAECCOMJAEXTMANAGER?report=com.atlassian.jira.plugin.system.project:changelog-panel</changelogUrl>
</version>
</versions>
</element_info>