+// Init user data array
+function initUserData () {
+ // User id should not be zero
+ if (getCurrentUserId() < 1) debug_report_bug(__FUNCTION__.': User id is zero.');
+
+ // Init the user
+ $GLOBALS['user_data'][getCurrentUserId()] = array();
+}
+
+// Getter for user data
+function getUserData ($column) {
+ // User id should not be zero
+ if (getCurrentUserId() < 1) debug_report_bug(__FUNCTION__.': User id is zero.');
+
+ // Return the value
+ return $GLOBALS['user_data'][getCurrentUserId()][$column];
+}
+
+// Geter for whole user data array
+function getUserDataArray () {
+ // Get user id
+ $uid = getCurrentUserId();
+
+ // User id should not be zero
+ if ($uid < 1) debug_report_bug(__FUNCTION__.': User id is zero.');
+
+ // Get the whole array if found
+ if (isset($GLOBALS['user_data'][$uid])) {
+ // Found, so return it
+ return $GLOBALS['user_data'][$uid];
+ } else {
+ // Return empty array
+ return array();
+ }
+}
+
+// Checks if the user data is valid, this may indicate that the user has logged
+// in, but you should use isMember() if you want to find that out.
+function isUserDataValid () {
+ // User id should not be zero so abort here
+ if (!isCurrentUserIdSet()) return false;
+
+ // 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
+function getCurrentUserId () {
+ // Userid must be set before it can be used
+ if (!isCurrentUserIdSet()) {
+ // Not set
+ debug_report_bug('User id is not set.');
+ } // END - if
+
+ // Return the userid
+ return $GLOBALS['current_userid'];
+}
+
+// Checks if current userid is set
+function isCurrentUserIdSet () {
+ return ((isset($GLOBALS['current_userid'])) && ($GLOBALS['current_userid'] > 0));
+}
+
+// Checks wether we are debugging template cache
+function isDebuggingTemplateCache () {
+ return (getConfig('DEBUG_TEMPLATE_CACHE') == 'Y');
+}
+
+// Wrapper for fetchUserData() and getUserData() calls
+function getFetchedUserData ($keyColumn, $userid, $valueColumn) {
+ // Is it cached?
+ if (!isset($GLOBALS['user_data_cache'][$userid][$keyColumn][$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);
+ } // END - if
+
+ // Cache it
+ $GLOBALS['user_data_cache'][$userid][$keyColumn][$valueColumn] = $data;
+ } // END - if
+
+ // Return it
+ return $GLOBALS['user_data_cache'][$userid][$keyColumn][$valueColumn];
+}
+
+// Wrapper for strpos() to ease porting from deprecated ereg() function
+function isInString ($needle, $haystack) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'needle=' . $needle . ', haystack=' . $haystack . ', returned=' . intval(strpos($haystack, $needle) !== false));
+ return (strpos($haystack, $needle) !== false);
+}
+
+// Wrapper for strpos() to ease porting from deprecated eregi() function
+// This function is case-insensitive
+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);
+}
+