]> git.mxchange.org Git - mailer.git/blobdiff - inc/filters.php
More globals rewritten, see ticket #100
[mailer.git] / inc / filters.php
index fea4d142fd393beb224031759ad8b34a2e00ab65..80e45043c371f3cf75eb6e0a291d9d11a58ba38a 100644 (file)
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Funktionen fuer Filter-System                    *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * Needs to be in all Files and every File needs "svn propset           *
+ * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
  * For more information visit: http://www.mxchange.org                  *
@@ -63,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__);
 
@@ -114,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');
@@ -238,6 +244,12 @@ function FILTER_FLUSH_FILTERS () {
        // Clear all previous SQL queries
        INIT_SQLS();
 
+       // Are we installing?
+       if ((isInstalling()) || (!isInstalled())) {
+               // Then silently skip this filter
+               return true;
+       } // END - if
+
        // Is a database link here and not in installation mode?
        if ((!SQL_IS_LINK_UP()) && (!isInstalling())) {
                // Abort here
@@ -376,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
@@ -427,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
@@ -446,11 +458,11 @@ function FILTER_UPDATE_LOGIN_DATA () {
        if (!IS_MEMBER()) return false;
 
        // Secure user ID
-       $GLOBALS['userid'] = bigintval(get_session('userid'));
+       setUserId(get_session('userid'));
 
        // Load last module and last online time
        $result = SQL_QUERY_ESC("SELECT last_module, last_online FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1",
-               array($GLOBALS['userid']), __FUNCTION__, __LINE__);
+               array(getUserId()), __FUNCTION__, __LINE__);
 
        // Entry found?
        if (SQL_NUMROWS($result) == 1) {
@@ -473,8 +485,8 @@ 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",
-                       array($GLOBALS['what'], GET_REMOTE_ADDR(), $GLOBALS['userid']), __FUNCTION__, __LINE__);
+               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!
                destroy_user_session();
@@ -512,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
+}
+
 //
 ?>