]> git.mxchange.org Git - mailer.git/blobdiff - inc/filters.php
Fixes/rewrites for missing sql_patches and check on admin's default access mode ...
[mailer.git] / inc / filters.php
index b34c8376a70cecccbb76d5e39c199818b02ced00..80e45043c371f3cf75eb6e0a291d9d11a58ba38a 100644 (file)
@@ -68,11 +68,11 @@ function INIT_FILTER_SYSTEM () {
        // Load all saved filers if sql_patches is updated
        if (GET_EXT_VERSION("sql_patches") >= "0.5.9") {
                // Init add
-               $ADD = "";
-               if (GET_EXT_VERSION("sql_patches") >= "0.6.0") $ADD = ", `filter_counter`";
+               $add = "";
+               if (GET_EXT_VERSION("sql_patches") >= "0.6.0") $add = ", `filter_counter`";
 
                // Load all active filers
-               $result = SQL_QUERY("SELECT `filter_name`, `filter_function`, `filter_active`".$ADD."
+               $result = SQL_QUERY("SELECT `filter_name`,`filter_function`,`filter_active`".$add."
 FROM `{!_MYSQL_PREFIX!}_filters`
 ORDER BY `filter_id` ASC", __FUNCTION__, __LINE__);
 
@@ -119,6 +119,7 @@ ORDER BY `filter_id` ASC", __FUNCTION__, __LINE__);
        REGISTER_FILTER('post_extension_installed', 'AUTO_ACTIVATE_EXTENSION');
        REGISTER_FILTER('post_extension_installed', 'SOLVE_TASK');
        REGISTER_FILTER('post_extension_installed', 'LOAD_INCLUDES');
+       REGISTER_FILTER('post_extension_installed', 'REMOVE_UPDATES');
 
        // Solving tasks
        REGISTER_FILTER('solve_task', 'SOLVE_TASK');
@@ -244,7 +245,7 @@ function FILTER_FLUSH_FILTERS () {
        INIT_SQLS();
 
        // Are we installing?
-       if (isInstalling()) {
+       if ((isInstalling()) || (!isInstalled())) {
                // Then silently skip this filter
                return true;
        } // END - if
@@ -387,28 +388,28 @@ function FILTER_SOLVE_TASK ($data) {
 }
 
 // Filter to load include files
-function FILTER_LOAD_INCLUDES ($data) {
+function FILTER_LOAD_INCLUDES () {
        // Default is $data as inclusion list
-       $INC_POOL = $data;
+       $data = GET_INC_POOL();
 
        // Is it an array?
        if ((!isset($data)) || (!is_array($data))) {
                // Then abort here
-               debug_report_bug(sprintf("INC_POOL is no array! Type: %s", gettype($INC_POOL)));
+               debug_report_bug(sprintf("INC_POOL is no array! Type: %s", gettype($data)));
        } elseif (isset($data['inc_pool'])) {
                // Use this as new inclusion pool!
-               $INC_POOL = $data['inc_pool'];
+               SET_INC_POOL($data['inc_pool']);
        }
 
        // Check for added include files
-       if (count($INC_POOL) > 0) {
+       if (COUNT_INC_POOL() > 0) {
                // Loads every include file
-               foreach ($INC_POOL as $FQFN) {
+               foreach (GET_INC_POOL() as $FQFN) {
                        LOAD_INC_ONCE($FQFN);
                } // END - foreach
 
                // Reset array
-               if (isset($data['inc_pool'])) $data['inc_pool'] = array();
+               INIT_INC_POOL();
        } // END - if
 
        // Continue with processing
@@ -438,7 +439,7 @@ function FILTER_RUN_SQLS ($data) {
                                } else {
                                        // Run regular SQL command
                                        //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "Running regular query: {$sql}");
-                                       $result = SQL_QUERY($sql, __FUNCTION__, __LINE__, false);
+                                       SQL_QUERY($sql, __FUNCTION__, __LINE__, false);
                                }
                        } // END - if
                } // END - foreach
@@ -484,7 +485,7 @@ function FILTER_UPDATE_LOGIN_DATA () {
                } // END - if
 
                // Update last module / online time
-               SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET last_module='%s', last_online=UNIX_TIMESTAMP(), REMOTE_ADDR='%s' WHERE userid=%s LIMIT 1",
+               SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET `last_module`='%s', last_online=UNIX_TIMESTAMP(), REMOTE_ADDR='%s' WHERE userid=%s LIMIT 1",
                        array($GLOBALS['what'], GET_REMOTE_ADDR(), getUserId()), __FUNCTION__, __LINE__);
        }  else {
                // Destroy session, we cannot update!
@@ -523,5 +524,29 @@ function FILTER_INIT_RANDOMIZER () {
        mt_srand(generateSeed() + constant('_ADD'));
 }
 
+// Filter for removing updates
+function FILTER_REMOVE_UPDATES () {
+       // Init removal list
+       EXT_INIT_REMOVAL_LIST();
+
+       // Add the current extension to it
+       EXT_ADD_CURRENT_TO_REMOVAL_LIST();
+
+       // Simply remove it
+       UNSET_EXT_SQLS();
+
+       // Do we need to remove update depency?
+       if (EXT_COUNT_UPDATE_DEPENDS() > 0) {
+               // Then find all updates we shall no longer execute
+               foreach (EXT_GET_UPDATE_DEPENDS() as $id=>$ext_name) {
+                       // Shall we remove this update?
+                       if (in_array($ext_name, EXT_GET_REMOVAL_LIST())) {
+                               // Then remove this extension!
+                               EXT_REMOVE_UPDATE_DEPENDS($ext_name);
+                       } // END - if
+               } // END - foreach
+       } // END - if
+}
+
 //
 ?>