X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fwrapper-functions.php;h=8e7ae4c14e8c415e0d501d64beb44129b1d0a966;hp=a184c20331912e39e1c1e0651c62ed124c88bd51;hb=19b197c32c96ce8eea26561fb7b40e87c57716ae;hpb=9968064eb050891128c30cb3d79fb768468a81eb diff --git a/inc/wrapper-functions.php b/inc/wrapper-functions.php index a184c20331..8e7ae4c14e 100644 --- a/inc/wrapper-functions.php +++ b/inc/wrapper-functions.php @@ -117,7 +117,7 @@ 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.'); } // END - if @@ -151,7 +151,7 @@ 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(__FILE__, __LINE__, sprintf("array1 is not an array. array != %s", gettype($array1))); @@ -661,7 +661,7 @@ function isOutputModeSet ($strict = false) { // Should we abort here? if (($strict === true) && ($isset === false)) { // Output backtrace - debug_report_bug(__FUNCTION__, __LINE__, 'output_mode is empty.'); + debug_report_bug(__FUNCTION__, __LINE__, 'Output_mode is empty.'); } // END - if // Return it @@ -678,7 +678,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 @@ -697,7 +697,7 @@ function addPointsDirectly ($subject, $userid, $points) { // 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 @@ -722,7 +722,7 @@ function isExtensionInstalledAndNewer ($ext_name, $version) { } // Return it - //* DEBUG: */ print __FUNCTION__.':'.$ext_name.'=>'.$version.':'.intval($GLOBALS['ext_installed_newer'][$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]; } @@ -737,7 +737,7 @@ function isExtensionInstalledAndOlder ($ext_name, $version) { } // Return it - //* DEBUG: */ print __FUNCTION__.':'.$ext_name.'<'.$version.':'.intval($GLOBALS['ext_installed_older'][$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]; } @@ -956,16 +956,109 @@ function getHttpStatus () { return $GLOBALS['http_status']; } -// Compiles config entries for SQL queries -function compileSqlConfig ($sqlString) { - // Replace all - foreach (array('_MYSQL_PREFIX', '_TABLE_TYPE') as $configEntry) { - // "Compile" it - $sqlString = str_replace('{?' . $configEntry . '?}', getConfig($configEntry), $sqlString); - } // END - foreach +// Setter for 'is_template_html' +function enableTemplateHtml ($enable = true) { + $GLOBALS['is_template_html'] = (bool) $enable; +} + +// Checks wether the template is HTML or not by previously set flag +// Default: true +function isTemplateHtml () { + // Is the output_mode other than 0 (HTML), then no comments are enabled + if (getOutputMode() != 0) { + // No HTML + return false; + } else { + // Maybe HTML? + return $GLOBALS['is_template_html']; + } +} + +/** + * 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']; +} + +// Wrapper for writing debug informations to the browser +function debugOutput ($message) { + outputHtml('
' . $message . '
'); +} + +// 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 the compiled SQL string - return $sqlString; + // Return cache + return $GLOBALS['is_valid_userid'][$userid]; } // [EOF]