Fix for latest PHP 5.4.x changes
[mailer.git] / inc / wrapper-functions.php
index 70059aca9e0f4a67b1bf53b005d3e2ef5c3ff5d0..5195c0c1e7c716abe6bffe17f24367b875cb2994 100644 (file)
@@ -481,33 +481,6 @@ function copyFileVerified ($source, $dest, $chmod = '') {
        return $status;
 }
 
-// Wrapper function for header()
-// Send a header but checks before if we can do so
-function sendHeader ($header) {
-       // Send the header
-       //* DEBUG: */ logDebugMessage(__FUNCTION__ . ': header=' . $header);
-       $GLOBALS['header'][] = trim($header);
-}
-
-// Flushes all headers
-function flushHeaders () {
-       // Is the header already sent?
-       if (headers_sent()) {
-               // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Headers already sent!');
-       } // END - if
-
-       // Flush all headers if found
-       if ((isset($GLOBALS['header'])) && (is_array($GLOBALS['header']))) {
-               foreach ($GLOBALS['header'] as $header) {
-                       header($header);
-               } // END - foreach
-       } // END - if
-
-       // Mark them as flushed
-       $GLOBALS['header'] = array();
-}
-
 // Wrapper function for chmod()
 // @TODO Do some more sanity check here
 function changeMode ($FQFN, $mode) {
@@ -567,14 +540,14 @@ function isNicknameUsed ($userid) {
 }
 
 // Getter for 'what' value
-function getWhat () {
+function getWhat ($strict = true) {
        // Default is null
        $what = NULL;
 
        // Is the value set?
-       if (isWhatSet(true)) {
+       if (isWhatSet($strict)) {
                // Then use it
-               $what = $GLOBALS['what'];
+               $what = $GLOBALS['__what'];
        } // END - if
 
        // Return it
@@ -583,7 +556,7 @@ function getWhat () {
 
 // Setter for 'what' value
 function setWhat ($newWhat) {
-       $GLOBALS['what'] = SQL_ESCAPE($newWhat);
+       $GLOBALS['__what'] = $newWhat;
 }
 
 // Setter for 'what' from configuration
@@ -598,7 +571,7 @@ function setWhatFromConfig ($configEntry) {
 // Checks wether what is set and optionally aborts on miss
 function isWhatSet ($strict =  false) {
        // Check for it
-       $isset = isset($GLOBALS['what']);
+       $isset = (isset($GLOBALS['__what']) && (!empty($GLOBALS['__what'])));
 
        // Should we abort here?
        if (($strict === true) && ($isset === false)) {
@@ -618,7 +591,7 @@ function getAction ($strict = true) {
        // Is the value set?
        if (isActionSet(($strict) && (isHtmlOutputMode()))) {
                // Then use it
-               $action = $GLOBALS['action'];
+               $action = $GLOBALS['__action'];
        } // END - if
 
        // Return it
@@ -627,13 +600,13 @@ function getAction ($strict = true) {
 
 // Setter for 'action' value
 function setAction ($newAction) {
-       $GLOBALS['action'] = SQL_ESCAPE($newAction);
+       $GLOBALS['__action'] = $newAction;
 }
 
 // Checks wether action is set and optionally aborts on miss
 function isActionSet ($strict =  false) {
        // Check for it
-       $isset = ((isset($GLOBALS['action'])) && (!empty($GLOBALS['action'])));
+       $isset = ((isset($GLOBALS['__action'])) && (!empty($GLOBALS['__action'])));
 
        // Should we abort here?
        if (($strict === true) && ($isset === false)) {
@@ -653,7 +626,7 @@ function getModule ($strict = true) {
        // Is the value set?
        if (isModuleSet($strict)) {
                // Then use it
-               $module = $GLOBALS['module'];
+               $module = $GLOBALS['__module'];
        } // END - if
 
        // Return it
@@ -663,22 +636,22 @@ function getModule ($strict = true) {
 // Setter for 'module' value
 function setModule ($newModule) {
        // Secure it and make all modules lower-case
-       $GLOBALS['module'] = SQL_ESCAPE(strtolower($newModule));
+       $GLOBALS['__module'] = strtolower($newModule);
 }
 
 // Checks wether module is set and optionally aborts on miss
 function isModuleSet ($strict =  false) {
        // Check for it
-       $isset = (!empty($GLOBALS['module']));
+       $isset = ((isset($GLOBALS['__module'])) && (!empty($GLOBALS['__module'])));
 
        // Should we abort here?
        if (($strict === true) && ($isset === false)) {
                // Output backtrace
-               debug_report_bug(__FUNCTION__, __LINE__, 'module is empty.');
+               debug_report_bug(__FUNCTION__, __LINE__, 'Module is empty.');
        } // END - if
 
        // Return it
-       return (($isset === true) && ($GLOBALS['module'] != 'unknown')) ;
+       return (($isset === true) && ($GLOBALS['__module'] != 'unknown')) ;
 }
 
 // Getter for 'output_mode' value
@@ -704,7 +677,9 @@ function getScriptOutputMode () {
 
 // Setter for 'output_mode' value
 function setOutputMode ($newOutputMode) {
-       $GLOBALS['output_mode'] = (int) $newOutputMode;
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'output_mode=' . $newOutputMode);
+       $GLOBALS['output_mode']         = (int) $newOutputMode;
+       $GLOBALS['getScriptOutputMode'] = (int) $newOutputMode;
 }
 
 // Checks wether output_mode is set and optionally aborts on miss
@@ -740,8 +715,8 @@ function isBlockModeEnabled () {
 }
 
 /**
- * Wrapper function for addPointsThroughReferalSystem(), you should generally
- * avoid this function and use addPointsThroughReferalSystem() directly and add
+ * Wrapper function for addPointsThroughReferralSystem(), you should generally
+ * avoid this function and use addPointsThroughReferralSystem() directly and add
  * your special payment method entry to points_data instead.
  *
  * @param      $subject        A string-encoded subject for this add
@@ -751,10 +726,10 @@ function isBlockModeEnabled () {
  */
 function addPointsDirectly ($subject, $userid, $points) {
        // Reset level here
-       initReferalSystem();
+       initReferralSystem();
 
        // Call more complicated method (due to more parameters)
-       return addPointsThroughReferalSystem($subject, $userid, $points, false, 0, 'DIRECT');
+       return addPointsThroughReferralSystem($subject, $userid, $points, false, 0, 'DIRECT');
 }
 
 // Wrapper for redirectToUrl but URL comes from a configuration entry
@@ -1133,6 +1108,15 @@ function getHttpStatus () {
  * @access  private
  */
 function sendRawRedirect ($url) {
+       // Clear output buffer
+       clearOutputBuffer();
+
+       // Clear own output buffer
+       $GLOBALS['output'] = '';
+
+       // To make redirects working (no content type), output mode must be raw
+       setOutputMode(-1);
+
        // Send helping header
        setHttpStatus('302 Found');
 
@@ -1148,10 +1132,10 @@ function sendRawRedirect ($url) {
                (preg_match('|^Microsoft-IIS/(\d)\.\d$|', trim($_SERVER['SERVER_SOFTWARE']), $matches)) &&
                ($matches[1] < 6)) {
                // Send the IIS header
-               sendHeader('Refresh: 0;url=' . $url);
+               addHttpHeader('Refresh: 0;url=' . $url);
        } else {
                // Send generic header
-               sendHeader('Location: ' . $url);
+               addHttpHeader('Location: ' . $url);
        }
 
        // Shutdown here
@@ -1248,6 +1232,12 @@ function getTotalRandomRefidUser () {
 
 // Is given userid valid?
 function isValidUserId ($userid) {
+       // Handle NULL
+       if (is_null($userid)) {
+               // Do not handle this as of below isset() will always return false
+               return false;
+       } // END - if
+
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$userid])) {
                // Check it out
@@ -1523,11 +1513,11 @@ function isWhatTitleEnabled () {
 }
 
 // Checks wether stats are enabled
-function ifStatsAreEnabled () {
+function ifInternalStatsEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Then determine it
-               $GLOBALS[__FUNCTION__] = (getConfig('stats_enabled') == 'Y');
+               $GLOBALS[__FUNCTION__] = (getConfig('internal_stats') == 'Y');
        } // END - if
 
        // Return cached value
@@ -1546,8 +1536,8 @@ function isAdminNotificationEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether random referal id selection is enabled
-function isRandomReferalIdEnabled () {
+// Checks wether random referral id selection is enabled
+function isRandomReferralIdEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Determine it
@@ -1570,7 +1560,7 @@ function getDefaultLanguage () {
        return $GLOBALS[__FUNCTION__];
 }
 
-// "Getter" for default referal id
+// "Getter" for default referral id
 function getDefRefid () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1678,12 +1668,12 @@ function getPrime () {
        return $GLOBALS[__FUNCTION__];
 }
 
-// "Getter" for encrypt_seperator
-function getEncryptSeperator () {
+// "Getter" for encrypt_separator
+function getEncryptSeparator () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Determine it
-               $GLOBALS[__FUNCTION__] = getConfig('ENCRYPT_SEPERATOR');
+               $GLOBALS[__FUNCTION__] = getConfig('ENCRYPT_SEPARATOR');
        } // END - if
 
        // Return cache
@@ -2458,6 +2448,18 @@ function isDisplayHomeInIndexEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
+// Getter for 'admin_menu_javascript'
+function getAdminMenuJavascript () {
+       // Is the cache entry set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // No, so determine it
+               $GLOBALS[__FUNCTION__] = getConfig('admin_menu_javascript');
+       } // END - if
+
+       // Return cached entry
+       return $GLOBALS[__FUNCTION__];
+}
+
 // Checks wether proxy configuration is used
 function isProxyUsed () {
        // Do we have cache?
@@ -2539,6 +2541,18 @@ function isDirectPaymentEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
+// Checks wether JavaScript-based admin menu is enabled
+function isAdminMenuJavascriptEnabled () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.8.7')) && (getConfig('admin_menu_javascript') == 'Y'));
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
 // Wrapper to check if current task is for extension (not update)
 function isExtensionTask ($content) {
        // Do we have cache?
@@ -2569,6 +2583,18 @@ function isRawOutputMode () {
        return (getScriptOutputMode() == -1);
 }
 
+// Wrapper to check if output mode is AJAX
+function isAjaxOutputMode () {
+       // Determine it
+       return (getScriptOutputMode() == -2);
+}
+
+// Wrapper to check if output mode is image
+function isImageOutputMode () {
+       // Determine it
+       return (getScriptOutputMode() == -3);
+}
+
 // Wrapper to generate a user email link
 function generateWrappedUserEmailLink ($email) {
        // Just call the inner function
@@ -2657,16 +2683,23 @@ function convertCommaToDotInPostDataArray ($postEntries) {
  * @link       http://de.php.net/manual/en/function.floatval.php#92563
  */
 function parseFloat ($floatString){
-    $LocaleInfo = localeconv();
-    $floatString = str_replace($LocaleInfo['mon_thousands_sep'] , '', $floatString);
-    $floatString = str_replace($LocaleInfo['mon_decimal_point'] , '.', $floatString);
-    return floatval($floatString);
+       // Load locale info
+       $LocaleInfo = localeconv();
+
+       // Remove thousand separators
+       $floatString = str_replace($LocaleInfo['mon_thousands_sep'] , '' , $floatString);
+
+       // Convert decimal point
+       $floatString = str_replace($LocaleInfo['mon_decimal_point'] , '.', $floatString);
+
+       // Return float value of converted string
+       return floatval($floatString);
 }
 
 // Generates a YES/NO option list from given default
-function generateYesNoOptionList ($configValue = '') {
+function generateYesNoOptionList ($defaultValue = '') {
        // Generate it
-       return generateOptionList('/ARRAY/', array('Y', 'N'), array('{--YES--}', '{--NO--}'), $configValue);
+       return generateOptionList('/ARRAY/', array('Y', 'N'), array('{--YES--}', '{--NO--}'), $defaultValue);
 }
 
 // "Getter" for total available receivers
@@ -2690,5 +2723,35 @@ function getTotalUnconfirmedMails ($userid) {
        return $GLOBALS[__FUNCTION__][$userid];
 }
 
+// Checks wether 'mailer_theme' was found in session
+function isMailerThemeSet () {
+       // Check session
+       return isSessionVariableSet('mailer_theme');
+}
+
+/**
+ * Setter for theme in session (This setter does return the success of
+ * setSession() which is required e.g. for destroySponsorSession().
+ */
+function setMailerTheme ($newTheme) {
+       // Set it in session
+       return setSession('mailer_theme', $newTheme);
+}
+
+/**
+ * Getter for theme from session (This getter does return 'mailer_theme' from
+ * session data or throws an error if not possible
+ */
+function getMailerTheme () {
+       // Is 'mailer_theme' set?
+       if (!isMailerThemeSet()) {
+               // No, then abort here
+               debug_report_bug(__FUNCTION__, __LINE__, 'mailer_theme not set in session. Please fix your code.');
+       } // END - if
+
+       // Return the theme from session
+       return getSession('mailer_theme');
+}
+
 // [EOF]
 ?>