X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffunctions.php;h=76b7859dbb16d00e39a994e3e95d368908d5b863;hp=74305d4701e40bf233a83baddfb2e9a5c6340288;hb=ca256746fe0757a23df4064824c8fe2087ad5634;hpb=387d390181f4aefd6d1e6d8fe16d9697801e99d7 diff --git a/inc/functions.php b/inc/functions.php index 74305d4701..76b7859dbb 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -85,7 +85,7 @@ function getTotalFatalErrors () { } // Generate a password in a specified length or use default password length -function generatePassword ($length = '0', $exclude = array()) { +function generatePassword ($length = '0', $exclude = array()) { // Auto-fix invalid length of zero if ($length == '0') { $length = getPassLen(); @@ -194,6 +194,26 @@ function translateYesNo ($yn) { return $GLOBALS[__FUNCTION__][$yn]; } +// "Translates" Y/N into "de-/active" +function translateActivationStatus ($status) { + // Is it cached? + if (!isset($GLOBALS[__FUNCTION__][$status])) { + // Default + $GLOBALS[__FUNCTION__][$status] = '??? (' . $status . ')'; + switch ($status) { + case 'Y': $GLOBALS[__FUNCTION__][$status] = '{--ACTIVATED--}'; break; + case 'N': $GLOBALS[__FUNCTION__][$status] = '{--DEACTIVATED--}'; break; + default: + // Log unknown value + logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown value %s. Expected: Y/N", $status)); + break; + } // END - switch + } // END - if + + // Return it + return $GLOBALS[__FUNCTION__][$status]; +} + // Translates the american decimal dot into a german comma // OPPOMENT: convertCommaToDot() function translateComma ($dotted, $cut = TRUE, $max = '0') { @@ -480,7 +500,7 @@ function array_pk_sort (&$array, $a_sort, $primary_key = '0', $order = -1, $nums } elseif ($key != $key2) { // Sort numbers (E.g.: 9 < 10) if (($temporaryArray[$a_sort[$primary_key]][$key] < $temporaryArray[$a_sort[$primary_key]][$key2]) && ($order == -1)) $match = TRUE; - if (($temporaryArray[$a_sort[$primary_key]][$key] > $temporaryArray[$a_sort[$primary_key]][$key2]) && ($order == 1)) $match = TRUE; + if (($temporaryArray[$a_sort[$primary_key]][$key] > $temporaryArray[$a_sort[$primary_key]][$key2]) && ($order == 1)) $match = TRUE; } if ($match) { @@ -1464,12 +1484,12 @@ function convertCommaToDot ($str) { $str = str_replace('.', '', $str); // Replace german commata with decimal dot and cast it - $float = sprintf('%01.5f', str_replace(',', '.', $str)); + $float = sprintf(getConfig('FLOAT_MASK'), str_replace(',', '.', $str)); break; default: // US and so on // Remove thousand commatas first and cast - $float = sprintf('%01.5f', str_replace(',', '', $str)); + $float = sprintf(getConfig('FLOAT_MASK'), str_replace(',', '', $str)); break; } // END - switch @@ -1645,29 +1665,29 @@ function initMemberId () { } // Setter for member id -function setMemberId ($memberid) { +function setMemberId ($memberId) { // We should not set member id to zero - if ($memberid == '0') { + if (!isValidId($memberId)) { reportBug(__FUNCTION__, __LINE__, 'Userid should not be set zero.'); } // END - if // Set it secured - $GLOBALS['member_id'] = bigintval($memberid); + $GLOBALS['member_id'] = bigintval($memberId); } // Getter for member id or returns zero function getMemberId () { // Default member id - $memberid = '0'; + $memberId = '0'; // Is the member id set? if (isMemberIdSet()) { // Then use it - $memberid = $GLOBALS['member_id']; + $memberId = $GLOBALS['member_id']; } // END - if // Return it - return $memberid; + return $memberId; } // Checks ether the member id is set @@ -1975,7 +1995,7 @@ function encodeUrl ($url, $outputMode = '0') { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'url=' . $url . ',isHtmlOutputMode()=' . intval(isHtmlOutputMode()) . ',outputMode=' . $outputMode); // Is there to decode entities? - if ((!isHtmlOutputMode()) || ($outputMode != '0')) { + if (!isHtmlOutputMode()) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'url=' . $url . ' - BEFORE DECODING'); // Decode them for e.g. JavaScript parts $url = decodeEntities($url); @@ -2082,7 +2102,7 @@ function convertZeroToNull ($number) { return $number; } -// Converts a NULL to zero +// Converts a NULL|empty string|< 1 to zero function convertNullToZero ($number) { // Is it a valid username? if ((is_null($number)) || (empty($number)) || ($number < 1)) { @@ -2211,7 +2231,7 @@ function isHexadecimal ($hex) { * @return $str Overworked string */ function replaceReturnNewLine ($str) { - return str_replace(array(chr(13), PHP_EOL), array('[r]', '[n]'), $str); + return str_replace(array(chr(13), chr(10)), array('[r]', '[n]'), $str); } // Converts a given string by splitting it up with given delimiter similar to @@ -2513,12 +2533,119 @@ function validateIsEmpty ($str) { return $str; } +// "Getter" for seconds from given time unit +function getSecondsFromTimeUnit ($timeUnit) { + // Default is not found + $seconds = NULL; + + // "Detect" it + switch ($timeUnit) { + case 's': // Seconds = 1 + $seconds = 1; + break; + + case 'm': // Minutes + $seconds = 60; + break; + + case 'h': // Hours + $seconds = 60*60; + break; + + case 'D': // Days + $seconds = 60*60*24; + break; + + case 'W': // Weeks + $seconds = 60*60*24*7; + break; + + default: // Unsupported + reportBug(__FUNCTION__, __LINE__, 'Unsupported time unit ' . $timeUnit . ' detected.'); + break; + } // END - switch + + // Return value + return $seconds; +} + +// Calulates value for given seconds and time unit +function caluculateTimeUnitValue ($seconds, $timeUnit) { + // Calculate it + return ($seconds / getSecondsFromTimeUnit($timeUnit)); +} + +// "Getter" for an array from given one but only one index of it +function getArrayFromArrayIndex ($array, $key) { + // Some simple validation + assert(isset($array[0][$key])); + + // Init new array + $newArray = array(); + + // "Walk" through all elements + foreach ($array as $element) { + $newArray[] = $element[$key]; + } // END - if + + // Return it + return $newArray; +} + +/** + * Compress given data and encodes it into BASE64 to be stored in database with + * SQL_QUERY_ESC() + * + * @param $data Data to be compressed and encoded + * @return $data Compressed+encoded data + */ +function compress ($data) { + // Compress it + return base64_encode(gzcompress($data)); +} + +/** + * Decompress given data previously compressed with compress(). + * + * @param $data Data compressed with compress() + * @reurn $data Uncompressed data + */ +function decompress ($data) { + // Decompress it + return gzuncompress(base64_decode($data)); +} + +/** + * Converts given charset in given string to UTF-8 if not UTF-8. This function + * is currently limited to iconv(). + * + * @param $str String to convert charset in + * @param $charset Charset to convert from + * @return $str Converted string + */ +function convertCharsetToUtf8 ($str, $charset) { + // Is iconv() available? + if (!function_exists('iconv')) { + // Please make it sure + reportBug(__FUNCTION__, __LINE__, 'PHP function iconv() is currently required to do charset convertion.'); + } // END - if + + // Is the charset not UTF-8? + if (strtoupper($charset) != 'UTF-8') { + // Convert it to UTF-8 + $str = iconv(strtoupper($charset), 'UTF-8//TRANSLIT', $str); + } // END - if + + // Return converted string + return $str; +} + // ---------------------------------------------------------------------------- // "Translatation" functions for points_data table // ---------------------------------------------------------------------------- // Translates generically some data into a target string -function translateGeneric ($messagePrefix, $data) { +function translateGeneric ($messagePrefix, $data, $messageSuffix = '') { // Is the method null or empty? if (is_null($data)) { // Is NULL @@ -2529,10 +2656,10 @@ function translateGeneric ($messagePrefix, $data) { } // END - if // Default column name is unknown - $return = '{%message,' . $messagePrefix . '_UNKNOWN=' . strtoupper($data) . '%}'; + $return = '{%message,' . $messagePrefix . '_UNKNOWN' . $messageSuffix . '=' . strtoupper($data) . '%}'; // Construct message id - $messageId = $messagePrefix . '_' . strtoupper($data); + $messageId = $messagePrefix . '_' . strtoupper($data) . $messageSuffix; // Is it there? if (isMessageIdValid($messageId)) {