Joomla has introduced an awesome update mechanism since Joomla 2.5 and with Joomla 3.0 it has become extremely stable & easy to use. This not only lets you update your Joomla installation with one click, but also makes a method available for extension developers to let you update extensions easily.
If you are a Joomla extension developer & have not introduced One click updates yet, I would recommend you do so at the soonest. Though this facility has been available in Joomla for a while now, extension developers (Techjoomla included) have been slow to adopt it in their products..
One click updates within your extensions can be a huge value addition to your users & make their lives easier. With this blog we will give you a quick walk through at how you can do this with minimum effort & save you some digging around for the same. Note that this blog assumes that you are using Akeeba Release System (ARS) to manage downloads for your Joomla Extensions.
Lets get started !
A. Setup the Update Stream in ARS
Login to your website & go to your Akeeba Release System's control panel. You should find the Update Streams logo. Update stream is a relationship between the extension release inside the specified category.
Click on New. You should see a form that will let you configure the stream.
A name for the update stream. It can be anything you want and is only used in the Joomla! 1.6 XML format streams. Note : This is what Joomla! will also display in the Extension Name when it lists new available updates. Why are we saying Joomla 1.6 everywhere ? do we have to ? Cant we say Joomla 3 ??
Used to construct the URL in the front-end. Keep it short and sweet.
This is what type of your extension. Choose the appropriate type here. What should be chosen here ? What are the guidelines ?
The category where we're going to look for updates. Suggest an example.
Package naming pattern
An update stream looks for files following a specific naming convention. You need to provide a filename and use a single question mark (?) to match any single character or a single start (*) to match any number of characters. Only items whose File or URL field matches this pattern will be included in the update stream.
For instance, if installation packages are named com_example-VERSIONNUMBER-core.zip, where only VERSIONNUMBER changes, i.e. com_example-3.1-core.zip, com_example-3.1.5-core.zip etc. This leads us to a naming pattern of com_example-*-core.zip .
This is required for Joomla! 1.6 update streams. It should contain the name of your extension, e.g. com_something, mod_something, plg_something etc.
Site area (client_id)
All update streams must indicate the site area (frontend or backend) the extension applies to. Forcomponent, library and file extensions you must always use "Backend". For plugins, modules and templates select "Frontend" or "Backend" depending on whether your extension applies to the frontend or the backend of your clients' sites respectively.
Folder (for plugins)
For all extension types except plugins, leave this blank. For plugins, this must be set to the plugin type. For example, if you have a system plugin, type in system in this box. If you have a content plugin, type in content in this box.
JED Extension ID for Install from Web Integration
This is optional and only needs to be entered for extensions listed in the Joomla! Extensions Directory (JED). This is the numeric ID of your extension as listed in the JED. This is used for the Install from Web feature integration. For more information please take a look at the Content - Akeeba Release System Latest Version plugin which contains the plumbing to actually provide the URLs you need to use for the (quite convoluted) Install from Web feature.
The status of the stream. Make sure this is published.. If you leave it unpublished, it will return an empty page on the stream URL.
B. Setup the update server parameter in your extension manifest xml
This definition can be used in all Joomla! 2.5 and newer compatible extensions but is not available for templates. You can use two options for your server type; collection or extension. These will be explained in detail shortly. This code should be added to the extension manifest file, within the root "extension" element. The update server is defined as follows for each type:
Allowing your user to upgrade extensions with restricted downloads
Many of us developers want to provide downloads that are not openly accessible to the public. In order to do this & still be able to provide one click updates, you have to do is to create component parameters in your component's config.xml file. If you want to use username/password pairs, add the following lines after your tag:
C. Testing your Setup !
Finally you can check for update by going to Extension Manager -> Update