More fixes for installation and extension registration
[mailer.git] / inc / filters.php
index b3c4142..1019759 100644 (file)
@@ -408,7 +408,7 @@ function FILTER_COMPILE_CONFIG ($code, $compiled = false) {
                                        // Is the config valid?
                                        if (isConfigEntrySet($matches[1][$key])) {
                                                // Set it for caching
-                                               $GLOBALS['compile_config'][$matches[1][$key]] = "\".getConfig('" . $matches[1][$key] . "').\"";
+                                               $GLOBALS['compile_config'][$matches[1][$key]] = "\" . getConfig('" . $matches[1][$key] . "') . \"";
                                        } elseif (isConfigEntrySet('default_' . strtoupper($matches[1][$key]))) {
                                                // Use default value
                                                $GLOBALS['compile_config'][$matches[1][$key]] = "\" . getConfig('" . 'DEFAULT_' . strtoupper($matches[1][$key]) . "') . \"";
@@ -525,14 +525,20 @@ function FILTER_COMPILE_EXTENSION ($code) {
                                        break;
 
                                case 'ext':
-                                       // Construct call-back function name
-                                       $functionName = 'getExtension' . ucfirst(strtolower($callback));
+                                       // Not installed is default
+                                       $replacer = 'false';
 
-                                       // Construct call of the function
-                                       $replacer = "\" . call_user_func_array('" . $functionName . "', array('" . $matches[4][$key] . "', true)) . \"";
+                                       // Is the extension installed?
+                                       if (isExtensionInstalled($matches[4][$key])) {
+                                               // Construct call-back function name
+                                               $functionName = 'getExtension' . ucfirst(strtolower($callback));
+
+                                               // Construct call of the function
+                                               $replacer = "\" . call_user_func_array('" . $functionName . "', array('" . $matches[4][$key] . "', true)) . \"";
+                                       } // END - if
 
                                        // Replace it and insert parameter for GET request
-                                       $code = str_replace($matches[0][$key], sprintf("&ext=%s&rev=\" . getConfig('CURR_SVN_REVISION') . \"", $replacer), $code);
+                                       $code = str_replace($matches[0][$key], sprintf("&ext=%s&ver=%s&rev=\" . getConfig('CURR_SVN_REVISION') . \"", $matches[4][$key], $replacer), $code);
                                        break;
 
                                case 'config': // @TODO FILTER_COMPILE_CONFIG does not handle call-back functions so we handle it here again
@@ -584,7 +590,7 @@ function FILTER_RUN_RESET_INCLUDES () {
        // Is the reset set or old sql_patches?
        if (((!isResetModeEnabled()) || (!isExtensionInstalled('sql_patches'))) && (getOutputMode() == '0')) {
                // Then abort here
-               logDebugMessage(__FUNCTION__, __LINE__, 'Cannot run reset! Please report this bug. Thanks');
+               debug_report_bug('Cannot run reset! enabled='.intval(isResetModeEnabled()).',ext='.intval(isExtensionInstalled('sql_patches')).' Please report this bug. Thanks');
        } // END - if
 
        // Get more daily reset scripts
@@ -753,10 +759,9 @@ function FILTER_CHECK_SVN_REVISION () {
 // Filter for running daily reset
 function FILTER_RUN_DAILY_RESET () {
        // Only execute this filter if installed
-       if ((!isInstalled()) || (!isAdminRegistered())) return;
+       if ((isInstallationPhase()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalled('sql_patches'))) return;
 
        // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D
-       // 012    3              4             43        3         4432    2         3             3       21    1                    221    1                 221    1                  2          21    1             22     10
        if (((date('d', getConfig('last_update')) != date('d', time())) || ((isConfigEntrySet('DEBUG_RESET')) && (getConfig('DEBUG_RESET') == 'Y'))) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('register')) && (getOutputMode() != 1)) {
                // Tell every module we are in reset-mode!
                doReset();