// Is the filter already initialized?
if ((isset($GLOBALS['filters']['chains'])) && (is_array($GLOBALS['filters']['chains']))) {
// Then abort here
- addFatalMessage(__FUNCTION__, __LINE__, getMessage('FILTER_FAILED_ALREADY_INIT'));
- return false;
+ debug_report_bug(getMessage('FILTER_FAILED_ALREADY_INIT'));
} // END - if
// Init the filter system (just some ideas)
$GLOBALS['filters']['counter'] = array();
// Load all saved filers if sql_patches is updated
- if (GET_EXT_VERSION('sql_patches') >= '0.5.9') {
+ if (isset($GLOBALS['cache_array']['filter'])) {
+ // Found in cache so rewrite the array
+ $filterArray = array();
+ foreach ($GLOBALS['cache_array']['filter']['filter_name'] as $idx => $filterName) {
+ // Get filter function
+ $filterFunction = $GLOBALS['cache_array']['filter']['filter_function'][$idx];
+
+ // Add the element with mapped index
+ $filterArray['counter'][$filterName][$filterFunction] = $GLOBALS['cache_array']['filter']['filter_counter'][$idx];
+ $filterArray['loaded'][$filterName][$filterFunction] = true;
+ $filterArray['chains'][$filterName][$filterFunction] = $GLOBALS['cache_array']['filter']['filter_active'][$idx];
+ } // END - foreach
+
+ // Set the array
+ //die('<pre>'.print_r($filterArray, true).'</pre>');
+ $GLOBALS['filters'] = $filterArray;
+
+ // Remove the cache
+ unset($GLOBALS['cache_array']['filter']);
+ } elseif (GET_EXT_VERSION('sql_patches') >= '0.5.9') {
// Init add
$add = '';
if (GET_EXT_VERSION('sql_patches') >= '0.6.0') $add = ", `filter_counter`";
// Free result
SQL_FREERESULT($result);
- } // END - if
- // Init filters
- registerFilter('init', 'UPDATE_LOGIN_DATA');
- registerFilter('init', 'INIT_RANDOMIZER');
+ // Init filters
+ registerFilter('init', 'UPDATE_LOGIN_DATA');
+ registerFilter('init', 'INIT_RANDOMIZER');
- // Login failures handler
- registerFilter('post_youhere_line', 'CALL_HANDLER_LOGIN_FAILTURES');
+ // Login failures handler
+ registerFilter('post_youhere_line', 'CALL_HANDLER_LOGIN_FAILTURES');
- // Filters for pre-extension-registration
- registerFilter('pre_extension_installed', 'RUN_SQLS');
+ // Filters for pre-extension-registration
+ registerFilter('pre_extension_installed', 'RUN_SQLS');
- // Filters for post-extension-registration
- registerFilter('post_extension_installed', 'AUTO_ACTIVATE_EXTENSION');
- registerFilter('post_extension_installed', 'SOLVE_TASK');
- registerFilter('post_extension_installed', 'LOAD_INCLUDES');
- registerFilter('post_extension_installed', 'REMOVE_UPDATES');
+ // Filters for post-extension-registration
+ registerFilter('post_extension_installed', 'AUTO_ACTIVATE_EXTENSION');
+ registerFilter('post_extension_installed', 'SOLVE_TASK');
+ registerFilter('post_extension_installed', 'LOAD_INCLUDES');
+ registerFilter('post_extension_installed', 'REMOVE_UPDATES');
- // Solving tasks
- registerFilter('solve_task', 'SOLVE_TASK');
+ // Solving tasks
+ registerFilter('solve_task', 'SOLVE_TASK');
- // Loading includes in general
- registerFilter('load_includes', 'LOAD_INCLUDES');
+ // Loading includes in general
+ registerFilter('load_includes', 'LOAD_INCLUDES');
- // Run SQLs
- registerFilter('run_sqls', 'RUN_SQLS');
+ // Run SQLs
+ registerFilter('run_sqls', 'RUN_SQLS');
- // Admin ACL check
- registerFilter('check_admin_acl', 'CHECK_ADMIN_ACL');
+ // Admin ACL check
+ registerFilter('check_admin_acl', 'CHECK_ADMIN_ACL');
- // Register shutdown filters
- registerFilter('shutdown', 'FLUSH_FILTERS');
+ // Register shutdown filters
+ registerFilter('shutdown', 'FLUSH_FILTERS');
+ } // END - if
}
// "Registers" a new filter function
foreach ($filterArray as $filterFunction => $cnt) {
// Construct and add the query
ADD_SQL(sprintf("UPDATE `{!_MYSQL_PREFIX!}_filters` SET `filter_counter`=%s WHERE `filter_name`='%s' AND `filter_function`='%s' LIMIT 1",
- bigintval($cnt),
- $filterName,
- $filterFunction
+ bigintval($cnt),
+ $filterName,
+ $filterFunction
));
} // END - foreach
} // END - foreach