Some major rewrites + ext-network continued:
[mailer.git] / inc / extensions-functions.php
index d60af72c9d18b9babff038a323b797a1514f3517..e85a690cfb09932f411838a1ba1c3bbe3a636628 100644 (file)
@@ -73,7 +73,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $isDryRun = FA
                setCurrentExtensionVersion('0.0.0');
 
                // Is the extension installed?
-               if ((isExtensionInstalled($ext_name)) && ($ext_mode != 'register')) {
+               if ((isExtensionInstalled($ext_name)) && ($ext_mode != 'setup')) {
                        // Get extension's version
                        setCurrentExtensionVersion(getExtensionVersion($ext_name));
                } // END - if
@@ -158,6 +158,9 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $isDryRun = FA
        // Include the extension file
        loadCurrentExtensionInclude();
 
+       // Load extra mode files
+       loadCurrentExtensionModeInclude();
+
        // Is this extension deprecated?
        if ((isExtensionDeprecated()) && (!in_array(getExtensionMode(), array('test', 'update', 'deactivate'))) && (isExtensionActive($ext_name))) {
                // Deactivate the extension
@@ -250,7 +253,7 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate
 
        // Does this extension exists?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ' - CALLING loadExtension() ...');
-       if (loadExtension(getCurrentExtensionName(), 'register', '0.0.0', isExtensionDryRun(), $previousExtension)) {
+       if (loadExtension(getCurrentExtensionName(), 'setup', '0.0.0', isExtensionDryRun(), $previousExtension)) {
                // Set current extension name again
                setCurrentExtensionName($ext_name);
 
@@ -340,7 +343,7 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate
                } // END - if
 
                // Switch back to register mode
-               setExtensionMode('register');
+               setExtensionMode('setup');
 
                // Remains true if extension registration reports no failures
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',processResult=' . intval($processResult));
@@ -503,7 +506,7 @@ function doExtensionSqls ($ext_id, $load_mode) {
 
        // Is this the sql_patches?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'id=' . $ext_id . ',currName=' . getCurrentExtensionName() . ',loadMode=' . $load_mode);
-       if ((getCurrentExtensionName() == 'sql_patches') && (($load_mode == 'register') || ($load_mode == 'remove'))) {
+       if ((getCurrentExtensionName() == 'sql_patches') && (($load_mode == 'setup') || ($load_mode == 'remove'))) {
                // Then redirect to logout
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, ': LOAD!');
                redirectToUrl('modules.php?module=admin&logout=1&' . $load_mode . '=sql_patches');
@@ -1827,6 +1830,18 @@ function loadCurrentExtensionInclude () {
        loadInclude($INC);
 }
 
+// Load current extension's mode include file
+function loadCurrentExtensionModeInclude () {
+       // Generate INC name
+       $INC = sprintf("inc/extensions/%s/mode-%s.php", getCurrentExtensionName(), getExtensionMode());
+
+       // Is the include readable?
+       if (isIncludeReadable($INC)) {
+               // Load it as it is optional
+               loadInclude($INC);
+       } // END - if
+}
+
 // Checks whether an extension is readable
 function isExtensionIncludeReadable ($ext_name = '') {
        // If empty, use current
@@ -2155,14 +2170,14 @@ function registerExtensionPointsData ($subject, $columnName, $lockedMode, $payme
        $add = '';
 
        // Is the extension equal or newer 0.8.9?
-       if (((isInstallationPhase()) && ((getExtensionMode() == 'register') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) {
+       if (((isInstallationPhase()) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) {
                // Then add provider
                $add = " AND `account_provider`='EXTENSION'";
        } // END - if
 
        // Is the 'subject' there?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ifSqlTableExists(points_data)=' . ifSqlTableExists('points_data') . ',getExtensionMode()=' . getExtensionMode() . ',add=' . $add);
-       if (((!ifSqlTableExists('points_data')) && ((getExtensionMode() == 'register') || (getExtensionMode() == 'update'))) || (countSumTotalData($subject, 'points_data', 'id', 'subject', TRUE, $add) == 0)) {
+       if (((!ifSqlTableExists('points_data')) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (countSumTotalData($subject, 'points_data', 'id', 'subject', TRUE, $add) == 0)) {
                // Not found so:
                if ((!isInstallationPhase()) && (isset($GLOBALS['previous_extension'][getCurrentExtensionName()])) && (!ifSqlTableExists('points_data'))) {
                        // This may happen (but when?)
@@ -2172,7 +2187,7 @@ function registerExtensionPointsData ($subject, $columnName, $lockedMode, $payme
                } // END - if
 
                // With or without account_provider?
-               if (((isInstallationPhase()) && ((getExtensionMode() == 'register') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) {
+               if (((isInstallationPhase()) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) {
                        // Add account_provider
                        addExtensionSql(sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`, `column_name`, `locked_mode`, `payment_method`, `account_provider`) VALUES ('%s','%s','%s','%s','EXTENSION')",
                                $subject,