X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffilters.php;h=92a0174bb59e2b548634eac357a494c6986846eb;hp=2b241f52d69f48ad12796c5002bde464e67a0c87;hb=6f9f29d5caee60a2cceae33a7a53e1b4c7319a0c;hpb=0f3a135204757cc8750262871c8e62c42300acb4 diff --git a/inc/filters.php b/inc/filters.php index 2b241f52d6..92a0174bb5 100644 --- a/inc/filters.php +++ b/inc/filters.php @@ -17,7 +17,7 @@ * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * * Copyright (c) 2009 - 2011 by Mailer Developer Team * - * For more information visit: http://www.mxchange.org * + * For more information visit: http://mxchange.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -60,8 +60,12 @@ function FILTER_FLUSH_FILTERS () { // Is the extension ext-sql_patches updated? if ((!isExtensionInstalled('sql_patches')) || (isExtensionInstalledAndOlder('sql_patches', '0.5.9'))) { + // Log only in debug mode + if (isDebugModeEnabled()) { + logDebugMessage(__FUNCTION__, __LINE__, 'Cannot flush filters, sql_patches might be missing. isExtensionInstalled()=' . intval(isExtensionInstalled('sql_patches')) . ',isExtensionInstalledAndOlder()=' . intval(isExtensionInstalledAndOlder('sql_patches', '0.5.9'))); + } // END - if + // Abort silently here - logDebugMessage(__FUNCTION__, __LINE__, 'Cannot flush filters, sql_patches might be missing. isExtensionInstalled()=' . isExtensionInstalled('sql_patches') . ',isExtensionInstalledAndOlder()=' . isExtensionInstalledAndOlder('sql_patches', '0.5.9')); return false; } // END - if @@ -132,15 +136,15 @@ function FILTER_FLUSH_FILTERS () { } // Filter for calling the handler for login failures -function FILTER_CALL_HANDLER_LOGIN_FAILTURES ($data) { +function FILTER_CALL_HANDLER_LOGIN_FAILTURES ($filterData) { // Init content - $content = $data; + $content = $filterData; // Handle failed logins here if not in guest - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'type=' . $data['type'] . ',action=' . getAction() . ',what=' . getWhat() . ',level=' . $data['access_level']); - if ((($data['type'] == 'what') || ($data['type'] == 'action') && ((!isWhatSet()) || (getWhat() == 'overview') || (getWhat() == getIndexHome()))) && ($data['access_level'] != 'guest') && ((isExtensionInstalledAndNewer('sql_patches', '0.4.7')) || (isExtensionInstalledAndNewer('admins', '0.7.6')))) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'type=' . $filterData['type'] . ',action=' . getAction() . ',what=' . getWhat() . ',level=' . $filterData['access_level']); + if ((($filterData['type'] == 'what') || ($filterData['type'] == 'action') && ((!isWhatSet()) || (getWhat() == 'overview') || (getWhat() == getIndexHome()))) && ($filterData['access_level'] != 'guest') && ((isExtensionInstalledAndNewer('sql_patches', '0.4.7')) || (isExtensionInstalledAndNewer('admins', '0.7.6')))) { // Handle failure - $content['content'] .= handleLoginFailures($data['access_level']); + $content['content'] .= handleLoginFailures($filterData['access_level']); } // END - if // Return the content @@ -163,58 +167,58 @@ function FILTER_REDIRECT_TO_LOGOUT_SQL_PATCHES () { } // Filter for auto-activation of a extension -function FILTER_AUTO_ACTIVATE_EXTENSION ($data) { +function FILTER_AUTO_ACTIVATE_EXTENSION ($filterData) { // Debug message - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $data['ext_name'] . ',isThisExtensionAlwaysActive()=' . intval(isThisExtensionAlwaysActive())); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $filterData['ext_name'] . ',isThisExtensionAlwaysActive()=' . intval(isThisExtensionAlwaysActive())); // Is this extension always activated? if (isThisExtensionAlwaysActive()) { // Then activate the extension - doActivateExtension($data['ext_name']); + doActivateExtension($filterData['ext_name']); } // END - if // Return the data - return $data; + return $filterData; } // Filter for solving task given task -function FILTER_SOLVE_TASK ($data) { +function FILTER_SOLVE_TASK ($filterData) { // Don't solve anything if no admin! if (!isAdmin()) { - return $data; + return $filterData; } // END - if // Is this a direct task id or array element task_id is found? - if (is_int($data)) { + if (is_int($filterData)) { // Then solve it... - adminSolveTask($data); - } elseif ((is_array($data)) && (isset($data['task_id']))) { + adminSolveTask($filterData); + } elseif ((is_array($filterData)) && (isset($filterData['task_id']))) { // Solve it... - adminSolveTask($data['task_id']); + adminSolveTask($filterData['task_id']); } else { // Not detectable! - debug_report_bug(__FUNCTION__, __LINE__, sprintf("Cannot resolve task. data[%s]=
%s
", gettype($data), print_r($data, true))); + debug_report_bug(__FUNCTION__, __LINE__, sprintf("Cannot resolve task. data[%s]=
%s
", gettype($filterData), print_r($filterData, true))); } // Return the data - return $data; + return $filterData; } // Filter to load include files -function FILTER_LOAD_INCLUDES ($pool) { +function FILTER_LOAD_INCLUDES ($filterData) { // Is it null? - if (is_null($pool)) { + if (is_null($filterData)) { // This should not happen! debug_report_bug(__FUNCTION__, __LINE__, 'pool is null.'); } // END - if // Is the pool an array and 'pool' set? - if ((is_array($pool)) && (isset($pool['pool']))) { + if ((is_array($filterData)) && (isset($filterData['pool']))) { // Then use it as pool - $realPool = $pool['pool']; + $realPool = $filterData['pool']; } else { // Default is $data as inclusion list - $realPool = $pool; + $realPool = $filterData; } // Get inc pool @@ -239,20 +243,20 @@ function FILTER_LOAD_INCLUDES ($pool) { } // END - if // Continue with processing - return $pool; + return $filterData; } // Filter for running SQL commands -function FILTER_RUN_SQLS ($data) { +function FILTER_RUN_SQLS ($filterData) { // Debug message //* DEBUG: */ die('getSqls()=
'.print_r(getSqls(), true).'
ext_update_depends=
'.print_r($GLOBALS['ext_update_depends'], true).'
'); //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Entered!'); // Is the array there? - if ((isSqlsValid()) && ((!isset($data['dry_run'])) || ($data['dry_run'] == false))) { + if ((isSqlsValid()) && ((!isset($filterData['dry_run'])) || ($filterData['dry_run'] == false))) { // Run SQL commands //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Found ' . countSqls() . ' queries to run.'); - foreach (getSqls() as $mode=>$sqls) { + foreach (getSqls() as $mode => $sqls) { // Debug message //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'mode=' . $mode . ',count()=' . count($sqls)); @@ -262,8 +266,8 @@ function FILTER_RUN_SQLS ($data) { $sql = trim($sql); // Is 'enable_codes' not set? Then set it to true - if (!isset($data['enable_codes'])) { - $data['enable_codes'] = true; + if (!isset($filterData['enable_codes'])) { + $filterData['enable_codes'] = true; } // END - if // Is there still a query left? @@ -271,12 +275,12 @@ function FILTER_RUN_SQLS ($data) { // Do we have an "ALTER TABLE" command? if (substr(strtolower($sql), 0, 11) == 'alter table') { // Analyse the alteration command - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Alterting table: ' . $sql . ',enable_codes=' . intval($data['enable_codes'])); - SQL_ALTER_TABLE($sql, __FUNCTION__, __LINE__, $data['enable_codes']); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Alterting table: ' . $sql . ',enable_codes=' . intval($filterData['enable_codes'])); + SQL_ALTER_TABLE($sql, __FUNCTION__, __LINE__, $filterData['enable_codes']); } else { // Run regular SQL command - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Running regular query: ' . $sql . ',enable_codes=' . intval($data['enable_codes'])); - SQL_QUERY($sql, __FUNCTION__, __LINE__, $data['enable_codes']); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Running regular query: ' . $sql . ',enable_codes=' . intval($filterData['enable_codes'])); + SQL_QUERY($sql, __FUNCTION__, __LINE__, $filterData['enable_codes']); } } // END - if } // END - foreach @@ -355,7 +359,7 @@ function FILTER_INIT_RANDOMIZER () { } // Filter for removing updates -function FILTER_REMOVE_UPDATES ($data) { +function FILTER_REMOVE_UPDATES ($filterData) { // Init removal list initExtensionRemovalList(); @@ -378,7 +382,7 @@ function FILTER_REMOVE_UPDATES ($data) { } // END - if // Return data - return $data; + return $filterData; } // Determines username for current user state @@ -469,10 +473,10 @@ function FILTER_COMPILE_CONFIG ($code, $compiled = false) { } // Filter for compiling expression code -function FILTER_COMPILE_EXPRESSION_CODE ($code) { +function FILTER_COMPILE_EXPRESSION_CODE ($filterData) { // Compile {%cmd,callback,extraFunction=some_value%} to get expression code snippets // See switch() command below for supported commands - preg_match_all('/\{%(([a-zA-Z0-9-_,]+)(=([^\}]+)){0,1})*%\}/', $code, $matches); + preg_match_all('/\{%(([a-zA-Z0-9-_,]+)(=([^\}]+)){0,1})*%\}/', $filterData, $matches); //* DEBUG: */ debugOutput(__FUNCTION__.'['.__LINE__.']:
'.print_r($matches, true).'
'); // Default is from outputHtml() @@ -527,7 +531,7 @@ function FILTER_COMPILE_EXPRESSION_CODE ($code) { 'matches' => $matches, 'key' => $key, 'mode' => getScriptOutputMode(), - 'code' => $code, + 'code' => $filterData, 'callback' => $callback, 'extra_func' => $extraFunction, 'extra_func2' => $extraFunction2, @@ -536,7 +540,7 @@ function FILTER_COMPILE_EXPRESSION_CODE ($code) { // Call it //* DEBUG: */ debugOutput(__FUNCTION__ . '[' . __LINE__ . ']: function=' . $commandFunction); - $code = call_user_func($commandFunction, $data); + $filterData = call_user_func($commandFunction, $data); } else { // Unsupported command detected logDebugMessage(__FUNCTION__, __LINE__, 'Command cmd=' . $cmd . ', callback=' . $callback . ', extra=' . $extraFunction . ' is unsupported.'); @@ -546,12 +550,12 @@ function FILTER_COMPILE_EXPRESSION_CODE ($code) { // Do we have non-HTML mode? if (!isHtmlOutputMode()) { - $code = decodeEntities($code); + $filterData = decodeEntities($filterData); } // END - if // Return compiled code - //* DEBUG: */ debugOutput(__FUNCTION__.'['.__LINE__.']:
'.($code).'
'); - return $code; + //* DEBUG: */ debugOutput(__FUNCTION__.'['.__LINE__.']:
'.($filterData).'
'); + return $filterData; } // Runs some generic filter update steps @@ -688,9 +692,9 @@ function FILTER_DETERMINE_WHAT_ACTION () { // Fix module if (!isModuleSet()) { // Is the request element set? - if (isGetRequestParameterSet('module')) { + if (isGetRequestElementSet('module')) { // Set module from request - setModule(getRequestParameter('module')); + setModule(getRequestElement('module')); } elseif (isHtmlOutputMode()) { // Set default module 'index' setModule('index'); @@ -774,7 +778,7 @@ function FILTER_RUN_DAILY_RESET () { } // END - if // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D - if (((getDay(getConfig('last_update')) != getDay()) || (isDebugResetEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestParameterSet('register')) && (!isCssOutputMode())) { + if (((getDay(getConfig('last_update')) != getDay()) || (isDebugResetEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('register')) && (!isCssOutputMode())) { // Tell every module we are in reset-mode! doReset(); } // END - if @@ -788,7 +792,7 @@ function FILTER_RUN_HOURLY_RESET () { } // END - if // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D - if ((((isConfigEntrySet('last_hour')) && (getConfig('last_hour') != getHour())) || (isDebugResetEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestParameterSet('register')) && (!isCssOutputMode())) { + if ((((isConfigEntrySet('last_hour')) && (getConfig('last_hour') != getHour())) || (isDebugResetEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('register')) && (!isCssOutputMode())) { // Tell every module we are in reset-mode! doHourly(); } // END - if @@ -934,7 +938,7 @@ function FILTER_HANDLE_FATAL_ERRORS () { // Filter for displaying copyright line function FILTER_DISPLAY_COPYRIGHT () { // Shall we display the copyright notice? - if ((!isGetRequestParameterSet('frame')) && (basename($_SERVER['PHP_SELF']) != 'mailid_top.php') && ((getConfig('WRITE_FOOTER') == 'Y') || (isInstalling())) && ($GLOBALS['header_sent'] == 2)) { + if ((!isGetRequestElementSet('frame')) && (basename($_SERVER['PHP_SELF']) != 'mailid_top.php') && ((getConfig('WRITE_FOOTER') == 'Y') || (isInstalling())) && ($GLOBALS['header_sent'] == 2)) { // Backlink enabled? if (((isConfigEntrySet('ENABLE_BACKLINK')) && (getConfig('ENABLE_BACKLINK') == 'Y')) || (isInstalling())) { // Copyright with backlink, thanks! :-) @@ -950,7 +954,7 @@ function FILTER_DISPLAY_COPYRIGHT () { function FILTER_DISPLAY_PARSING_TIME () { // Shall we display the parsing time and number of queries? // 1234 5 54 4 5 5 4 4 5 543 3 4432 2 33 2 2 21 - if ((((isExtensionInstalledAndNewer('sql_patches', '0.4.1')) && (getConfig('show_timings') == 'Y') && (!isGetRequestParameterSet('frame'))) || (isInstallationPhase())) && (isHtmlOutputMode()) && ($GLOBALS['header_sent'] == 2)) { + if ((((isExtensionInstalledAndNewer('sql_patches', '0.4.1')) && (getConfig('show_timings') == 'Y') && (!isGetRequestElementSet('frame'))) || (isInstallationPhase())) && (isHtmlOutputMode()) && ($GLOBALS['header_sent'] == 2)) { // Then display it here displayParsingTime(); } // END - if @@ -1016,18 +1020,18 @@ LIMIT 1", } // Try to login the admin by setting some session/cookie variables -function FILTER_DO_LOGIN_ADMIN ($data) { +function FILTER_DO_LOGIN_ADMIN ($filterData) { // Now set all session variables and store the result for later processing $GLOBALS['admin_login_success'] = (( - setAdminMd5(encodeHashForCookie($data['pass_hash'])) + setAdminMd5(encodeHashForCookie($filterData['pass_hash'])) ) && ( - setAdminId($data['id']) + setAdminId($filterData['id']) ) && ( setAdminLast(time()) )); // Return the data for further processing - return $data; + return $filterData; } // Filter for loading page header, this should be ran first! @@ -1085,21 +1089,21 @@ function FILTER_SET_CURRENT_DATE () { } // Filter for marking extension as installed -function FILTER_EXTENSION_MARK_INSTALLED ($data) { +function FILTER_EXTENSION_MARK_INSTALLED ($filterData) { // Mark it as installed - $GLOBALS['ext_is_installed'][$data['ext_name']] = true; + $GLOBALS['ext_is_installed'][$filterData['ext_name']] = true; } // Filter for generating mails links for 'pool' mails -function FILTER_GENERATE_POOL_MAIL_LINKS ($data) { +function FILTER_GENERATE_POOL_MAIL_LINKS ($filterData) { // Is type 'mid'? - if ($data['type'] == 'mid') { + if ($filterData['type'] == 'mid') { // Load template - $data['__output'] .= loadTemplate('admin_links_' . strtolower($data['mail_status']) . '_pool_mail', true, $data); + $filterData['__output'] .= loadTemplate('admin_links_' . strtolower($filterData['mail_status']) . '_pool_mail', true, $filterData); } // END - if // Return data - return $data; + return $filterData; } // Filter to activate exchange @@ -1113,8 +1117,8 @@ function FILTER_ACTIVATE_EXCHANGE () { // Check total amount of users if (getTotalConfirmedUser() >= getActivateXchange()) { // Activate System - addSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `mem_only`='Y' WHERE `module`='order' LIMIT 1"); - addSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='order' OR `what`='unconfirmed' LIMIT 2"); + addSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N',`hidden`='N',`mem_only`='Y' WHERE `module`='order' LIMIT 1"); + addSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y',`locked`='N' WHERE `what`='order' OR `what`='unconfirmed' LIMIT 2"); // Run SQLs runFilterChain('run_sqls'); @@ -1128,18 +1132,32 @@ function FILTER_ACTIVATE_EXCHANGE () { } // Filter to handle configuration -function FILTER_HANDLE_HOME_IN_INDEX_SETTING ($data) { +function FILTER_HANDLE_HOME_IN_INDEX_SETTING ($filterData) { // Is ext-sql_patches up-to-date? if ((isExtensionInstalledAndNewer('sql_patches', '0.8.3')) && (isDisplayHomeInIndexEnabled())) { // Is 'search' as same as 'index_home'? - if ($data['search'] == getIndexHome()) { + if ($filterData['search'] == getIndexHome()) { // Then set 'content' to link to index.php - $data['content'] = $data['prefix'] . '' . getTitleFromMenu($data['access_level'], $data['search'], $data['type'], $data['add']) . ''; + $filterData['content'] = $filterData['prefix'] . '' . getTitleFromMenu($filterData['access_level'], $filterData['search'], $filterData['type'], $filterData['add']) . ''; } // END - if } // END - if // Return data - return $data; + return $filterData; +} + +// Filter to add history entry +function FILTER_ADD_HISTORY_ENTRY ($filterData) { + // Add the entry + SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_history` (`history_subject`,`history_userid`,`history_value`) VALUES ('%s',%s,'%s')", + $filterData, + __FUNCTION__, __LINE__); + + // Remember insert id for other filters + $filterData['history_id'] = SQL_INSERTID(); + + // Return data + return $filterData; } // [EOF]