CRM-12096 joomla 3.0 support cli
authorBrian Shaughnessy <brian@lcdservices.biz>
Wed, 24 Apr 2013 00:13:59 +0000 (20:13 -0400)
committerBrian Shaughnessy <brian@lcdservices.biz>
Wed, 24 Apr 2013 00:13:59 +0000 (20:13 -0400)
CRM/Utils/Hook/Joomla.php
CRM/Utils/System/Joomla.php

index 04ad66536ce21917bdbe0711f92ac6d542679f02..043e00a315ee2cbd037eef520c057f3569f315bb 100644 (file)
@@ -43,14 +43,21 @@ class CRM_Utils_Hook_Joomla extends CRM_Utils_Hook {
     // not execute hooks if joomla is not loaded
     if (defined('_JEXEC')) {
       //Invoke the Joomla plugin system to observe to civicrm events.
-           jimport( 'joomla.plugin.helper' );
+      jimport( 'joomla.plugin.helper' );
       JPluginHelper::importPlugin('civicrm');
 
-           // get app based on cli or web
-           if ( PHP_SAPI != 'cli' ) {
-             $app = JFactory::getApplication( 'administrator' );
-           } else {
-        $app = JCli::getInstance();
+      // get app based on cli or web
+      if ( PHP_SAPI != 'cli' ) {
+        $app = JFactory::getApplication( 'administrator' );
+      }
+      else {
+        // condition on Joomla version
+        if( version_compare(JVERSION, '3.0', 'lt') ) {
+          $app = JCli::getInstance();
+        }
+        else {
+          $app = JApplicationCli::getInstance();
+        }
       }
 
       $result = $app->triggerEvent($fnSuffix, array(&$arg1, &$arg2, &$arg3, &$arg4, &$arg5));
index 518d85f439c79ab9abbd660a86ad82323017fdf6..fc7eb8f71b557864a2cbfa38db2dffefe77d558d 100644 (file)
@@ -603,10 +603,24 @@ class CRM_Utils_System_Joomla extends CRM_Utils_System_Base {
     // Get the framework.
     require $joomlaBase . '/libraries/import.php';
     require $joomlaBase . '/libraries/joomla/event/dispatcher.php';
-    require $joomlaBase . '/libraries/joomla/environment/uri.php';
-    require $joomlaBase . '/libraries/joomla/application/component/helper.php';
     require $joomlaBase . '/configuration.php';
 
+    // Files may be in different places depending on Joomla version
+    if ( !defined('JVERSION') ) {
+      require $joomlaBase . '/libraries/cms/version/version.php';
+      $jversion = new JVersion;
+      define('JVERSION', $jversion->getShortVersion());
+    }
+
+    if( version_compare(JVERSION, '3.0', 'lt') ) {
+      require $joomlaBase . '/libraries/joomla/environment/uri.php';
+      require $joomlaBase . '/libraries/joomla/application/component/helper.php';
+    }
+    else {
+      require $joomlaBase . '/libraries/joomla/uri/uri.php';
+      require $joomlaBase . '/libraries/legacy/component/helper.php';
+    }
+
     jimport('joomla.application.cli');
 
     return TRUE;