Introduction
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.
System Requirements
- PHP 5.x.x
- Enable CURL PHP extension (Recommended, if not the system will use socket instead)
Service Development Steps
- 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/
- path to list of versions:
- 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}/"
- Configure authentication method
- set the CHMOD for the "packages" folder to be writeble (777)
- Go to your service' location, open config.php file.
- Step 5 - Publish your service URL to user
- Step 6 - Install JA Extensions Manager Component (com_jaextmanager) and try your service now!
Legend
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>