* -------------------------------------------------------------------- *
* Kurzbeschreibung : Wrapper-Funktionen *
* -------------------------------------------------------------------- *
- * $Revision:: $ *
- * $Date:: $ *
- * $Tag:: 0.2.1-FINAL $ *
- * $Author:: $ *
- * -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009 - 2012 by Mailer Developer Team *
+ * Copyright (c) 2009 - 2016 by Mailer Developer Team *
* For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
// Is the file writeable?
if ((isFileReadable($FQFN)) && (!is_writeable($FQFN)) && (!changeMode($FQFN, 0644))) {
// Not writeable!
- logDebugMessage(__FUNCTION__, __LINE__, sprintf("File %s not writeable or cannot change CHMOD to 0644.", basename($FQFN)));
+ logDebugMessage(__FUNCTION__, __LINE__, sprintf('File %s not writeable or cannot change CHMOD to 0644.', basename($FQFN)));
// Failed! :(
return FALSE;
}
} else {
// Write it with fopen
- $fp = fopen($FQFN, 'w')
- or reportBug(__FUNCTION__, __LINE__, 'Cannot write to file ' . basename($FQFN) . '!');
+ $fp = fopen($FQFN, 'w') or reportBug(__FUNCTION__, __LINE__, 'Cannot write to file ' . basename($FQFN) . '!');
// Aquire a lock?
if ($aquireLock === TRUE) {
reportBug(__FUNCTION__, __LINE__, 'No arrays provided!');
} elseif (!is_array($array1)) {
// Left one is not an array
- reportBug(__FUNCTION__, __LINE__, sprintf("array1 is not an array. array != %s", gettype($array1)));
+ reportBug(__FUNCTION__, __LINE__, sprintf('array1 is not an array. array != %s', gettype($array1)));
} elseif (!is_array($array2)) {
// Right one is not an array
- reportBug(__FUNCTION__, __LINE__, sprintf("array2 is not an array. array != %s", gettype($array2)));
+ reportBug(__FUNCTION__, __LINE__, sprintf('array2 is not an array. array != %s', gettype($array2)));
}
// Maintain index of array2?
$baseName = basename($FQFN);
// Check it
- $GLOBALS[__FUNCTION__][$FQFN] = ((is_dir($FQFN)) && ($baseName != '.') && ($baseName != '..') && ($baseName != '.svn'));
+ $GLOBALS[__FUNCTION__][$FQFN] = ((is_dir($FQFN)) && (!in_array($baseName, array('.', '..', '.svn'))));
} // END - if
// Return the result
return (getenv('SERVER_NAME'));
}
+// Detects server protocol (http/s)
+function detectServerProtocol () {
+ // Is cache there?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Default is HTTP
+ $GLOBALS[__FUNCTION__] = 'http';
+
+ // Are some specific fields set?
+ if (((isset($_SERVER['HTTPS'])) && (strtolower($_SERVER['HTTPS']) == 'on')) || ((isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) && (strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https'))) {
+ // Switch to HTTPS
+ $GLOBALS[__FUNCTION__] = 'https';
+ } // END - if
+ } // END - if
+
+ // Return cached value
+ return $GLOBALS[__FUNCTION__];
+}
+
// Removes any existing www. from SERVER_NAME. This is very silly but enough
// for our purpose here.
function detectDomainName () {
// Determine whether we are installing
if (!isset($GLOBALS['__mailer_installing'])) {
// Check URL (css.php/js.php need this)
- $GLOBALS['__mailer_installing'] = (isGetRequestElementSet('installing') || ((isGetRequestElementSet('level')) && (getRequestElement('level') == 'install')));
+ $GLOBALS['__mailer_installing'] = (isGetRequestElementSet('installing') || ((isAjaxOutputMode()) && (isGetRequestElementSet('level')) && (getRequestElement('level') == 'install')));
} // END - if
// Return result
return ((isset($GLOBALS['monthly_enabled'])) && ($GLOBALS['monthly_enabled'] === TRUE));
}
+// Checks whether the yearly reset mode is active
+function isYearlyResetEnabled () {
+ // Now simply check it
+ return ((isset($GLOBALS['yearly_enabled'])) && ($GLOBALS['yearly_enabled'] === TRUE));
+}
+
// Checks whether one of the reset modes is enabled
function isResetModeEnabled () {
// Now simply check it
- return ((isHourlyResetEnabled()) || (isDailyResetEnabled()) || (isWeeklyResetEnabled()) || (isMonthlyResetEnabled()));
+ return ((isHourlyResetEnabled()) || (isDailyResetEnabled()) || (isWeeklyResetEnabled()) || (isMonthlyResetEnabled()) || (isYearlyResetEnabled()));
}
// Checks whether the debug mode is enabled
return $GLOBALS[__FUNCTION__];
}
+// Checks whether the debug yearly is enabled
+function isDebugYearlyEnabled () {
+ // Is cache set?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Simply check it
+ $GLOBALS[__FUNCTION__] = ((isConfigEntrySet('DEBUG_YEARLY')) && (getConfig('DEBUG_YEARLY') == 'Y'));
+ } // END - if
+
+ // Return it
+ return $GLOBALS[__FUNCTION__];
+}
+
// Checks whether SQL debugging is enabled
function isSqlDebuggingEnabled () {
// Is cache set?
}
// Checks whether the cache instance is valid
-function isCacheInstanceValid () {
+function isValidCacheInstance () {
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
// Abort if not set
if (!isset($GLOBALS['__block_mode'])) {
// Needs to be fixed
- reportBug(__FUNCTION__, __LINE__, 'Block_mode is not set.');
+ reportBug(__FUNCTION__, __LINE__, '__block_mode is not set.');
} // END - if
// Return it
}
// Wrapper function for installation phase
-function isInstallationPhase () {
+function isInstaller () {
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
// Set session
$status = setSession('admin_md5', $adminMd5);
+ // Remove cache to get correct results
+ unset($GLOBALS['isAdmin']);
+
// Return status
return $status;
}
// 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 () {
+function isValidUserData () {
// User id should not be zero so abort here
if (!isCurrentUserIdSet()) {
// Debug message, may be noisy
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = (getConfig('DEBUG_TEMPLATE_CACHE') == 'Y');
+ $GLOBALS[__FUNCTION__] = ((isConfigEntrySet('DEBUG_TEMPLATE_CACHE')) && (getConfig('DEBUG_TEMPLATE_CACHE') == 'Y'));
} // END - if
// Return cache
* @access private
*/
function sendRawRedirect ($url) {
+ //* DEBUG-DIE */ die(__METHOD__ . ':url=' . $url);
+
// Clear output buffer
clearOutputBuffer();
// Revert entity &
$url = str_replace('&', '&', $url);
+ //* DEBUG-DIE */ die(__METHOD__ . ':url=' . $url);
// check if running on IIS < 6 with CGI-PHP
if ((isset($_SERVER['SERVER_SOFTWARE'])) && (isset($_SERVER['GATEWAY_INTERFACE'])) &&
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__][$id])) {
// Check it out
- $GLOBALS[__FUNCTION__][$id] = ((!is_null($id)) && (!is_bool($id)) && (!empty($id)) && ($id != 'NULL') && ($id > 0));
+ $GLOBALS[__FUNCTION__][$id] = ((isValidNumber($id)) && (!is_bool($id)) && ($id != '00000') && ($id > 0));
} // END - if
// Return cache
return $GLOBALS[__FUNCTION__][$id];
}
+// Checks whether a valid number is given
+function isValidNumber ($num) {
+ // Determine it
+ return ((!is_null($num)) && (!empty($num)) && ('*' . bigintval($num, TRUE, FALSE) . '*' == '*' . $num . '*'));
+}
+
// Encodes entities
function encodeEntities ($str) {
// Secure it first
return $str;
}
-// "Getter" for date from patch_ctime
-function getDateFromRepository () {
- // Is it cached?
- if (!isset($GLOBALS[__FUNCTION__])) {
- // Then set it
- $GLOBALS[__FUNCTION__] = generateDateTime(getConfig('CURRENT_REPOSITORY_DATE'), '5');
- } // END - if
-
- // Return cache
- return $GLOBALS[__FUNCTION__];
-}
-
-// "Getter" for date/time from patch_ctime
-function getDateTimeFromRepository () {
- // Is it cached?
- if (!isset($GLOBALS[__FUNCTION__])) {
- // Then set it
- $GLOBALS[__FUNCTION__] = generateDateTime(getConfig('CURRENT_REPOSITORY_DATE'), '2');
- } // END - if
-
- // Return cache
- return $GLOBALS[__FUNCTION__];
-}
-
// Getter for current year (default)
function getYear ($timestamp = NULL) {
// Is it cached?
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Just check it
- $GLOBALS[__FUNCTION__] = (getConfig('enable_title_deco') == 'Y');
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.1.6')) && (isConfigEntrySet('enable_title_deco')) && (getConfig('enable_title_deco') == 'Y'));
} // END - if
// Return cache
return $GLOBALS[__FUNCTION__];
}
+// Checks whether debugging of yearly resets is enabled
+function isYearlyResetDebugEnabled () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = ((isConfigEntrySet('DEBUG_YEARLY')) && (getConfig('DEBUG_YEARLY') == 'Y'));
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
// Checks whether displaying of debug SQLs are enabled
function isDisplayDebugSqlEnabled () {
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('other', '0.2.2')) && (getDisplayDebugSqls() == 'Y'));
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('other', '0.2.2')) && (isConfigEntrySet('display_debug_sql')) && (getDisplayDebugSqls() == 'Y'));
} // END - if
// Return cache
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = (getConfig('enable_mod_title') == 'Y');
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.1.6')) && (isConfigEntrySet('enable_mod_title')) && (getConfig('enable_mod_title') == 'Y'));
} // END - if
// Return cache
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = (getConfig('enable_what_title') == 'Y');
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.1.6')) && (isConfigEntrySet('enable_what_title')) && (getConfig('enable_what_title') == 'Y'));
} // END - if
// Return cache
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Then determine it, do not add isExtensionInstalledAndNewer() here as it breaks very first SQL query
- $GLOBALS[__FUNCTION__] = (getInternalStats() == 'Y');
+ $GLOBALS[__FUNCTION__] = ((isConfigEntrySet('internal_stats')) && (getInternalStats() == 'Y'));
} // END - if
// Return cached value
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('other', '0.3.0')) && (getAdminNotify() == 'Y'));
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('other', '0.3.0')) && (isConfigEntrySet('admin_notify')) && (getAdminNotify() == 'Y'));
} // END - if
// Return cache
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('user', '0.3.4')) && (getSelectUserZeroRefid() == 'Y'));
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('user', '0.3.4')) && (isConfigEntrySet('select_user_zero_refid')) && (getSelectUserZeroRefid() == 'Y'));
} // END - if
// Return cache
return $GLOBALS[__FUNCTION__];
}
+// "Getter" for cache_extension
+function getCacheExtension () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('CACHE_EXTENSION');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
// "Getter" for WRITE_FOOTER
function getWriteFooter () {
// Is there cache?
return $GLOBALS[__FUNCTION__];
}
+// "Getter" for db_type
+function getDbType () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('_DB_TYPE');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
// "Getter" for salt_length
function getSaltLength () {
// Is there cache?
return $GLOBALS[__FUNCTION__];
}
-// "Getter" for curr_svn_revision
-function getCurrentRepositoryRevision () {
- // Is there cache?
- if (!isset($GLOBALS[__FUNCTION__])) {
- // Determine it
- $GLOBALS[__FUNCTION__] = getConfig('CURRENT_REPOSITORY_REVISION');
- } // END - if
-
- // Return cache
- return $GLOBALS[__FUNCTION__];
-}
-
// "Getter" for server_url
function getServerUrl () {
// Is there cache?
return $GLOBALS[__FUNCTION__];
}
-// "Getter" for pass_len
-function getPassLen () {
+// "Getter" for min_password_length
+function getMinPasswordLength () {
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = getConfig('pass_len');
+ $GLOBALS[__FUNCTION__] = getConfig('min_password_length');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for min_password_score
+function getMinPasswordScore () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('min_password_score');
} // END - if
// Return cache
return $GLOBALS[__FUNCTION__];
}
+// "Getter" for last_yearly
+function getLastYearly () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('last_yearly');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
// "Getter" for mails_page
function getMailsPage () {
// Is there cache?
// Is the cache entry set?
if (!isset($GLOBALS[__FUNCTION__])) {
// No, so determine it
- $GLOBALS[__FUNCTION__] = (getDisplayHomeInIndex() == 'Y');
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.8.3')) && (isConfigEntrySet('display_home_in_index')) && (getDisplayHomeInIndex() == 'Y'));
} // END - if
// Return cached entry
// Is the cache entry set?
if (!isset($GLOBALS[__FUNCTION__])) {
// No, so determine it
- $GLOBALS[__FUNCTION__] = (getShowPointsUnconfirmed() == 'Y');
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.5.5')) && (isConfigEntrySet('show_points_unconfirmed')) && (getShowPointsUnconfirmed() == 'Y'));
} // END - if
// Return cached entry
// Is the cache entry set?
if (!isset($GLOBALS[__FUNCTION__])) {
// No, so determine it
- $GLOBALS[__FUNCTION__] = (getYoureHere() == 'Y');
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.2.3')) && (isConfigEntrySet('youre_here')) && (getYoureHere() == 'Y'));
} // END - if
// Return cached entry
// Is the cache entry set?
if (!isset($GLOBALS[__FUNCTION__])) {
// No, so determine it
- $GLOBALS[__FUNCTION__] = (getShowTimings() == 'Y');
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.4.1')) && (isConfigEntrySet('show_timings')) && (getShowTimings() == 'Y'));
} // END - if
// Return cached entry
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.4.3')) && (getConfig('proxy_host') != '') && (getConfig('proxy_port') > 0));
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.4.3')) && (getConfig('proxy_host') != '') && (isValidNumber(getConfig('proxy_port'))));
} // END - if
// Return cache
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = (getConfig('allow_direct_pay') == 'Y');
+ $GLOBALS[__FUNCTION__] = ((isConfigEntrySet('allow_direct_pay')) && (getConfig('allow_direct_pay') == 'Y'));
} // END - if
// Return cache
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.8.7')) && (getAdminMenuJavaScript() == 'Y'));
+ $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.8.7')) && (isConfigEntrySet('admin_menu_javascript')) && (getAdminMenuJavaScript() == 'Y'));
} // END - if
// Return cache
}
// Wrapper for changeDataInFile() but with full path added
-function changeDataInInclude ($FQFN, $comment, $prefix, $suffix, $inserted, $seek=0) {
+function changeDataInInclude ($inc, $comment, $prefix, $suffix, $inserted, $seek=0) {
// Add full path
- $FQFN = getPath() . $FQFN;
+ $FQFN = getPath() . $inc;
// Call inner function
return changeDataInFile($FQFN, $comment, $prefix, $suffix, $inserted, $seek);
} // END - if
// Check for all referrals
- $result = SQL_QUERY_ESC("SELECT
+ $result = sqlQueryEscaped("SELECT
COUNT(`d`.`userid`) AS `cnt`
FROM
`{?_MYSQL_PREFIX?}_user_data` AS `d`
), __FUNCTION__, __LINE__);
// Load count
- list($GLOBALS[__FUNCTION__][$userid][$level]) = SQL_FETCHROW($result);
+ list($GLOBALS[__FUNCTION__][$userid][$level]) = sqlFetchRow($result);
// Free result
- SQL_FREERESULT($result);
+ sqlFreeResult($result);
} // END - if
// Return it
}
// Wrapper function for SQL layer to speed-up things
-function SQL_DEBUG_ENABLED () {
+function isSqlDebugEnabled () {
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
// Wrapper for str_pad() with left padding zeros
function padLeftZero ($str, $amount = 2) {
// Is str_pad() there?
- if (function_exists('str_pad')) {
+ if (!function_exists('str_pad')) {
// Use prependZeros()
return prependZeros($str, $amount);
} else {
}
}
+// Calculates percentage
+function calculatePercentageRate ($current, $total) {
+ // Default is zero
+ $rate = '0.0';
+
+ // Is sent larger zero? (Prevents division-by-zero)
+ if ($total > 0) {
+ // Calculate it (it should be "translated" alter on)
+ $rate = ($current / $total * 100);
+ } // END - if
+
+ // The should be a .0 at the end?
+ if (strpos($rate, '.') === FALSE) {
+ // No, then add it
+ $rate .= '.0';
+ } // END - if
+
+ // Return it
+ return $rate;
+}
+
+// Checks whether an array is filled with entries
+function isFilledArray ($array) {
+ // Determine it
+ return ((is_array($array)) && (count($array) > 0));
+}
+
+// Checks whether this script runs on a developer system (called with localhost/127.0.0.1 SERVER_NAME)
+function isDeveloperSystem () {
+ // Determine it
+ return in_array(detectServerName(), array('localhost', 'daedalus', '127.0.0.1'));
+}
+
+// Checks whether given subject line has '_ref' suffix
+function ifSubjectHasReferralSuffix ($subject) {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__][$subject])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__][$subject] = (substr($subject, -4, 4) == '_ref');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__][$subject];
+}
+
+// Converts an API response to an associative array
+function convertApiResponseToArray ($responseString, $keyDelimiter, $valueDelimiter) {
+ // Explode for key delimiter
+ $keys = explode($keyDelimiter, $responseString);
+
+ // Init returned array and "walk" through all entries
+ $returned = array();
+ foreach ($keys as $keyValue) {
+ // Explode it
+ $parts = explode($valueDelimiter, $keyValue);
+
+ // Count must be 2
+ assert(count($parts) == 2);
+
+ // Then add both: 0=key, 1=value
+ $returned[sqlEscapeString($parts[0])] = sqlEscapeString($parts[1]);
+ } // END - if
+
+ // Return finished array
+ return $returned;
+}
+
+// Getter for full (generic) hash file name
+function getGenericHashFileName () {
+ // Return result
+ return sprintf('%s%s.%s%s', getPath(), getCachePath(), getFileHash(), getCacheExtension());
+}
+
+// "Compiles" the given value and sets it in given key
+function setSessionCompiled ($key, $value) {
+ // Debug message
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key[]=' . gettype($key) . ',value[]=' . gettype($value));
+
+ // Is the value not an array?
+ if (!is_array($value)) {
+ // "Compile" the value
+ $value = doFinalCompilation(compileRawCode($value));
+ } // END - if
+
+ // And set it
+ return setSession($key, $value);
+}
+
// [EOF]
?>