Even more rewrites/fixes from EL branch (please report any broken part after you...
[mailer.git] / inc / modules / admin / what-extensions.php
index 94a7c2238b85c7d4a8435f0e4542e3ada8d29a4b..965bc1f8bd0596947ee5bcf40f27a72a16661948 100644 (file)
@@ -52,7 +52,7 @@ if (isGetRequestParameterSet('reg_ext')) {
        // We are about to register a new extension
        $do = 'register'; $ext_id = bigintval(getRequestParameter('reg_ext'));
        // The id comes from task management and it is - of course - *not* the extension's name!
-} elseif ((isPostRequestParameterSet('change')) && (countPostSelection() > 0) && (!isDemoModeActive())) {
+} elseif ((isFormSent('change')) && (countPostSelection() > 0) && (!isDemoModeActive())) {
        // De-/activate extensions
        foreach (postRequestParameter('sel') as $ext_id => $active) {
                // Shall we keep the extension always active?
@@ -63,14 +63,17 @@ if (isGetRequestParameterSet('reg_ext')) {
                        // De/activate extension
                        $ACT = 'N'; setExtensionMode('deactivate');
                        if ($active != 'Y') { $ACT = 'Y'; setExtensionMode('activate'); }
-                       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_extensions` SET `ext_active`='".$ACT."' WHERE `id`=%s AND `ext_active`='%s' LIMIT 1",
-                               array(bigintval($ext_id), $active), __FILE__, __LINE__);
+                       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_extensions` SET `ext_active`='%s' WHERE `id`=%s AND `ext_active`='%s' LIMIT 1",
+                               array($ACT, bigintval($ext_id), $active), __FILE__, __LINE__);
 
                        // Run embeded SQL commands
                        doExtensionSqls($ext_id, getExtensionMode());
                }
-       }
-} elseif (((isPostRequestParameterSet('edit')) || (isPostRequestParameterSet('modify'))) && (countPostSelection() > 0) && (!isDemoModeActive())) {
+       } // END - foreach
+
+       // Redirect to prevent missing cache in js.php
+       redirectToUrl('modules.php?module=admin&what=extensions&changed=' . countPostSelection());
+} elseif (((isFormSent('edit')) || (isPostRequestParameterSet('modify'))) && (countPostSelection() > 0) && (!isDemoModeActive())) {
        // Change settings like CSS file load
        if (isPostRequestParameterSet('modify')) {
                // Change entries
@@ -88,7 +91,7 @@ if (isGetRequestParameterSet('reg_ext')) {
                                $active = postRequestParameter('active', $ext_id);
 
                                // Update extension's record
-                               if (getExtensionVersion('sql_patches') >= '0.0.6') {
+                               if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) {
                                        // Update also CSS column when extensions sql_patches is newer or exact v0.0.6
                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_extensions` SET `ext_has_css`='%s', `ext_active`='%s' WHERE `id`=%s LIMIT 1",
                                                array(postRequestParameter('css', $ext_id), $active, $ext_id), __FILE__, __LINE__);
@@ -109,8 +112,8 @@ if (isGetRequestParameterSet('reg_ext')) {
                        }
                }
 
-               // Extensions changed
-               loadTemplate('admin_settings_saved', false, getMessage('ADMIN_EXT_CHANGED'));
+               // Redirect to prevent missing cache in js.php
+               redirectToUrl('modules.php?module=admin&what=extensions&edited=' . countPostSelection());
        } else {
                // Edit selected entries
                $SW = 2; $OUT = '';
@@ -121,7 +124,7 @@ if (isGetRequestParameterSet('reg_ext')) {
                                $css = 'N';
 
                                // Load required data
-                               if (getExtensionVersion('sql_patches') >= '0.0.6') {
+                               if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) {
                                        $result = SQL_QUERY_ESC("SELECT ext_has_css, ext_active FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `id`=%s LIMIT 1",
                                                array(bigintval($ext_id)), __FILE__, __LINE__);
                                        list($css, $active) = SQL_FETCHROW($result);
@@ -134,9 +137,11 @@ if (isGetRequestParameterSet('reg_ext')) {
                                        $css = 'X';
                                }
 
-                               // Output row
+                               // Prepare CSS column
                                $cssSelection = '---';
-                               if (getExtensionVersion('sql_patches') >= '0.0.6') $cssSelection = addSelectionBox('yn', $css, 'css', $ext_id);
+                               if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) {
+                                       $cssSelection = addSelectionBox('yn', $css, 'css', $ext_id);
+                               } // END - if
 
                                // Prepare data for the row template
                                $content = array(
@@ -208,7 +213,7 @@ if (isGetRequestParameterSet('reg_ext')) {
        // Load template
        loadTemplate('admin_extensions_delete', false, $OUT);
        $do = 'delete';
-} elseif ((isPostRequestParameterSet('remove')) && (countPostSelection() > 0) && (!isDemoModeActive())) {
+} elseif ((isFormSent('remove')) && (countPostSelection() > 0) && (!isDemoModeActive())) {
        // Remove extensions from DB (you have to delete all files manually!)
        $cache_update = '0';
        foreach (postRequestParameter('sel') as $ext_id => $active) {
@@ -222,14 +227,23 @@ if (isGetRequestParameterSet('reg_ext')) {
                } // END - if
        } // END - foreach
 
-       // Extensions removed
-       loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_EXTENSIONS_REMOVED', countPostSelection()));
+       // Redirect to prevent missing cache in js.php
+       redirectToUrl('modules.php?module=admin&what=extensions&removed=' . countPostSelection());
 } elseif ((isGetRequestParameterSet('do')) && (!isDemoModeActive())) {
        // Other things to do
        $do = SQL_ESCAPE(secureString(getRequestParameter('do')));
 } elseif (isGetRequestParameterSet('do')) {
        // Demo mode active!
        $do = 'demo';
+} elseif (isGetRequestParameterSet('changed')) {
+       // Extensions changed
+       loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_EXTENSION_CHANGED', bigintval(getRequestParameter('changed'))));
+} elseif (isGetRequestParameterSet('edited')) {
+       // Extensions changed
+       loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_EXTENSION_EDITED', bigintval(getRequestParameter('edited'))));
+} elseif (isGetRequestParameterSet('removed')) {
+       // Extensions changed
+       loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_EXTENSIONS_REMOVED', bigintval(getRequestParameter('removed'))));
 }
 
 // Shall we display active/inactive extensions?
@@ -323,7 +337,7 @@ ORDER BY `ext_name` ASC", __FILE__, __LINE__);
                                        // ... so we can finally register and load it in registration mode
                                        if (registerExtension($ext_name, $ext_id)) {
                                                // Errors?
-                                               if (getTotalFatalErrors() == '0') {
+                                               if (!ifFatalErrorsDetected()) {
                                                        // Extension was found and successfully registered
                                                        loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_EXTENSION_REGISTERED', $ext_name));
 
@@ -331,12 +345,12 @@ ORDER BY `ext_name` ASC", __FILE__, __LINE__);
                                                        if (isExtensionActive('task')) {
                                                                loadTemplate('admin_next_link', false, array(
                                                                        'url'   => 'modules.php?module=admin&what=list_task',
-                                                                       'title' => getMessage('ADMIN_EXT_REGISTER_NEXT_LINK')
+                                                                       'title' => getMessage('ADMIN_EXTENSION_REGISTER_NEXT_LINK')
                                                                ));
                                                        } else {
                                                                loadTemplate('admin_next_link', false, array(
                                                                        'url'   => 'modules.php?module=admin',
-                                                                       'title' => getMessage('ADMIN_EXT_REGISTER_NEXT_LINK')
+                                                                       'title' => getMessage('ADMIN_EXTENSION_REGISTER_NEXT_LINK')
                                                                ));
                                                        }
                                                } else {
@@ -350,9 +364,10 @@ ORDER BY `ext_name` ASC", __FILE__, __LINE__);
                                                        // Remove cache file (will be auto-created again!)
                                                        if ($GLOBALS['cache_instance']->loadCacheFile('config'))    $GLOBALS['cache_instance']->removeCacheFile();
                                                        if ($GLOBALS['cache_instance']->loadCacheFile('extension')) $GLOBALS['cache_instance']->removeCacheFile();
+                                                       if ($GLOBALS['cache_instance']->loadCacheFile('filter'))    $GLOBALS['cache_instance']->removeCacheFile();
                                                        if ($GLOBALS['cache_instance']->loadCacheFile('modules'))   $GLOBALS['cache_instance']->removeCacheFile();
                                                } // END - if
-                                       } elseif (getExtensionVersion($ext_name) != '') {
+                                       } elseif (isExtensionInstalled($ext_name)) {
                                                // Notify the admin that we have a problem here...
                                                loadTemplate('admin_settings_saved', false, getMessage('ADMIN_REG_FAILED_ALREADY'));
                                        } else {
@@ -379,7 +394,7 @@ ORDER BY `ext_name` ASC", __FILE__, __LINE__);
        case 'demo':
                loadTemplate('admin_settings_saved', false, getMessage('SETTINGS_NOT_SAVED'));
                break;
-}
+} // END - switch
 
 // [EOF]
 ?>