Navigation

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)

  1. <?xml version="1.0" encoding="utf-8"?>
  2.  
  3. <element_info>
  4.  
  5.  
  6. <element_detail>
  7.  
  8. <title>Plugin JA Comment</title>
  9.  
  10. <name>plg_jacomment</name>
  11.  
  12. <type>plugin</type>
  13.  
  14. <joomla>j15</joomla>
  15.  
  16. <date>2010-02-06 01:32:25</date>
  17.  
  18. <published>1</published>
  19.  
  20. <version>1.1</version>
  21.  
  22. <license_type>gpl</license_type>
  23.  
  24. <description>...<description>
  25.  
  26. <extKey>plg_jacomment</extKey>
  27.  
  28. <extFolder>plg_jacomment</extFolder>
  29.  
  30. </element_detail>
  31.  
  32.  
  33. <versions>
  34.  
  35. <version>
  36.  
  37. <name>1.1</name>
  38.  
  39. <releaseDate>2010-03-07</releaseDate>
  40.  
  41. <changelogUrl>http://pm.joomlart.com/browse/JAECCOMJAEXTMANAGER?report=com.atlassian.jira.plugin.system.project:changelog-panel</changelogUrl>
  42.  
  43. </version>
  44.  
  45. <version>
  46.  
  47. <name>1.0</name>
  48.  
  49. <releaseDate>2010-02-06</releaseDate>
  50.  
  51. <changelogUrl>http://pm.joomlart.com/browse/JAECCOMJAEXTMANAGER?report=com.atlassian.jira.plugin.system.project:changelog-panel</changelogUrl>
  52.  
  53. </version>
  54.  
  55. </versions>
  56.  
  57. </element_info>
  58.