X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fwrapper-functions.php;h=036a89b0046f9efa308bd4f9142d422816e752b6;hp=bb570f585aeee4b92253ce8aef94166df8c36d45;hb=1551e5820800685c80c19871a376986c0ad6f0f6;hpb=1135eca961b9e2b4deb1ff6a17adebaf7e8f889f diff --git a/inc/wrapper-functions.php b/inc/wrapper-functions.php index bb570f585a..036a89b004 100644 --- a/inc/wrapper-functions.php +++ b/inc/wrapper-functions.php @@ -47,7 +47,7 @@ function readFromFile ($FQFN) { // Sanity-check if file is there (should be there, but just to make it sure) if (!isFileReadable($FQFN)) { // This should not happen - debug_report_bug(__FUNCTION__.': File ' . basename($FQFN) . ' is not readable!'); + debug_report_bug(__FUNCTION__, __LINE__, 'File ' . basename($FQFN) . ' is not readable!'); } // END - if // Is it cached? @@ -92,7 +92,7 @@ function writeToFile ($FQFN, $content, $aquireLock = false) { } } else { // Write it with fopen - $fp = fopen($FQFN, 'w') or app_die(__FUNCTION__, __LINE__, "Cannot write file ".basename($FQFN).'!'); + $fp = fopen($FQFN, 'w') or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot write to file ' . basename($FQFN) . '!'); // Aquire lock if ($aquireLock === true) flock($fp, LOCK_EX); @@ -117,9 +117,9 @@ function writeToFile ($FQFN, $content, $aquireLock = false) { // Clears the output buffer. This function does *NOT* backup sent content. function clearOutputBuffer () { // Trigger an error on failure - if (!ob_end_clean()) { + if ((ob_get_length() > 0) && (!ob_end_clean())) { // Failed! - debug_report_bug(__FUNCTION__.': Failed to clean output buffer.'); + debug_report_bug(__FUNCTION__, __LINE__, 'Failed to clean output buffer.'); } // END - if } @@ -151,13 +151,13 @@ function merge_array ($array1, $array2) { // Are both an array? if ((!is_array($array1)) && (!is_array($array2))) { // Both are not arrays - debug_report_bug(__FUNCTION__ . ': No arrays provided!'); + debug_report_bug(__FUNCTION__, __LINE__, 'No arrays provided!'); } elseif (!is_array($array1)) { // Left one is not an array - debug_report_bug(sprintf("[%s:%s] array1 is not an array. array != %s", __FUNCTION__, __LINE__, gettype($array1))); + debug_report_bug(__FILE__, __LINE__, sprintf("array1 is not an array. array != %s", gettype($array1))); } elseif (!is_array($array2)) { // Right one is not an array - debug_report_bug(sprintf("[%s:%s] array2 is not an array. array != %s", __FUNCTION__, __LINE__, gettype($array2))); + debug_report_bug(__FILE__, __LINE__, sprintf("array2 is not an array. array != %s", gettype($array2))); } // Merge all together @@ -277,13 +277,13 @@ function detectServerName () { // Check wether we are installing function isInstalling () { // Determine wether we are installing - if (!isset($GLOBALS['mxchange_installing'])) { + if (!isset($GLOBALS['mailer_installing'])) { // Check URL (css.php/js.php need this) - $GLOBALS['mxchange_installing'] = isGetRequestParameterSet('installing'); + $GLOBALS['mailer_installing'] = isGetRequestParameterSet('installing'); } // END - if // Return result - return $GLOBALS['mxchange_installing']; + return $GLOBALS['mailer_installing']; } // Check wether this script is installed @@ -303,11 +303,11 @@ function isInstalled () { ) ) || ( // New config file found and loaded - isIncludeReadable(getConfig('CACHE_PATH') . 'config-local.php') + isIncludeReadable(getCachePath() . 'config-local.php') ) || ( ( // New config file found, but not yet read - isIncludeReadable(getConfig('CACHE_PATH') . 'config-local.php') + isIncludeReadable(getCachePath() . 'config-local.php') ) && ( ( // Only new config file is found @@ -326,7 +326,14 @@ function isInstalled () { // Check wether an admin is registered function isAdminRegistered () { - return ((isConfigEntrySet('ADMIN_REGISTERED')) && (getConfig('ADMIN_REGISTERED') == 'Y')); + // Is cache set? + if (!isset($GLOBALS['is_admin_registered'])) { + // Simply check it + $GLOBALS['is_admin_registered'] = ((isConfigEntrySet('ADMIN_REGISTERED')) && (getConfig('ADMIN_REGISTERED') == 'Y')); + } // END - if + + // Return it + return $GLOBALS['is_admin_registered']; } // Checks wether the reset mode is active @@ -337,19 +344,38 @@ function isResetModeEnabled () { // Checks wether the debug mode is enabled function isDebugModeEnabled () { - // Simply check it - return ((isConfigEntrySet('DEBUG_MODE')) && (getConfig('DEBUG_MODE') == 'Y')); + // Is cache set? + if (!isset($GLOBALS['is_debugmode_enabled'])) { + // Simply check it + $GLOBALS['is_debugmode_enabled'] = ((isConfigEntrySet('DEBUG_MODE')) && (getConfig('DEBUG_MODE') == 'Y')); + } // END - if + + // Return it + return $GLOBALS['is_debugmode_enabled']; } // Checks wether SQL debugging is enabled function isSqlDebuggingEnabled () { - return ((isConfigEntrySet('DEBUG_SQL')) && (getConfig('DEBUG_SQL') == 'Y')); + // Is cache set? + if (!isset($GLOBALS['is_sql_debug_enabled'])) { + // Determine if SQL debugging is enabled + $GLOBALS['is_sql_debug_enabled'] = ((isConfigEntrySet('DEBUG_SQL')) && (getConfig('DEBUG_SQL') == 'Y')); + } // END - if + + // Return it + return $GLOBALS['is_sql_debug_enabled']; } // Checks wether we shall debug regular expressions -function isDebugRegExpressionEnabled () { - // Simply check it - return ((isConfigEntrySet('DEBUG_REGEX')) && (getConfig('DEBUG_REGEX') == 'Y')); +function isDebugRegularExpressionEnabled () { + // Is cache set? + if (!isset($GLOBALS['is_regular_exp_debug_enabled'])) { + // Simply check it + $GLOBALS['is_regular_exp_debug_enabled'] = ((isConfigEntrySet('DEBUG_REGEX')) && (getConfig('DEBUG_REGEX') == 'Y')); + } // END - if + + // Return it + return $GLOBALS['is_regular_exp_debug_enabled']; } // Checks wether the cache instance is valid @@ -367,19 +393,19 @@ function copyFileVerified ($source, $dest, $chmod = '') { // Is the source file there? if (!isFileReadable($source)) { // Then abort here - debug_report_bug('Cannot read from source file ' . basename($source) . '.'); + debug_report_bug(__FUNCTION__, __LINE__, 'Cannot read from source file ' . basename($source) . '.'); } // END - if // Is the target directory there? if (!isDirectory(dirname($dest))) { // Then abort here - debug_report_bug('Cannot find directory ' . str_replace(getConfig('PATH'), '', dirname($dest)) . '.'); + debug_report_bug(__FUNCTION__, __LINE__, 'Cannot find directory ' . str_replace(getPath(), '', dirname($dest)) . '.'); } // END - if // Now try to copy it if (!copy($source, $dest)) { // Something went wrong - debug_report_bug('copy() has failed to copy the file.'); + debug_report_bug(__FUNCTION__, __LINE__, 'copy() has failed to copy the file.'); } else { // Reset cache $GLOBALS['file_readable'][$dest] = true; @@ -411,7 +437,7 @@ function flushHeaders () { // Is the header already sent? if (headers_sent()) { // Then abort here - debug_report_bug('Headers already sent!'); + debug_report_bug(__FUNCTION__, __LINE__, 'Headers already sent!'); } // END - if // Flush all headers if found @@ -431,7 +457,7 @@ function changeMode ($FQFN, $mode) { // Is the file/directory there? if ((!isFileReadable($FQFN)) && (!isDirectory($FQFN))) { // Neither, so abort here - debug_report_bug('Cannot chmod() on ' . basename($FQFN) . '.'); + debug_report_bug(__FUNCTION__, __LINE__, 'Cannot chmod() on ' . basename($FQFN) . '.'); } // END - if // Try to set them @@ -473,23 +499,14 @@ function isConfigLocalLoaded () { // Checks wether a nickname or userid was entered and caches the result function isNicknameUsed ($userid) { - // Default is false - $isUsed = false; - // Is the cache there - if (isset($GLOBALS['is_nickname_used'][$userid])) { - // Then use it - $isUsed = $GLOBALS['is_nickname_used'][$userid]; - } else { + if (!isset($GLOBALS['is_nickname_used'][$userid])) { // Determine it - $isUsed = (('' . round($userid) . '') != $userid); - - // And write it to the cache - $GLOBALS['is_nickname_used'][$userid] = $isUsed; - } + $GLOBALS['is_nickname_used'][$userid] = (('' . round($userid) . '') != $userid); + } // END - if // Return the result - return $isUsed; + return $GLOBALS['is_nickname_used'][$userid]; } // Getter for 'what' value @@ -529,7 +546,7 @@ function isWhatSet ($strict = false) { // Should we abort here? if (($strict === true) && ($isset === false)) { // Output backtrace - debug_report_bug('what is empty.'); + debug_report_bug(__FUNCTION__, __LINE__, 'what is empty.'); } // END - if // Return it @@ -537,12 +554,12 @@ function isWhatSet ($strict = false) { } // Getter for 'action' value -function getAction () { +function getAction ($strict = true) { // Default is null $action = null; // Is the value set? - if (isActionSet(true)) { + if (isActionSet(($strict) && (getScriptOutputMode() == 0))) { // Then use it $action = $GLOBALS['action']; } // END - if @@ -564,7 +581,7 @@ function isActionSet ($strict = false) { // Should we abort here? if (($strict === true) && ($isset === false)) { // Output backtrace - debug_report_bug('action is empty.'); + debug_report_bug(__FUNCTION__, __LINE__, 'action is empty.'); } // END - if // Return it @@ -600,7 +617,7 @@ function isModuleSet ($strict = false) { // Should we abort here? if (($strict === true) && ($isset === false)) { // Output backtrace - debug_report_bug('module is empty.'); + debug_report_bug(__FUNCTION__, __LINE__, 'module is empty.'); } // END - if // Return it @@ -608,7 +625,7 @@ function isModuleSet ($strict = false) { } // Getter for 'output_mode' value -function getOutputMode () { +function getScriptOutputMode () { // Default is null $output_mode = null; @@ -635,7 +652,7 @@ function isOutputModeSet ($strict = false) { // Should we abort here? if (($strict === true) && ($isset === false)) { // Output backtrace - debug_report_bug('output_mode is empty.'); + debug_report_bug(__FUNCTION__, __LINE__, 'Output_mode is empty.'); } // END - if // Return it @@ -652,7 +669,7 @@ function isBlockModeEnabled () { // Abort if not set if (!isset($GLOBALS['block_mode'])) { // Needs to be fixed - debug_report_bug(__FUNCTION__ . ': block_mode is not set.'); + debug_report_bug(__FUNCTION__, __LINE__, 'Block_mode is not set.'); } // END - if // Return it @@ -668,10 +685,16 @@ function addPointsDirectly ($subject, $userid, $points) { return addPointsThroughReferalSystem($subject, $userid, $points, false, 0, false, 'direct'); } +// Wrapper for redirectToUrl but URL comes from a configuration entry +function redirectToConfiguredUrl ($configEntry) { + // Load the URL + redirectToUrl(getConfig($configEntry)); +} + // Wrapper function to redirect from member-only modules to index function redirectToIndexMemberOnlyModule () { // Do the redirect here - redirectToUrl('modules.php?module=index&code=' . getCode('MODULE_MEM_ONLY') . '&mod=' . getModule()); + redirectToUrl('modules.php?module=index&code=' . getCode('MODULE_MEMBER_ONLY') . '&mod=' . getModule()); } // Wrapper function to redirect to current URL @@ -687,16 +710,32 @@ function redirectToDereferedUrl ($URL) { // Wrapper function for checking if extension is installed and newer or same version function isExtensionInstalledAndNewer ($ext_name, $version) { + // Is an cache entry found? + if (!isset($GLOBALS['ext_installed_newer'][$ext_name][$version])) { + $GLOBALS['ext_installed_newer'][$ext_name][$version] = ((isExtensionInstalled($ext_name)) && (getExtensionVersion($ext_name) >= $version)); + } else { + // Cache hits should be incremented twice + incrementStatsEntry('cache_hits', 2); + } + // Return it - //* DEBUG: */ print __FUNCTION__.':'.$ext_name.'=>'.$version.'
'; - return ((isExtensionInstalled($ext_name)) && (getExtensionVersion($ext_name) >= $version)); + //* DEBUG: */ debugOutput(__FUNCTION__.':'.$ext_name.'=>'.$version.':'.intval($GLOBALS['ext_installed_newer'][$ext_name][$version])); + return $GLOBALS['ext_installed_newer'][$ext_name][$version]; } // Wrapper function for checking if extension is installed and older than given version function isExtensionInstalledAndOlder ($ext_name, $version) { + // Is an cache entry found? + if (!isset($GLOBALS['ext_installed_older'][$ext_name][$version])) { + $GLOBALS['ext_installed_older'][$ext_name][$version] = ((isExtensionInstalled($ext_name)) && (isExtensionOlder($ext_name, $version))); + } else { + // Cache hits should be incremented twice + incrementStatsEntry('cache_hits', 2); + } + // Return it - //* DEBUG: */ print __FUNCTION__.':'.$ext_name.'<'.$version.'
'; - return ((isExtensionInstalled($ext_name)) && (isExtensionOlder($ext_name, $version))); + //* DEBUG: */ debugOutput(__FUNCTION__.':'.$ext_name.'<'.$version.':'.intval($GLOBALS['ext_installed_older'][$ext_name][$version])); + return $GLOBALS['ext_installed_older'][$ext_name][$version]; } // Set username @@ -706,17 +745,14 @@ function setUsername ($userName) { // Get username function getUsername () { - // default is guest - $username = getMessage('USERNAME_GUEST'); - // User name set? - if (isset($GLOBALS['username'])) { - // Use the set name - $username = $GLOBALS['username']; + if (!isset($GLOBALS['username'])) { + // No, so it has to be a guest + $GLOBALS['username'] = '{--USERNAME_GUEST--}'; } // END - if // Return it - return $username; + return $GLOBALS['username']; } // Wrapper function for installation phase @@ -733,7 +769,14 @@ function isInstallationPhase () { // Checks wether the extension demo is actuve and the admin login is demo (password needs to be demo, too!) function isDemoModeActive () { - return ((isExtensionActive('demo')) && (getSession('admin_login') == 'demo')); + // Is cache set? + if (!isset($GLOBALS['demo_mode_active'])) { + // Simply check it + $GLOBALS['demo_mode_active'] = ((isExtensionActive('demo')) && (getAdminLogin(getSession('admin_id')) == 'demo')); + } // END - if + + // Return it + return $GLOBALS['demo_mode_active']; } // Getter for PHP caching value @@ -742,41 +785,26 @@ function getPhpCaching () { } // Checks wether the admin hash is set -function isAdminHashSet ($admin) { - /** - * @TODO Do we really need this check? If yes, try to fix this: - * 1.:functions.php:2504, debug_get_mailable_backtrace(0) - * 2.:wrapper-functions.php:744, debug_report_bug(1) - * 3.:mysql-manager.php:728, isAdminHashSet(1) - * 4.:filters.php:384, isAdmin(0) - * 5.:debug_get_mailable_backtrace:2457, FILTER_DETERMINE_USERNAME(1) - * 6.:filter-functions.php:280, call_user_func_array(2) - * 7.:load_cache.php:74, runFilterChain(1) - * 8.:inc-functions.php:131, include(1) - * 9.:inc-functions.php:145, loadInclude(1) - * 10.:mysql-connect.php:104, loadIncludeOnce(1) - * 11.:inc-functions.php:131, include(1) - * 12.:inc-functions.php:145, loadInclude(1) - * 13.:config-global.php:106, loadIncludeOnce(1) - * 14.:js.php:57, require(1) - */ +function isAdminHashSet ($adminId) { + // Is the array there? if (!isset($GLOBALS['cache_array']['admin'])) { - debug_report_bug('Cache not set.'); + // Missing array should be reported + debug_report_bug(__FUNCTION__, __LINE__, 'Cache not set.'); } // END - if // Check for admin hash - return isset($GLOBALS['cache_array']['admin']['password'][$admin]); + return isset($GLOBALS['cache_array']['admin']['password'][$adminId]); } // Setter for admin hash -function setAdminHash ($admin, $hash) { - $GLOBALS['cache_array']['admin']['password'][$admin] = $hash; +function setAdminHash ($adminId, $hash) { + $GLOBALS['cache_array']['admin']['password'][$adminId] = $hash; } // Init user data array function initUserData () { // User id should not be zero - if (getCurrentUserId() < 1) debug_report_bug(__FUNCTION__.': User id is zero.'); + if (getCurrentUserId() < 1) debug_report_bug(__FUNCTION__, __LINE__, 'User id is zero.'); // Init the user $GLOBALS['user_data'][getCurrentUserId()] = array(); @@ -785,7 +813,7 @@ function initUserData () { // Getter for user data function getUserData ($column) { // User id should not be zero - if (getCurrentUserId() < 1) debug_report_bug(__FUNCTION__.': User id is zero.'); + if (getCurrentUserId() < 1) debug_report_bug(__FUNCTION__, __LINE__, 'User id is zero.'); // Return the value return $GLOBALS['user_data'][getCurrentUserId()][$column]; @@ -797,7 +825,7 @@ function getUserDataArray () { $uid = getCurrentUserId(); // User id should not be zero - if ($uid < 1) debug_report_bug(__FUNCTION__.': User id is zero.'); + if ($uid < 1) debug_report_bug(__FUNCTION__, __LINE__, 'User id is zero.'); // Get the whole array if found if (isset($GLOBALS['user_data'][$uid])) { @@ -815,13 +843,23 @@ function isUserDataValid () { // User id should not be zero so abort here if (!isCurrentUserIdSet()) return false; - // Is the array there and filled? - return ((isset($GLOBALS['user_data'][getCurrentUserId()])) && (count($GLOBALS['user_data'][getCurrentUserId()]) > 1)); + // Is it cached? + if (!isset($GLOBALS['is_userdata_valid'][getCurrentUserId()])) { + // Determine it + $GLOBALS['is_userdata_valid'][getCurrentUserId()] = ((isset($GLOBALS['user_data'][getCurrentUserId()])) && (count($GLOBALS['user_data'][getCurrentUserId()]) > 1)); + } // END - if + + // Return the result + return $GLOBALS['is_userdata_valid'][getCurrentUserId()]; } // Setter for current userid function setCurrentUserId ($userid) { + // Set userid $GLOBALS['current_userid'] = bigintval($userid); + + // Unset it to re-determine the actual state + unset($GLOBALS['is_userdata_valid'][$userid]); } // Getter for current userid @@ -829,7 +867,7 @@ function getCurrentUserId () { // Userid must be set before it can be used if (!isCurrentUserIdSet()) { // Not set - debug_report_bug('User id is not set.'); + debug_report_bug(__FUNCTION__, __LINE__, 'User id is not set.'); } // END - if // Return the userid @@ -838,27 +876,40 @@ function getCurrentUserId () { // Checks if current userid is set function isCurrentUserIdSet () { - return isset($GLOBALS['current_userid']); + return ((isset($GLOBALS['current_userid'])) && (isValidUserId($GLOBALS['current_userid']))); } // Checks wether we are debugging template cache function isDebuggingTemplateCache () { - return (getConfig('DEBUG_TEMPLATE_CACHE') == 'Y'); + // Do we have cache? + if (!isset($GLOBALS['debug_template_cache'])) { + // Determine it + $GLOBALS['debug_template_cache'] = (getConfig('DEBUG_TEMPLATE_CACHE') == 'Y'); + } // END - if + + // Return cache + return $GLOBALS['debug_template_cache']; } // Wrapper for fetchUserData() and getUserData() calls -function getFetchedUserData ($keyColumn, $userId, $valueColumn) { - // Default is 'guest' - $data = getMessage('USERNAME_GUEST'); - - // Can we fetch the user data? - if (($userId > 0) && (fetchUserData($userId, $keyColumn))) { - // Now get the data back - $data = getUserData($valueColumn); +function getFetchedUserData ($keyColumn, $userid, $valueColumn) { + // Is it cached? + if (!isset($GLOBALS['user_data_cache'][$userid][$keyColumn][$valueColumn])) { + // Default is 'guest' + $data = '{--USERNAME_GUEST--}'; + + // Can we fetch the user data? + if ((isValidUserId($userid)) && (fetchUserData($userid, $keyColumn))) { + // Now get the data back + $data = getUserData($valueColumn); + } // END - if + + // Cache it + $GLOBALS['user_data_cache'][$userid][$keyColumn][$valueColumn] = $data; } // END - if // Return it - return $data; + return $GLOBALS['user_data_cache'][$userid][$keyColumn][$valueColumn]; } // Wrapper for strpos() to ease porting from deprecated ereg() function @@ -873,5 +924,955 @@ function isInStringIgnoreCase ($needle, $haystack) { return (isInString(strtolower($needle), strtolower($haystack))); } +// Wrapper to check for if fatal errors where detected +function ifFatalErrorsDetected () { + // Just call the inner function + return (getTotalFatalErrors() > 0); +} + +// Setter for HTTP status +function setHttpStatus ($status) { + $GLOBALS['http_status'] = (string) $status; +} + +// Getter for HTTP status +function getHttpStatus () { + return $GLOBALS['http_status']; +} + +/** + * Send a HTTP redirect to the browser. This function was taken from DokuWiki + * (GNU GPL 2; http://www.dokuwiki.org) and modified to fit into mailer project. + * + * ---------------------------------------------------------------------------- + * If you want to redirect, please use redirectToUrl(); instead + * ---------------------------------------------------------------------------- + * + * Works arround Microsoft IIS cookie sending bug. Does exit the script. + * + * @link http://support.microsoft.com/kb/q176113/ + * @author Andreas Gohr + * @access private + */ +function sendRawRedirect ($url) { + // always close the session + session_write_close(); + + // Revert entity & + $url = str_replace('&', '&', $url); + + // check if running on IIS < 6 with CGI-PHP + if ((isset($_SERVER['SERVER_SOFTWARE'])) && (isset($_SERVER['GATEWAY_INTERFACE'])) && + (strpos($_SERVER['GATEWAY_INTERFACE'],'CGI') !== false) && + (preg_match('|^Microsoft-IIS/(\d)\.\d$|', trim($_SERVER['SERVER_SOFTWARE']), $matches)) && + ($matches[1] < 6)) { + // Send the IIS header + sendHeader('Refresh: 0;url=' . $url); + } else { + // Send generic header + sendHeader('Location: ' . $url); + } + + // Shutdown here + shutdown(); +} + +// Determines the country of the given user id +function determineCountry ($userid) { + // Default is 'invalid' + $country = 'invalid'; + + // Is extension country active? + if (isExtensionActive('country')) { + // Determine the right country code through the country id + $id = getUserData('country_code'); + + // Then handle it over + $country = generateCountryInfo($id); + } else { + // Get raw code from user data + $country = getUserData('country'); + } + + // Return it + return $country; +} + +// "Getter" for total confirmed user accounts +function getTotalConfirmedUser () { + // Is it cached? + if (!isset($GLOBALS['total_confirmed_users'])) { + // Then do it + $GLOBALS['total_confirmed_users'] = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true); + } // END - if + + // Return cached value + return $GLOBALS['total_confirmed_users']; +} + +// "Getter" for total unconfirmed user accounts +function getTotalUnconfirmedUser () { + // Is it cached? + if (!isset($GLOBALS['total_unconfirmed_users'])) { + // Then do it + $GLOBALS['total_unconfirmed_users'] = countSumTotalData('UNCONFIRMED', 'user_data', 'userid', 'status', true); + } // END - if + + // Return cached value + return $GLOBALS['total_unconfirmed_users']; +} + +// "Getter" for total locked user accounts +function getTotalLockedUser () { + // Is it cached? + if (!isset($GLOBALS['total_locked_users'])) { + // Then do it + $GLOBALS['total_locked_users'] = countSumTotalData('LOCKED', 'user_data', 'userid', 'status', true); + } // END - if + + // Return cached value + return $GLOBALS['total_locked_users']; +} + +// Is given userid valid? +function isValidUserId ($userid) { + // Do we have cache? + if (!isset($GLOBALS['is_valid_userid'][$userid])) { + // Check it out + $GLOBALS['is_valid_userid'][$userid] = ((!is_null($userid)) && (!empty($userid)) && ($userid > 0)); + } // END - if + + // Return cache + return $GLOBALS['is_valid_userid'][$userid]; +} + +// Encodes entities +function encodeEntities ($str) { + // Secure it first + $str = secureString($str); + + // Encode dollar sign as well + $str = str_replace('$', '$', $str); + + // Return it + return $str; +} + +// "Getter" for date from patch_ctime +function getDateFromPatchTime () { + // Is it cached? + if (!isset($GLOBALS[__FUNCTION__])) { + // Then set it + $GLOBALS[__FUNCTION__] = generateDateTime(getConfig('patch_ctime'), '5'); + } // END - if + + // Return cache + return $GLOBALS[__FUNCTION__]; +} + +// Getter for current year (default) +function getYear ($timestamp = null) { + // Is it cached? + if (!isset($GLOBALS['year'][$timestamp])) { + // null is time() + if (is_null($timestamp)) $timestamp = time(); + + // Then create it + $GLOBALS['year'][$timestamp] = date('Y', $timestamp); + } // END - if + + // Return cache + return $GLOBALS['year'][$timestamp]; +} + +// Getter for current month (default) +function getMonth ($timestamp = null) { + // Is it cached? + if (!isset($GLOBALS['month'][$timestamp])) { + // null is time() + if (is_null($timestamp)) $timestamp = time(); + + // Then create it + $GLOBALS['month'][$timestamp] = date('m', $timestamp); + } // END - if + + // Return cache + return $GLOBALS['month'][$timestamp]; +} + +// Getter for current day (default) +function getDay ($timestamp = null) { + // Is it cached? + if (!isset($GLOBALS['day'][$timestamp])) { + // null is time() + if (is_null($timestamp)) $timestamp = time(); + + // Then create it + $GLOBALS['day'][$timestamp] = date('d', $timestamp); + } // END - if + + // Return cache + return $GLOBALS['day'][$timestamp]; +} + +// Getter for current week (default) +function getWeek ($timestamp = null) { + // Is it cached? + if (!isset($GLOBALS['week'][$timestamp])) { + // null is time() + if (is_null($timestamp)) $timestamp = time(); + + // Then create it + $GLOBALS['week'][$timestamp] = date('W', $timestamp); + } // END - if + + // Return cache + return $GLOBALS['week'][$timestamp]; +} + +// Getter for current short_hour (default) +function getShortHour ($timestamp = null) { + // Is it cached? + if (!isset($GLOBALS['short_hour'][$timestamp])) { + // null is time() + if (is_null($timestamp)) $timestamp = time(); + + // Then create it + $GLOBALS['short_hour'][$timestamp] = date('G', $timestamp); + } // END - if + + // Return cache + return $GLOBALS['short_hour'][$timestamp]; +} + +// Getter for current long_hour (default) +function getLongHour ($timestamp = null) { + // Is it cached? + if (!isset($GLOBALS['long_hour'][$timestamp])) { + // null is time() + if (is_null($timestamp)) $timestamp = time(); + + // Then create it + $GLOBALS['long_hour'][$timestamp] = date('H', $timestamp); + } // END - if + + // Return cache + return $GLOBALS['long_hour'][$timestamp]; +} + +// Getter for current second (default) +function getSecond ($timestamp = null) { + // Is it cached? + if (!isset($GLOBALS['second'][$timestamp])) { + // null is time() + if (is_null($timestamp)) $timestamp = time(); + + // Then create it + $GLOBALS['second'][$timestamp] = date('s', $timestamp); + } // END - if + + // Return cache + return $GLOBALS['second'][$timestamp]; +} + +// Getter for current minute (default) +function getMinute ($timestamp = null) { + // Is it cached? + if (!isset($GLOBALS['minute'][$timestamp])) { + // null is time() + if (is_null($timestamp)) $timestamp = time(); + + // Then create it + $GLOBALS['minute'][$timestamp] = date('i', $timestamp); + } // END - if + + // Return cache + return $GLOBALS['minute'][$timestamp]; +} + +// Checks wether the title decoration is enabled +function isTitleDecorationEnabled () { + // Do we have cache? + if (!isset($GLOBALS['title_deco_enabled'])) { + // Just check it + $GLOBALS['title_deco_enabled'] = (getConfig('enable_title_deco') == 'Y'); + } // END - if + + // Return cache + return $GLOBALS['title_deco_enabled']; +} + +// Checks wether filter usage updates are enabled (expensive queries!) +function isFilterUsageUpdateEnabled () { + // Do we have cache? + if (!isset($GLOBALS['filter_usage_updates'])) { + // Determine it + $GLOBALS['filter_usage_updates'] = ((isExtensionInstalledAndNewer('sql_patches', '0.6.0')) && (isConfigEntrySet('update_filter_usage')) && (getConfig('update_filter_usage') == 'Y')); + } // END - if + + // Return cache + return $GLOBALS['filter_usage_updates']; +} + +// Checks wether debugging of weekly resets is enabled +function isWeeklyResetDebugEnabled () { + // Do we have cache? + if (!isset($GLOBALS['weekly_reset_debug'])) { + // Determine it + $GLOBALS['weekly_reset_debug'] = ((isConfigEntrySet('DEBUG_WEEKLY')) && (getConfig('DEBUG_WEEKLY') == 'Y')); + } // END - if + + // Return cache + return $GLOBALS['weekly_reset_debug']; +} + +// Checks wether debugging of monthly resets is enabled +function isMonthlyResetDebugEnabled () { + // Do we have cache? + if (!isset($GLOBALS['monthly_reset_debug'])) { + // Determine it + $GLOBALS['monthly_reset_debug'] = ((isConfigEntrySet('DEBUG_MONTHLY')) && (getConfig('DEBUG_MONTHLY') == 'Y')); + } // END - if + + // Return cache + return $GLOBALS['monthly_reset_debug']; +} + +// Checks wether displaying of debug SQLs are enabled +function isDisplayDebugSqlEnabled () { + // Do we have cache? + if (!isset($GLOBALS['display_debug_sql'])) { + // Determine it + $GLOBALS['display_debug_sql'] = ((isExtensionInstalledAndNewer('other', '0.2.2')) && (getConfig('display_debug_sqls') == 'Y')); + } // END - if + + // Return cache + return $GLOBALS['display_debug_sql']; +} + +// Checks wether module title is enabled +function isModuleTitleEnabled () { + // Do we have cache? + if (!isset($GLOBALS['mod_title_enabled'])) { + // Determine it + $GLOBALS['mod_title_enabled'] = (getConfig('enable_mod_title') == 'Y'); + } // END - if + + // Return cache + return $GLOBALS['mod_title_enabled']; +} + +// Checks wether what title is enabled +function isWhatTitleEnabled () { + // Do we have cache? + if (!isset($GLOBALS['mod_title_enabled'])) { + // Determine it + $GLOBALS['mod_title_enabled'] = (getConfig('enable_what_title') == 'Y'); + } // END - if + + // Return cache + return $GLOBALS['mod_title_enabled']; +} + +// Checks wether stats are enabled +function ifStatsAreEnabled () { + // Do we have cache? + if (!isset($GLOBALS['stats_enabled'])) { + // Then determine it + $GLOBALS['stats_enabled'] = (getConfig('stats_enabled') == 'Y'); + } // END - if + + // Return cached value + return $GLOBALS['stats_enabled']; +} + +// Checks wether admin-notification of certain user actions is enabled +function isAdminNotificationEnabled () { + // Do we have cache? + if (!isset($GLOBALS['admin_notification_enabled'])) { + // Determine it + $GLOBALS['admin_notification_enabled'] = (getConfig('admin_notify') == 'Y'); + } // END - if + + // Return cache + return $GLOBALS['admin_notification_enabled']; +} + +// Checks wether random referal id selection is enabled +function isRandomReferalIdEnabled () { + // Do we have cache? + if (!isset($GLOBALS['select_user_zero_refid'])) { + // Determine it + $GLOBALS['select_user_zero_refid'] = (getConfig('select_user_zero_refid') == 'Y'); + } // END - if + + // Return cache + return $GLOBALS['select_user_zero_refid']; +} + +// "Getter" for default language +function getDefaultLanguage () { + // Do we have cache? + if (!isset($GLOBALS['default_language'])) { + // Determine it + $GLOBALS['default_language'] = getConfig('DEFAULT_LANG'); + } // END - if + + // Return cache + return $GLOBALS['default_language']; +} + +// "Getter" for path +function getPath () { + // Do we have cache? + if (!isset($GLOBALS['path'])) { + // Determine it + $GLOBALS['path'] = getConfig('PATH'); + } // END - if + + // Return cache + return $GLOBALS['path']; +} + +// "Getter" for url +function getUrl () { + // Do we have cache? + if (!isset($GLOBALS['url'])) { + // Determine it + $GLOBALS['url'] = getConfig('URL'); + } // END - if + + // Return cache + return $GLOBALS['url']; +} + +// "Getter" for cache_path +function getCachePath () { + // Do we have cache? + if (!isset($GLOBALS['cache_path'])) { + // Determine it + $GLOBALS['cache_path'] = getConfig('CACHE_PATH'); + } // END - if + + // Return cache + return $GLOBALS['cache_path']; +} + +// "Getter" for secret_key +function getSecretKey () { + // Do we have cache? + if (!isset($GLOBALS['secret_key'])) { + // Determine it + $GLOBALS['secret_key'] = getConfig('secret_key'); + } // END - if + + // Return cache + return $GLOBALS['secret_key']; +} + +// "Getter" for master_salt +function getMasterSalt () { + // Do we have cache? + if (!isset($GLOBALS['master_salt'])) { + // Determine it + $GLOBALS['master_salt'] = getConfig('master_salt'); + } // END - if + + // Return cache + return $GLOBALS['master_salt']; +} + +// "Getter" for prime +function getPrime () { + // Do we have cache? + if (!isset($GLOBALS['prime'])) { + // Determine it + $GLOBALS['prime'] = getConfig('_PRIME'); + } // END - if + + // Return cache + return $GLOBALS['prime']; +} + +// "Getter" for encrypt_seperator +function getEncryptSeperator () { + // Do we have cache? + if (!isset($GLOBALS['encrypt_seperator'])) { + // Determine it + $GLOBALS['encrypt_seperator'] = getConfig('ENCRYPT_SEPERATOR'); + } // END - if + + // Return cache + return $GLOBALS['encrypt_seperator']; +} + +// "Getter" for mysql_prefix +function getMysqlPrefix () { + // Do we have cache? + if (!isset($GLOBALS['mysql_prefix'])) { + // Determine it + $GLOBALS['mysql_prefix'] = getConfig('_MYSQL_PREFIX'); + } // END - if + + // Return cache + return $GLOBALS['mysql_prefix']; +} + +// "Getter" for table_type +function getTableType () { + // Do we have cache? + if (!isset($GLOBALS['table_type'])) { + // Determine it + $GLOBALS['table_type'] = getConfig('_TABLE_TYPE'); + } // END - if + + // Return cache + return $GLOBALS['table_type']; +} + +// "Getter" for salt_length +function getSaltLength () { + // Do we have cache? + if (!isset($GLOBALS['salt_length'])) { + // Determine it + $GLOBALS['salt_length'] = getConfig('salt_length'); + } // END - if + + // Return cache + return $GLOBALS['salt_length']; +} + +// "Getter" for output_mode +function getOutputMode () { + // Do we have cache? + if (!isset($GLOBALS['cached_output_mode'])) { + // Determine it + $GLOBALS['cached_output_mode'] = getConfig('OUTPUT_MODE'); + } // END - if + + // Return cache + return $GLOBALS['cached_output_mode']; +} + +// "Getter" for full_version +function getFullVersion () { + // Do we have cache? + if (!isset($GLOBALS['full_version'])) { + // Determine it + $GLOBALS['full_version'] = getConfig('FULL_VERSION'); + } // END - if + + // Return cache + return $GLOBALS['full_version']; +} + +// "Getter" for title +function getTitle () { + // Do we have cache? + if (!isset($GLOBALS['title'])) { + // Determine it + $GLOBALS['title'] = getConfig('TITLE'); + } // END - if + + // Return cache + return $GLOBALS['title']; +} + +// "Getter" for curr_svn_revision +function getCurrSvnRevision () { + // Do we have cache? + if (!isset($GLOBALS['curr_svn_revision'])) { + // Determine it + $GLOBALS['curr_svn_revision'] = getConfig('CURR_SVN_REVISION'); + } // END - if + + // Return cache + return $GLOBALS['curr_svn_revision']; +} + +// "Getter" for server_url +function getServerUrl () { + // Do we have cache? + if (!isset($GLOBALS['server_url'])) { + // Determine it + $GLOBALS['server_url'] = getConfig('SERVER_URL'); + } // END - if + + // Return cache + return $GLOBALS['server_url']; +} + +// "Getter" for mt_word +function getMtWord () { + // Do we have cache? + if (!isset($GLOBALS['mt_word'])) { + // Determine it + $GLOBALS['mt_word'] = getConfig('mt_word'); + } // END - if + + // Return cache + return $GLOBALS['mt_word']; +} + +// "Getter" for mt_word2 +function getMtWord2 () { + // Do we have cache? + if (!isset($GLOBALS['mt_word2'])) { + // Determine it + $GLOBALS['mt_word2'] = getConfig('mt_word2'); + } // END - if + + // Return cache + return $GLOBALS['mt_word2']; +} + +// "Getter" for main_title +function getMainTitle () { + // Do we have cache? + if (!isset($GLOBALS['main_title'])) { + // Determine it + $GLOBALS['main_title'] = getConfig('MAIN_TITLE'); + } // END - if + + // Return cache + return $GLOBALS['main_title']; +} + +// "Getter" for file_hash +function getFileHash () { + // Do we have cache? + if (!isset($GLOBALS['file_hash'])) { + // Determine it + $GLOBALS['file_hash'] = getConfig('file_hash'); + } // END - if + + // Return cache + return $GLOBALS['file_hash']; +} + +// "Getter" for pass_scramble +function getPassScramble () { + // Do we have cache? + if (!isset($GLOBALS['pass_scramble'])) { + // Determine it + $GLOBALS['pass_scramble'] = getConfig('pass_scramble'); + } // END - if + + // Return cache + return $GLOBALS['pass_scramble']; +} + +// "Getter" for ap_inactive_since +function getApInactiveSince () { + // Do we have cache? + if (!isset($GLOBALS['ap_inactive_since'])) { + // Determine it + $GLOBALS['ap_inactive_since'] = getConfig('ap_inactive_since'); + } // END - if + + // Return cache + return $GLOBALS['ap_inactive_since']; +} + +// "Getter" for user_min_confirmed +function getUserMinConfirmed () { + // Do we have cache? + if (!isset($GLOBALS['user_min_confirmed'])) { + // Determine it + $GLOBALS['user_min_confirmed'] = getConfig('user_min_confirmed'); + } // END - if + + // Return cache + return $GLOBALS['user_min_confirmed']; +} + +// "Getter" for auto_purge +function getAutoPurge () { + // Do we have cache? + if (!isset($GLOBALS['auto_purge'])) { + // Determine it + $GLOBALS['auto_purge'] = getConfig('auto_purge'); + } // END - if + + // Return cache + return $GLOBALS['auto_purge']; +} + +// "Getter" for bonus_userid +function getBonusUserid () { + // Do we have cache? + if (!isset($GLOBALS['bonus_userid'])) { + // Determine it + $GLOBALS['bonus_userid'] = getConfig('bonus_userid'); + } // END - if + + // Return cache + return $GLOBALS['bonus_userid']; +} + +// "Getter" for ap_inactive_time +function getApInactiveTime () { + // Do we have cache? + if (!isset($GLOBALS['ap_inactive_time'])) { + // Determine it + $GLOBALS['ap_inactive_time'] = getConfig('ap_inactive_time'); + } // END - if + + // Return cache + return $GLOBALS['ap_inactive_time']; +} + +// "Getter" for ap_dm_timeout +function getApDmTimeout () { + // Do we have cache? + if (!isset($GLOBALS['ap_dm_timeout'])) { + // Determine it + $GLOBALS['ap_dm_timeout'] = getConfig('ap_dm_timeout'); + } // END - if + + // Return cache + return $GLOBALS['ap_dm_timeout']; +} + +// "Getter" for ap_tasks_time +function getApTasksTime () { + // Do we have cache? + if (!isset($GLOBALS['ap_tasks_time'])) { + // Determine it + $GLOBALS['ap_tasks_time'] = getConfig('ap_tasks_time'); + } // END - if + + // Return cache + return $GLOBALS['ap_tasks_time']; +} + +// "Getter" for ap_unconfirmed_time +function getApUnconfirmedTime () { + // Do we have cache? + if (!isset($GLOBALS['ap_unconfirmed_time'])) { + // Determine it + $GLOBALS['ap_unconfirmed_time'] = getConfig('ap_unconfirmed_time'); + } // END - if + + // Return cache + return $GLOBALS['ap_unconfirmed_time']; +} + +// "Getter" for points +function getPoints () { + // Do we have cache? + if (!isset($GLOBALS['points'])) { + // Determine it + $GLOBALS['points'] = getConfig('POINTS'); + } // END - if + + // Return cache + return $GLOBALS['points']; +} + +// "Getter" for slogan +function getSlogan () { + // Do we have cache? + if (!isset($GLOBALS['slogan'])) { + // Determine it + $GLOBALS['slogan'] = getConfig('SLOGAN'); + } // END - if + + // Return cache + return $GLOBALS['slogan']; +} + +// "Getter" for copy +function getCopy () { + // Do we have cache? + if (!isset($GLOBALS['copy'])) { + // Determine it + $GLOBALS['copy'] = getConfig('COPY'); + } // END - if + + // Return cache + return $GLOBALS['copy']; +} + +// "Getter" for webmaster +function getWebmaster () { + // Do we have cache? + if (!isset($GLOBALS['webmaster'])) { + // Determine it + $GLOBALS['webmaster'] = getConfig('WEBMASTER'); + } // END - if + + // Return cache + return $GLOBALS['webmaster']; +} + +// "Getter" for sql_count +function getSqlCount () { + // Do we have cache? + if (!isset($GLOBALS['sql_count'])) { + // Determine it + $GLOBALS['sql_count'] = getConfig('sql_count'); + } // END - if + + // Return cache + return $GLOBALS['sql_count']; +} + +// "Getter" for num_templates +function getNumTemplates () { + // Do we have cache? + if (!isset($GLOBALS['num_templates'])) { + // Determine it + $GLOBALS['num_templates'] = getConfig('num_templates'); + } // END - if + + // Return cache + return $GLOBALS['num_templates']; +} + +// "Getter" for dns_cache_timeout +function getDnsCacheTimeout () { + // Do we have cache? + if (!isset($GLOBALS['dns_cache_timeout'])) { + // Determine it + $GLOBALS['dns_cache_timeout'] = getConfig('dns_cache_timeout'); + } // END - if + + // Return cache + return $GLOBALS['dns_cache_timeout']; +} + +// "Getter" for menu_blur_spacer +function getMenuBlurSpacer () { + // Do we have cache? + if (!isset($GLOBALS['menu_blur_spacer'])) { + // Determine it + $GLOBALS['menu_blur_spacer'] = getConfig('menu_blur_spacer'); + } // END - if + + // Return cache + return $GLOBALS['menu_blur_spacer']; +} + +// "Getter" for points_register +function getPointsRegister () { + // Do we have cache? + if (!isset($GLOBALS['points_register'])) { + // Determine it + $GLOBALS['points_register'] = getConfig('points_register'); + } // END - if + + // Return cache + return $GLOBALS['points_register']; +} + +// "Getter" for points_ref +function getPointsRef () { + // Do we have cache? + if (!isset($GLOBALS['points_ref'])) { + // Determine it + $GLOBALS['points_ref'] = getConfig('points_ref'); + } // END - if + + // Return cache + return $GLOBALS['points_ref']; +} + +// "Getter" for ref_payout +function getRefPayout () { + // Do we have cache? + if (!isset($GLOBALS['ref_payout'])) { + // Determine it + $GLOBALS['ref_payout'] = getConfig('ref_payout'); + } // END - if + + // Return cache + return $GLOBALS['ref_payout']; +} + +// "Getter" for online_timeout +function getOnlineTimeout () { + // Do we have cache? + if (!isset($GLOBALS['online_timeout'])) { + // Determine it + $GLOBALS['online_timeout'] = getConfig('online_timeout'); + } // END - if + + // Return cache + return $GLOBALS['online_timeout']; +} + +// "Getter" for index_home +function getIndexHome () { + // Do we have cache? + if (!isset($GLOBALS['index_home'])) { + // Determine it + $GLOBALS['index_home'] = getConfig('index_home'); + } // END - if + + // Return cache + return $GLOBALS['index_home']; +} + +// Checks wether proxy configuration is used +function isProxyUsed () { + // Do we have cache? + if (!isset($GLOBALS['is_proxy_used'])) { + // Determine it + $GLOBALS['is_proxy_used'] = ((isExtensionInstalledAndNewer('sql_patches', '0.4.3')) && (getConfig('proxy_host') != '') && (getConfig('proxy_port') > 0)); + } // END - if + + // Return cache + return $GLOBALS['is_proxy_used']; +} + +// Checks wether POST data contains selections +function ifPostContainsSelections ($element = 'sel') { + // Do we have cache? + if (!isset($GLOBALS['post_contains_selections'][$element])) { + // Determine it + $GLOBALS['post_contains_selections'][$element] = (countPostSelection($element) > 0); + } // END - if + + // Return cache + return $GLOBALS['post_contains_selections'][$element]; +} + +// Checks wether verbose_sql is Y and returns true/false if so +function isVerboseSqlEnabled () { + // Do we have cache? + if (!isset($GLOBALS['is_verbose_sql_enabled'])) { + // Determine it + $GLOBALS['is_verbose_sql_enabled'] = ((isExtensionInstalledAndNewer('sql_patches', '0.0.7')) && (getConfig('verbose_sql') == 'Y')); + } // END - if + + // Return cache + return $GLOBALS['is_verbose_sql_enabled']; +} + +// "Getter" for total user points +function getTotalPoints ($userid) { + // Do we have cache? + if (!isset($GLOBALS['total_points'][$userid])) { + // Determine it + $GLOBALS['total_points'][$userid] = countSumTotalData($userid, 'user_points', 'points') - countSumTotalData($userid, 'user_data', 'used_points'); + } // END - if + + // Return cache + return $GLOBALS['total_points'][$userid]; +} + +// Wrapper to check if url_blacklist is enabled +function isUrlBlacklistEnabled () { + // Do we have cache? + if (!isset($GLOBALS['is_url_blacklist_enabled'])) { + // Determine it + $GLOBALS['is_url_blacklist_enabled'] = (getConfig('url_blacklist') == 'Y'); + } // END - if + + // Return cache + return $GLOBALS['is_url_blacklist_enabled']; +} + // [EOF] ?>