X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffunctions.php;h=8875dc134d41276bbe3eadd43b56c92eea7db455;hp=7db231cb3ac38a47e97865b47e499fbc986ff457;hb=c45b1827a16928c65ecc1aea6a9d7a504c4874d4;hpb=6445dffaac3477625d6632ec764624039bd25da6 diff --git a/inc/functions.php b/inc/functions.php index 7db231cb3a..8875dc134d 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -474,7 +474,7 @@ function GEN_PASS($LEN = 0) { return $PASS; } // -function MAKE_DATETIME($time, $mode="0") +function MAKE_DATETIME ($time, $mode="0") { if ($time == 0) { // Never happend @@ -487,8 +487,7 @@ function MAKE_DATETIME($time, $mode="0") switch (GET_LANGUAGE()) { case "de": // German date / time format - switch ($mode) - { + switch ($mode) { case "0": $ret = date("d.m.Y \u\m H:i \U\h\\r", $time); break; case "1": $ret = strtolower(date("d.m.Y - H:i", $time)); break; case "2": $ret = date("d.m.Y|H:i", $time); break; @@ -497,8 +496,7 @@ function MAKE_DATETIME($time, $mode="0") break; default: // Default is the US date / time format! - switch ($mode) - { + switch ($mode) { case "0": $ret = date("r", $time); break; case "1": $ret = date("Y-m-d - g:i A", $time); break; case "2": $ret = date("y-m-d|H:i", $time); break; @@ -509,69 +507,55 @@ function MAKE_DATETIME($time, $mode="0") } // Translates the american decimal dot into a german comma -function TRANSLATE_COMMA($dotted, $cut=true) { +function TRANSLATE_COMMA ($dotted, $cut=true) { global $_CONFIG; + // Default is 3 you can change this in admin area "Misc -> Misc Options" if (empty($_CONFIG['max_comma'])) $_CONFIG['max_comma'] = "3"; - if (!ereg("\.", $dotted)) $dotted .= ".".str_repeat("0", $_CONFIG['max_comma']); - if ($cut) { - // Remove trailing zeros - $dot = str_replace(".", "x", $dotted); - while(substr($dot, -1, 1) == "0") { - $dot = substr($dot, 0, -1); - } + $maxComma = $_CONFIG['max_comma']; - if (substr($dot, -1, 1) == "x") { - // Last char is the 'x' - $dotted = substr($dot, 0, -1); + // Cut zeros off? + if ($cut) { + // Test for commata if in cut-mode + $com = explode(".", $dotted); + if (count($com) > 1) { + // Commata found, so only zeros? + if ($com[1] == str_repeat("0", strlen($com[1]))) { + // Only zeros, so don't display them + $maxComma = 0; + } // END - if } else { - // Last char is a number - $dotted = str_replace("x", ".", $dot); + // Don't display commatas even if there are none... ;-) + $maxComma = 0; } - } + } // END - if + + // Debug log + //DEBUG_LOG(__FUNCTION__.":dotted={$dotted},maxComma={$maxComma}"); // Translate it now switch (GET_LANGUAGE()) { case "de": - $pos = strpos($dotted, "."); - if ($pos > 0) { - if ($cut) { - // Cut x numbers behind comma - $dotted = str_replace(".", ",", substr($dotted, 0, ($pos + $_CONFIG['max_comma'] + 1))); - } else { - // Replace comma with dot - $dotted = str_replace(".", ",", $dotted); - } - } elseif (!$cut) { - if (empty($pos)) { - $dotted = "0,".str_repeat("0", $_CONFIG['max_comma']); - } else { - $dotted .= ",".str_repeat("0", $_CONFIG['max_comma']); - } - } + $dotted = number_format($dotted, $maxComma, ",", "."); break; default: - if (!$cut) { - if ($pos > 0) { - $dotted = substr($dotted, 0, ($pos + $_CONFIG['max_comma'] + 1)); - } else { - $dotted .= ".".str_repeat("0", $_CONFIG['max_comma']); - } - } + $dotted = number_format($dotted, $maxComma, ".", ","); break; } + + // Return translated value return $dotted; } // -function DEREFERER($URL) { +function DEREFERER ($URL) { $URL = URL."/modules.php?module=loader&url=".urlencode(base64_encode(gzcompress(COMPILE_CODE($URL)))); return $URL; } // -function TRANSLATE_SEX($sex) { +function TRANSLATE_SEX ($sex) { switch ($sex) { case "M": $ret = SEX_M; break; @@ -695,7 +679,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") { if (isSessionVariableSet('admin_login')) { // Load Admin data $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1", - array(SQL_ESCAPE(get_session('admin_login'))), __FILE__, __LINE__); + array(get_session('admin_login')), __FILE__, __LINE__); list($ADMIN) = SQL_FETCHROW($result); SQL_FREERESULT($result); } @@ -2224,7 +2208,7 @@ function get_session($var) { if (isSessionVariableSet($var)) { // Then get it secured! $value = SQL_ESCAPE($_SESSION[$var]); - } + } // END - if // Return the value return $value; @@ -2271,6 +2255,78 @@ function DEBUG_LOG ($message) { fclose($fp); } // END - if } +// Reads a directory with PHP files in and gets only files back +function GET_DIR_AS_ARRAY ($baseDir, $prefix) { + $INCs = array(); + + // Open directory + $dirPointer = opendir($baseDir) or mxchange_die("Cannot read ".basename($baseDir)." path!"); + + // Read all entries + while ($baseFile = readdir($dirPointer)) { + // Load file only if extension is active + // Make full path + $file = $baseDir.$baseFile; + + // Is this a valid reset file? + if ((is_file($file)) && (is_readable($file)) && (substr($baseFile, 0, strlen($prefix)) == $prefix) && (substr($baseFile, -4, 4) == ".php")) { + // Remove both for extension name + $extName = substr($baseFile, strlen($prefix), -4); + + // Try to find it + $extId = GET_EXT_ID($extName); + + // Is the extension valid and active? + if (($extId > 0) && (EXT_IS_ACTIVE($extName))) { + // Then add this file + $INCs[] = $file; + } + } // END - if + } // END - while + + // Close directory + closedir($dirPointer); + + // Return array with include files + return $INCs; +} +// Load more reset scripts +function RESET_ADD_INCLUDES () { + global $_CONFIG, $INC_POOL; + + // Is the reset set or old sql_patches? + if ((!isBooleanConstantAndTrue('__DAILY_RESET')) || (GET_EXT_VERSION("sql_patches") < "0.4.5")) { + // Then abort here + return; + } // END - if + + // Get more daily reset scripts + $INC_POOL = array_merge($INC_POOL, GET_DIR_AS_ARRAY(PATH."inc/reset/", "reset_")); + + // Create current week mark + $currWeek = date("W", time()); + + // Has it changed? + if ($_CONFIG['last_week'] != $currWeek) { + // Include weekly reset scripts + $INC_POOL = array_merge($INC_POOL, GET_DIR_AS_ARRAY(PATH."inc/weekly/", "weekly_")); + + // Update config + UPDATE_CONFIG("last_week", $currWeek); + } // END - if + + // Create current month mark + $currMonth = date("m", time()); + + // Has it changed? + if ($_CONFIG['last_month'] != $currMonth) { + // Include monthly reset scripts + $INC_POOL = array_merge($INC_POOL, GET_DIR_AS_ARRAY(PATH."inc/monthly/", "monthly_")); + + // Update config + UPDATE_CONFIG("last_month", $currMonth); + } // END - if +} // ////////////////////////////////////////////////// // //