How to

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

JA Extensions Manager is capable to perform checks in the repository and highlight if any new versions have been found. If a new version is found, you have then three action options:

  • compare versions and files content,
  • upgrade to latest version;
  • after an update, you will have an additional option to rollback to previous setup.

We consider a good idea to show you an example on how to upgrade the JA Job Board Component. This is a content component, so it holds it's own databases and depending on the version you want to upgrade from, the upgrade might require some minor file edits before the upgrade process, to make sure the JA Extensions Manager will also back-up content component database.

When you upgrade JA extensions successfully but the Joomla Updater still keeps on telling you that you need to update the JA extensions. It is because of Cache. To fix it, please follow our instructions:

1. In the Back-end, please go to: Extension Manager >> click to tab Manager >> Filter to JA Extension >> click Refresh

image:Extension-manager.png

2. Go to tab: Update >> Click Purge Cache

image:Purche-cache.png

3. Now click on the Find Update button

image:Update-exxtension.png

  • Language files that are added to language folders after any extension installation are not covered by JA Extensions Manager and should be manually backed up by user and replaced back after cross-examination with the language files coming with the new version.</span>
  • The component is known to work mostly for MVC extensions but it can also work for non-MVC modules, plugins or templates.
  • If your XML does not carry database downgrade / upgrade info, then this component will only replace file and will not upgrade your database. Please ask your extension developer for support.
  • The component can read the new version based on Version info in XML and Date. If this is not correct, the component may not work properly.
  • Irrespective of how powerful this component may become, it should never replace the basic instinct of taking back-up.
  • The component works mostly on Linux servers and may behave different on other server environments. Please report any problem you encounter to our Project Management Portal.
  • Make sure you have a full functional back-up of the site, before you use this component. Although it works fine and has been tested, sometimes results might vary based on user environment.
  • If you have encountered files / folder permission or ownership problems with other extension, we strongly recommend fixing them before using this component.
  • If your extension upgrade involves database upgrades, please make sure your XML file contains the details for upgrade and downgrade (rollback). Check this section for details.
  • Make sure you understand the File Legends while comparing, upgrading and rolling back.
  • This component is NOT capable of merging your customizations into the new version of the files by itself. You will still have to reapply your customizations manually.
  • We have finished developing internal file compare feature, so we recommend using file comparison utility such as Win Merge, to compare and move your custom code to the new files, generally for those files that are not covered by original XML files such as additional languages or other files outside the extension installation folders.

In the image below you can see a representation of JA Extensions Manager Workflow, to help you understand how the component works:

image:JA-Ext_Mng-Workflow.gif

You found a suitable extension you would like to use on your website. In the steps below, we explain the usual steps you are going to get used to when upgrading extensions. We will explain what happends on Installation, Customization, Upgrade and Rollback.

  • First Installation - You install the extension with Joomla! Extensions Manager using the Original files provided by the developer.
  • Customization - Now you apply your unique touch to the extension by adding visual and functional customizations (maybe some code changes in some cases). By performing code alterations, you will create User modified files and User created files that will be highlighted on version comparison when you will want to upgrade the extension.
  • Upgrade - You found out a new version have been released for your extension and you want to upgrade to the latest version. On upgrade, JA Extensions Manager will back-up the previous user setup in the internal repository. On this process, new files could come with the new version, along with updated files or files that are no longer used and they were removed by developer (check file legends and explanations below).
    Now you should back-up your website and to make sure you cover all files not covered by JA Extensions Manager such as language files or user created files (images, CSS and other types).
    On version comparison you will have:

    • image:Icon_bmodified.gif‎ conflict files that have been modified by both User and Developer;
    • image:Icon_new.gif new files added by the Developer to support new features in the new version of the extension;
    • image:Icon_removed.gif files that have been deleted by Developer as they are no longer needed for the extension;
    • image:Icon_updated.gif files updated in new version by Developer;
    • image:Icon_ucreated.gif files that have been created by User to add special styling or to extend basic extension functions;
    • image:Icon_umodified.gif files modified by User to customize the visual and functionality of the extension;
    • image:Icon_nochange.gif files that suffered no change made by User or Developer.
  • Rollback - The upgrade completed successful but did not produce a satisfactory effect because it does not fix bugs or produces malfunctions caused by code changes made by User or Developer, and you decide you want to rollback to previous setup. On rollback, JA Extensions Manager will back-up the installation at this point and restore the previous setup completely, except files that are not covered by XML files (user created files such as language files, images, CSS or any other files created by user).


