X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffilters.php;h=3027b456ac09659e86c18114aaf2477f710062d1;hp=f100892efe2a292be3a60ac8980fc1b5030ec2b0;hb=7bfee4bc71e5b7b741f3451b27ba0a09574dfca8;hpb=10570955d1813975b534da2eccd72fd04e2fa585 diff --git a/inc/filters.php b/inc/filters.php index f100892efe..3027b456ac 100644 --- a/inc/filters.php +++ b/inc/filters.php @@ -282,7 +282,7 @@ function FILTER_UPDATE_LOGIN_DATA () { // Recheck if logged in if (!isMember()) return false; - // Secure user ID + // Secure user id setUserId(getSession('userid')); // Load last module and last online time @@ -327,6 +327,15 @@ function FILTER_UPDATE_LOGIN_DATA () { // Filter for initializing randomizer function FILTER_INIT_RANDOMIZER () { + // Only execute this filter if installed + if ((!isInstalled()) || (!isExtensionInstalledAndNewer('other', '0.2.5'))) return; + + // Take a prime number which is long (if you know a longer one please try it out!) + setConfigEntry('_PRIME', 591623); + + // Calculate "entropy" with the prime number (for code generation) + setConfigEntry('_ADD', (getConfig('_PRIME') * getConfig('_PRIME') / (pi() * getConfig('code_length') + 1))); + // Simply init the randomizer with seed and _ADD value mt_srand(generateSeed() + getConfig('_ADD')); } @@ -447,11 +456,17 @@ function FILTER_COMPILE_EXTENSION ($code) { if ((count($matches) > 0) && (count($matches[3]) > 0)) { // Replace all matches foreach ($matches[3] as $key => $cmd) { - // Construct call-back function name - $functionName = 'getExtension' . ucfirst(strtolower($cmd)); + // By default we have no extension installed, so 'false' is assumed + $replacer = 'false'; - // Call the function - $replacer = call_user_func_array($functionName, $matches[4][$key]); + // Is the extension installed? + if (isExtensionActive($matches[4][$key])) { + // Construct call-back function name + $functionName = 'getExtension' . ucfirst(strtolower($cmd)); + + // Call the function + $replacer = call_user_func_array($functionName, $matches[4][$key]); + } // END - if // Replace it and insert parameter for GET request $code = str_replace($matches[0][$key], sprintf("&%s=%s&rev=%s", $cmd, $replacer, getConfig('CURR_SVN_REVISION')), $code); @@ -488,7 +503,7 @@ function FILTER_RUN_RESET_INCLUDES () { setIncludePool('reset', getArrayFromDirectory('inc/reset/', 'reset_')); // Update database - if (getConfig('DEBUG_RESET') != 'Y') updateConfiguration('last_update', time()); + if ((!isConfigEntrySet('DEBUG_RESET')) || (getConfig('DEBUG_RESET') != 'Y')) updateConfiguration('last_update', time()); // Is the config entry set? if (isExtensionInstalledAndNewer('sql_patches', '0.4.2')) { @@ -501,7 +516,7 @@ function FILTER_RUN_RESET_INCLUDES () { mergeIncludePool('reset', getArrayFromDirectory('inc/weekly/', 'weekly_')); // Update config - if (getConfig('DEBUG_WEEKLY') != 'Y') updateConfiguration('last_week', $currWeek); + if ((isConfigEntrySet('DEBUG_WEEKLY')) && (getConfig('DEBUG_WEEKLY') != 'Y')) updateConfiguration('last_week', $currWeek); } // END - if // Create current month mark @@ -513,7 +528,7 @@ function FILTER_RUN_RESET_INCLUDES () { mergeIncludePool('reset', getArrayFromDirectory('inc/monthly/', 'monthly_')); // Update config - if (getConfig('DEBUG_MONTHLY') != 'Y') updateConfiguration('last_month', $currMonth); + if ((isConfigEntrySet('DEBUG_MONTHLY')) && (getConfig('DEBUG_MONTHLY') != 'Y')) updateConfiguration('last_month', $currMonth); } // END - if } // END - if @@ -571,7 +586,16 @@ function FILTER_DETERMINE_WHAT_ACTION () { // Get all values if ((getOutputMode() != 1) && (getOutputMode() != -1)) { // Fix module - if (!isModuleSet()) setModule('index'); + if (!isModuleSet()) { + // Is the request element set? + if (isGetRequestElementSet('module')) { + // Set module from request + setModule(getRequestElement('module')); + } else { + // Set default module 'index' + setModule('index'); + } + } // END - if // Fix 'what' if not yet set if (!isWhatSet()) setWhat(getWhatFromModule(getModule())); @@ -623,6 +647,9 @@ function FILTER_TRIGGER_SENDING_POOL () { // Filter for checking and updating SVN revision function FILTER_CHECK_SVN_REVISION () { + // Only execute this filter if installed and all config entries are there + if ((!isInstalled()) || (!isConfigEntrySet('patch_level'))) return; + // Check for patch level differences between databases and current hard-coded if ((getConfig('CURR_SVN_REVISION') > getConfig('patch_level')) || (getConfig('patch_level') == 'CURR_SVN_REVISION') || (getConfig('patch_ctime') == 'UNIX_TIMES')) { // Update database and CONFIG array @@ -634,9 +661,12 @@ 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; + // 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())) || (getConfig('DEBUG_RESET') == 'Y')) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('register')) && (getOutputMode() != 1)) { + 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(); } // END - if @@ -645,7 +675,7 @@ function FILTER_RUN_DAILY_RESET () { // Filter for loading more runtime includes (not for installation) function FILTER_LOAD_RUNTIME_INCLUDES () { // Load more includes - foreach (array('inc/session.php','inc/versions.php') as $inc) { + foreach (array('inc/databases.php','inc/session.php','inc/versions.php') as $inc) { // Load the include loadIncludeOnce($inc); } // END - foreach @@ -684,7 +714,7 @@ function FILTER_CHECK_ADMIN_ACL () { // Init random number/cache buster function FILTER_INIT_RANDOM_NUMBER () { // Is the extension sql_patches installed and at least 0.3.6? - if ((isExtensionActive('sql_patches')) && (getExtensionVersion('sql_patches') >= '0.3.6')) { + if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (isExtensionInstalledAndNewer('other', '0.2.5'))) { // Generate random number setConfigEntry('RAND_NUMBER', generateRandomCode(10, mt_rand(10000, 32766), getUserId(), '')); } else { @@ -793,7 +823,7 @@ function FILTER_DISPLAY_COPYRIGHT () { // Shall we display the copyright notice? if ((!isGetRequestElementSet('frame')) && (basename($_SERVER['PHP_SELF']) != 'mailid_top.php') && ((getConfig('WRITE_FOOTER') == 'Y') || (isInstalling())) && ($GLOBALS['header_sent'] == 2)) { // Backlink enabled? - if ((getConfig('ENABLE_BACKLINK') == 'Y') || (isInstalling())) { + if (((isConfigEntrySet('ENABLE_BACKLINK')) && (getConfig('ENABLE_BACKLINK') == 'Y')) || (isInstalling())) { // Copyright with backlink, thanks! :-) loadTemplate('copyright_backlink'); } else {