X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffunctions.php;h=8b416e865c721fa80ad535632a30afbe752e7a18;hp=7db231cb3ac38a47e97865b47e499fbc986ff457;hb=0369c36aaab5af6ed44da1e13a53baef285f79b4;hpb=23b99ebc3174c1cf876248ece696e9ed6bb1aa71
diff --git a/inc/functions.php b/inc/functions.php
index 7db231cb3a..8b416e865c 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -53,6 +53,7 @@ function is_INCWritable($inc) {
// Open a table (you may want to add some header stuff here)
function OPEN_TABLE($PERCENT = "", $CLASS = "", $ALIGN="left", $VALIGN="", $td_only=false) {
global $table_cnt;
+
// Count tables so we can generate CSS classes for every table... :-)
if (empty($CLASS)) {
// Class is empty so count one up and create a class
@@ -198,6 +199,9 @@ function LOAD_TEMPLATE($template, $return=false, $content="") {
// Add more variables which you want to use in your template files
global $DATA, $_CONFIG, $username;
+ // Make all template names lowercase
+ $template = strtolower($template);
+
// Count the template load
if (!isset($_CONFIG['num_templates'])) $_CONFIG['num_templates'] = 0;
$_CONFIG['num_templates']++;
@@ -269,20 +273,20 @@ function LOAD_TEMPLATE($template, $return=false, $content="") {
);
// Probe for it...
- if (file_exists($file2)) $file = $file2;
+ if (FILE_READABLE($file2)) $file = $file2;
// Remove variable from memory
unset($file2);
}
// Does the special template exists?
- if ((!file_exists($file)) || (!is_readable($file))) {
+ if (!FILE_READABLE($file)) {
// Reset to default template
$file = $BASE.$template.".tpl";
- }
+ } // END - if
// Now does the final template exists?
- if ((file_exists($file)) && (is_readable($file))) {
+ if (FILE_READABLE($file)) {
// The local file does exists so we load it. :)
$tmpl_file = implode("", file($file));
@@ -338,7 +342,7 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML='N', $FROM="") {
$SUBJECT = html_entity_decode($SUBJECT);
// Set from header
- if (!eregi("@", $TO)) {
+ if ((!eregi("@", $TO)) && ($TO > 0)) {
// Value detected, load email from database
if (EXT_IS_ACTIVE("msg")) {
ADD_MESSAGE_TO_BOX($TO, $SUBJECT, $MSG, $HTML);
@@ -348,6 +352,9 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML='N', $FROM="") {
list($TO) = SQL_FETCHROW($result_email);
SQL_FREERESULT($result_email);
}
+ } elseif ($TO == 0) {
+ // Is the webmaster!
+ $TO = WEBMASTER;
}
// Not in PHPMailer-Mode
@@ -474,7 +481,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 +494,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 +503,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 +514,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) {
- $URL = URL."/modules.php?module=loader&url=".urlencode(base64_encode(gzcompress(COMPILE_CODE($URL))));
+function DEREFERER ($URL) {
+ $URL = URL."/modules.php?module=loader&url=".urlencode(base64_encode(gzcompress($URL)));
return $URL;
}
//
-function TRANSLATE_SEX($sex) {
+function TRANSLATE_SEX ($sex) {
switch ($sex)
{
case "M": $ret = SEX_M; break;
@@ -606,7 +597,7 @@ function FRAMETESTER($URL) {
}
//
function SELECTION_COUNT($array) {
- $ret = "0";
+ $ret = 0;
if (is_array($array)) {
foreach ($array as $key => $sel) {
if (!empty($sel)) $ret++;
@@ -656,7 +647,7 @@ function GET_LANGUAGE() {
// Check GET variable and cookie
if (!empty($lang)) {
// Check if main language file does exist
- if (file_exists(PATH."inc/language/".$lang.".php")) {
+ if (FILE_READABLE(PATH."inc/language/".$lang.".php")) {
// Okay found, so let's update cookies
SET_LANGUAGE($lang);
}
@@ -683,6 +674,9 @@ function SET_LANGUAGE($lang) {
function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") {
global $DATA, $_CONFIG, $REPLACER;
+ // Make sure all template names are lowercase!
+ $template = strtolower($template);
+
// Keept for backward-compatiblity (please replace these variables against our new {--CONST--} syntax!)
$MAIN_TITLE = MAIN_TITLE; $URL = URL; $WEBMASTER = WEBMASTER;
$surname = ""; $family = ""; $nick = ""; $sex = "N";
@@ -695,7 +689,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);
}
@@ -725,7 +719,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") {
$DATA[10] = $UID;
// Replace variables
- foreach ($REPLACER as $key=>$value)
+ foreach ($REPLACER as $key => $value)
{
if (isset($DATA[$key])) $content = str_replace($value, $DATA[$key], $content);
}
@@ -775,7 +769,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") {
$MAILID = $DATA[11];
// Replace variables
- foreach ($REPLACER as $key=>$value)
+ foreach ($REPLACER as $key => $value)
{
if (isset($DATA[$key])) $content = str_replace($value, $DATA[$key], $content);
}
@@ -860,44 +854,48 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") {
}
// Does the special template exists?
- if ((!@file_exists($file)) || (!is_readable($file))) {
+ if (!FILE_READABLE($file)) {
// Reset to default template
$file = $BASE.$template.".tpl";
} // END - if
// Now does the final template exists?
- if ((@file_exists($file)) && (is_readable($file))) {
+ $newContent = "";
+ if (FILE_READABLE($file)) {
// The local file does exists so we load it. :)
$tmpl_file = @implode("", @file($file));
$tmpl_file = addslashes($tmpl_file);
- // Compile code
- $tmpl_file = COMPILE_CODE($tmpl_file);
-
// Run code
- $tmpl_file = "\$content=\"".$tmpl_file."\";";
+ $tmpl_file = "\$newContent=\"".COMPILE_CODE($tmpl_file)."\";";
eval($tmpl_file);
- // Replace HTML confirm chars
- $content = html_entity_decode($content);
+ // Replace HTML conform chars
+ $newContent = html_entity_decode($newContent);
} elseif (!empty($template)) {
// Template file not found!
- $content = TEMPLATE_404.": ".$template."
+ $newContent = TEMPLATE_404.": ".$template."
".TEMPLATE_CONTENT."
-
".print_r($content, true)."
+".print_r($newContent, true)."
".TEMPLATE_DATA."
".print_r($DATA, true)."
";
// Debug mode not active? Then remove the HTML tags
- if (!DEBUG_MODE) $content = strip_tags($content);
+ if (!DEBUG_MODE) $newContent = strip_tags($newContent);
} else {
// No template name supplied!
- $content = NO_TEMPLATE_SUPPLIED;
+ $newContent = NO_TEMPLATE_SUPPLIED;
}
+ // Is there some content?
+ if (empty($newContent)) {
+ // Compiling failed
+ $newContent = "Compiler error for template {$template}!";
+ } // END - if
+
// Return compiled content
- return COMPILE_CODE($content);
+ return COMPILE_CODE($newContent);
}
//
function MAKE_TIME($H, $M, $S, $stamp) {
@@ -911,7 +909,7 @@ function MAKE_TIME($H, $M, $S, $stamp) {
}
//
function LOAD_URL($URL, $addUrlData=true) {
- global $CSS, $_CONFIG, $link, $db, $footer;
+ global $CSS, $_CONFIG, $footer;
// Check if http(s):// is there
if ((substr($URL, 0, 7) != "http://") && (substr($URL, 0, 8) != "https://")) {
@@ -989,20 +987,21 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) {
if ((count($matches) > 0) && (count($matches[0]) > 0)) {
// Replace all matches
$matchesFound = array();
- foreach ($matches[0] as $key=>$match) {
+ foreach ($matches[0] as $key => $match) {
// Avoid replacing matches multiple times
if (!isset($matchesFound[$match])) {
// Not yet replaced!
$code = str_replace($match, "\".".$match.".\"", $code);
$matchesFound[$match] = 1;
- }
+ } // END - if
// Take all string elements
if (("".bigintval($matches[4][$key])."" != $matches[4][$key]) && (!isset($matchesFound[$key."_".$matches[4][$key]]))) {
// Replace it in the code
- $code = str_replace("[".$matches[4][$key]."]", "['".$matches[4][$key]."']", $code);
+ $newMatch = str_replace("[".$matches[4][$key]."]", "['".$matches[4][$key]."']", $match);
+ $code = str_replace($match, $newMatch, $code);
$matchesFound[$key."_".$matches[4][$key]] = 1;
- }
+ } // END - if
}
}
@@ -1031,9 +1030,9 @@ function array_pk_sort(&$array, $a_sort, $primary_key = 0, $order = -1, $nums =
$dummy = $array;
while ($primary_key < count($a_sort))
{
- foreach ($dummy[$a_sort[$primary_key]] as $key=>$value)
+ foreach ($dummy[$a_sort[$primary_key]] as $key => $value)
{
- foreach ($dummy[$a_sort[$primary_key]] as $key2=>$value2)
+ foreach ($dummy[$a_sort[$primary_key]] as $key2 => $value2)
{
$match = false;
if (!$nums)
@@ -1050,7 +1049,7 @@ function array_pk_sort(&$array, $a_sort, $primary_key = 0, $order = -1, $nums =
if ($match)
{
// We have found two different values, so let's sort whole array
- foreach ($dummy as $sort_key=>$sort_val)
+ foreach ($dummy as $sort_key => $sort_val)
{
$t = $dummy[$sort_key][$key];
$dummy[$sort_key][$key] = $dummy[$sort_key][$key2];
@@ -1091,16 +1090,16 @@ function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0")
case "day": // Day
for ($idx = 1; $idx < 32; $idx++)
{
- $OUT .= " \n";
+ $OUT .= "\n";
}
}
else
{
// Get current year and subtract 16 (for erotic content)
- $OUT .= " \n";
+ $OUT .= "\n";
$YEAR = date('Y', time()) - 16;
for ($idx = 1930; $idx <= $YEAR; $idx++)
{
- $OUT .= "