You can upgrade or rollback several times, JA Extensions Manager will always back-up user setup on livesite, and this is why you should add very informative comments on Upgrade or Rollback.
On Upgrade or Rollback files that suffered no change will be left untouched, they will not be deleted and replaced with files from the upgrade/rollback package. The two processes create patches that replace only files modified by user and Developer, and adds/deletes new files have been created/removed from a version to another.
TIP When customizing extensions by altering original files, please remember to add informative comments to the code so you can ease your work with file comparison.

Checking internal repository

JA Extensions Manager is checking the internal repository for updates, so while browsing the Extensions Manager panel, you can see the complete list of extensions installed in your website.

image:JA-Ext-mng-checking-update.jpg

  • Step 1 - select Components and click the Go button to display all non-core components installed;
  • Step 2 - click the Check update link to start checking, and make sure you extension is set to use Local service;
  • Step 3 - if no new version is found in the repository, click the Upload now link.

Now we can proceed with the upload procedure of the extension.

Uploading to internal repository

After the first three steps described above, you will see a pop-up called "JA Uploader".

image:JA-Ext-mng-uloading.jpg

  • Step 4 - browse for the extension on your local computer;
  • Optional - you can install the extension from a folder you have previously uploaded, or install from an external link;
  • Step 5 - click the Upload button to begin uploading.

image:JA-Ext-mng-upload-successful.jpg
Now you can click the Cancel button to close the uploader and continue with Compare versions or Upgrade procedures.

Checking external repository

To be able to check for new versions of your extensions on external repositories, please make sure you have configured your updates services properly, so please visit this page to lean more.
If you have configured your update service properly, you can now set the service for your extension. For instance in our example here, JA Job Board will use JoomlArt Updates Service. See image below:

image:JA-Ext-mng_external-repository-check.jpg
Clicking on the service, you can change it to Local (Internal Repository), or external repository from your developer update service.

After upload process described in the steps above completed, the extension will display Changelog, Compare and Upgrade links. See image below:

image:JA-Ext-mng-new-version.jpg

Filter the files by change type

Please click on the Compare link to open version comparison panel.

image:JA-Ext-mng-compare-versions.jpg

Compare file content

Starting JA Extensions Manager version 1.5.0, you have the possibility to compare files content. We have compared JA Job Board versions 1.4.4 with 1.4.5.

image:JA-Ext-mng_file-compare1.jpg
Clicking the Diff vs 1.4.4 link of the jacustomcss.php file will open a new window comparing the two versions of the file.

image:JA-Ext-mng_file-compare2.jpg
Line coloration legends:

  • modified by developer in new version
  • added by developer in new version
  • deleted by developer in new version
  • modified by user or user created


This window allows you to copy from left to right and vice-versa, only a single line at a time using the small icons, or all lines using the Copy all link in the header of the window.
This window also allows you to edit each file separately by opening an additional nice pop-up window (javascript powered).
Please note: remote files cannot be modified by JA Extensions Manager editors.

This procedure was tested with JA Job Board component version:

  • upgrade from 1.4.1 to 1.4.2 and rollback;
  • upgrade from 1.4.1 to 1.4.3 and rollback;
  • upgrade from 1.4.2 to 1.4.3 and rollback.

Before you proceed with this procedure, please perform a complete back-up of your website and your database. Please test upgrade process on a safe environment with a clone of your website.

Check the XML file

Like we said in the previous documentation sections, all content extensions having own database tables need some adjustments to allow JA Extensions Manager to back-up the database tables for the extension you prepare the upgrade for.
For JA JobBoard component for instance, we need to modify com_jajobboard.xml file located in:
your_site_root/administrator/components/com_jajobboard.
If your JA Extension is very old, you need to modify this file in the old version that you are using so we make sure the update process will also back-up component's database. Please open this file with your favorite code editor, and find last line:

</install>

and add above it:

<jaupdater>
<tables>
	   <table>#__ja_applications</table>
	   <table>#__ja_categories</table>
	   <table>#__ja_codes</table>
	   <table>#__ja_config</table>
	   <table>#__ja_credits</table>
	   <table>#__ja_email</table>
	   <table>#__ja_email_draf</table>
	   <table>#__ja_employers</table>
	   <table>#__ja_feeds</table>
	   <table>#__ja_form_fields</table>
	   <table>#__ja_form_lists</table>
	   <table>#__ja_jobalerts</table>
	   <table>#__ja_jobs</table>
	   <table>#__ja_location</table>
	   <table>#__ja_notes</table>
	   <table>#__ja_paymentconfig</table>
	   <table>#__ja_permissions</table>
	   <table>#__ja_posting_plans</table>
	   <table>#__ja_profiles</table>
	   <table>#__ja_resumes</table>
	   <table>#__ja_shortlist</table>
	   <table>#__ja_subscriptions</table>
	   <table>#__ja_transactions</table>
	   <table>#__ja_xml_feeds</table>
	   <table>#__ja_xml_import_feeds</table>
	   <table>#__ja_xml_schemas</table>
	   <table>#__ja_xml_schemas_details</table>
</tables>

<versions folder="admin">
	   <version version="1.4.3">
	   <upgrade>installer/sql/upgrade_v1.4.3.sql</upgrade>
	   <rollback>installer/sql/downgrade_v1.4.3.sql</rollback>
	   <changelogUrl>http://pm.joomlart.com/browse/JAJB</changelogUrl>
</version>
	   <version version="1.4.2">
	   <upgrade>installer/sql/upgrade_v1.4.2.sql</upgrade>
	   <rollback>installer/sql/downgrade_v1.4.2.sql</rollback>
	   <changelogUrl>http://pm.joomlart.com/browse/JAJB</changelogUrl>
</version>
	   <version version="1.4.1">
	   <upgrade>installer/sql/upgrade_v1.4.2.sql</upgrade>
	   <rollback>installer/sql/downgrade_v1.4.2.sql</rollback>
	   <changelogUrl>http://pm.joomlart.com/browse/JAJB</changelogUrl>
</version>
	   <version version="1.4.0">
	   <upgrade>installer/sql/upgrade_v1.4.2.sql</upgrade>
	   <rollback>installer/sql/downgrade_v1.4.2.sql</rollback>
	   <changelogUrl>http://pm.joomlart.com/browse/JAJB</changelogUrl>
</version>
</versions>        
</jaupdater>

This code holds database tables information, and also versions the extensions can upgrade to and rollback. Each version has it's own database upgrade or rollback sql file and you can ask extension developer for support on creating this code.

ALL LATEST VERSIONS OF JA JOB BOARD, JA COMMENT COMPONENT, JA VOICE ALREADY HAVE THIS FIX, SO YOU ONLY HAVE TO CHECK THE XML FILES

The upgrade process

image:JA-Ext-mng-new-version.jpg
Just like you see in the image above, click the Upgrade link to proceed with the upgrade process:

image:JA-Ext-mng-upg-msg.jpg
Click OK to continue.

image:JA-Ext-mng-upg-comment.jpg
Type in a comment for the upgrade, then click the OK button.

image:JA-Ext-mng-processing-upgrade.jpg
Successfully updated to the latest version!

image:JA-Ext-mng-upgrade-successfull.jpg

We used setup term here to point out that the installation could have user created files, or modified by user. JA Extensions Manager can back-up the previous setup completely and store it into the internal repository, so if the upgrade is not satisfactory, you can always rollback to the initial setup, with absolutely no change.
Let's begin with rollback process for the upgrade we have just explained above. You might have several versions installed, so the extensions manager will only show you those you have kept in the repository.

image:JA-Ext-mng-rollback.jpg
Just like upgrading, the component will ask you:

image:JA-Ext-mng-rollback-msg.jpg
and also will need a comment:

image:JA-Ext-mng-rollback-comment.jpg
Now processing:

image:JA-Ext-mng-processing-rollback.jpg
aand process completed successful!

image:JA-Ext-mng_rollback-success.jpg