X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffunctions.php;h=e24be85a2de601d7eb0a4784f70a6b90418b9051;hp=62c7b75a7fc5a4ca9018a20ffd1b15313f01e262;hb=898d17a09c66527b1e5d45149e23b88d42487c35;hpb=5dfaf0ed80b30f53574a8866858d3e7cf05ce325
diff --git a/inc/functions.php b/inc/functions.php
index 62c7b75a7f..e24be85a2d 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -71,18 +71,15 @@ function OPEN_TABLE($PERCENT = "", $CLASS = "", $ALIGN="left", $VALIGN="", $td_o
// Vertical align is given
if (!empty($VALIGN)) $OUT .= " valign=\"".$VALIGN."\"";
- $OUT .= ">
-
-
";
- OUTPUT_HTML($OUT);
+ OUTPUT_HTML($OUT);
}
// Close a table (you may want to add some footer stuff here)
function CLOSE_TABLE($ADD="") {
- OUTPUT_HTML("
-
");
+ OUTPUT_HTML(" \n");
if (!empty($ADD)) OUTPUT_HTML($ADD);
OUTPUT_HTML("");
}
@@ -101,7 +98,7 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) {
// That's why you don't need any \n at the end of your HTML code... :-)
if (_OB_CACHING == "on") {
// Output into PHP's internal buffer
- echo $HTML;
+ OUTPUT_RAW($HTML);
// That's why you don't need any \n at the end of your HTML code... :-)
if ($NEW_LINE) echo "\n";
@@ -116,10 +113,10 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) {
case "direct":
// If we are switching from render to direct output rendered code
- if ((!empty($OUTPUT)) && (_OB_CACHING != "on")) { echo $OUTPUT; $OUTPUT = ""; }
+ if ((!empty($OUTPUT)) && (_OB_CACHING != "on")) { OUTPUT_RAW($OUTPUT); $OUTPUT = ""; }
// The same as above... ^
- echo $HTML;
+ OUTPUT_RAW($HTML);
if ($NEW_LINE) echo "\n";
break;
@@ -140,14 +137,13 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) {
}
// Compile and run finished rendered HTML code
- while (strpos($OUTPUT, "{!") > 0) {
+ while (strpos($OUTPUT, '{!') > 0) {
$eval = "\$OUTPUT = \"" . COMPILE_CODE(addslashes($OUTPUT)) . "\";";
- @eval($eval);
+ eval($eval);
}
// Output code here, DO NOT REMOVE! ;-)
- echo $OUTPUT;
- flush();
+ OUTPUT_RAW($OUTPUT);
} elseif ((OUTPUT_MODE == "render") && (!empty($OUTPUT))) {
// Rewrite links when rewrite extension is active
if ((EXT_IS_ACTIVE("rewrite", true)) && (function_exists('REWRITE_LINKS')) && ($CSS != "1") && ($CSS != "-1")) {
@@ -155,20 +151,32 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) {
}
// Compile and run finished rendered HTML code
- while (strpos($OUTPUT, "{!") > 0) {
+ while (strpos($OUTPUT, '{!') > 0) {
$eval = "\$OUTPUT = \"" . COMPILE_CODE(addslashes($OUTPUT)) . "\";";
- @eval($eval);
+ eval($eval);
}
// Output code here, DO NOT REMOVE! ;-)
- echo $OUTPUT;
- flush();
+ OUTPUT_RAW($OUTPUT);
}
}
+// Output the raw HTML code
+function OUTPUT_RAW ($HTML) {
+ if ((isBooleanConstantAndTrue('mxchange_installed')) && (basename($_SERVER['PHP_SELF']) != "install.php")) {
+ // Not in install-mode so strip slashes away
+ echo stripslashes($HTML);
+ } else {
+ // Output directly in install-mode
+ echo $HTML;
+ }
+
+ // Flush the output
+ flush();
+}
+
// Add a fatal error message to the queue array
-function ADD_FATAL ($message, $extra="")
-{
+function ADD_FATAL ($message, $extra="") {
global $FATAL;
if (empty($extra)) {
// Regular text message to add to $FATAL
@@ -182,11 +190,11 @@ function ADD_FATAL ($message, $extra="")
// Load a template file and return it's content (only it's name; do not use ' or ")
function LOAD_TEMPLATE($template, $return=false, $content="") {
// Add more variables which you want to use in your template files
- global $DATA, $CONFIG, $username;
+ global $DATA, $_CONFIG, $username;
// Count the template load
- if (!isset($CONFIG['num_templates'])) $CONFIG['num_templates'] = 0;
- $CONFIG['num_templates']++;
+ if (!isset($_CONFIG['num_templates'])) $_CONFIG['num_templates'] = 0;
+ $_CONFIG['num_templates']++;
// Init some data
$ACTION = SQL_ESCAPE($GLOBALS['action']);
@@ -261,23 +269,23 @@ function LOAD_TEMPLATE($template, $return=false, $content="") {
}
// Does the special template exists?
- if (!file_exists($file)) {
+ if ((!file_exists($file)) || (!is_readable($file))) {
// Reset to default template
$file = $BASE.$template.".tpl";
}
// Now does the final template exists?
- if (file_exists($file)) {
+ if ((file_exists($file)) && (is_readable($file))) {
// The local file does exists so we load it. :)
$tmpl_file = implode("", file($file));
// Replace ' to our own chars to preventing them being quoted
- while (strpos($tmpl_file, "\'") !== false) { $tmpl_file = str_replace("\'", "{QUOT}", $tmpl_file); }
+ while (strpos($tmpl_file, "\'") !== false) { $tmpl_file = str_replace("\'", '{QUOT}', $tmpl_file); }
// Do we have to compile the code?
if ((strpos($tmpl_file, "\$") !== false) || (strpos($tmpl_file, '{--') !== false) || (strpos($tmpl_file, '--}') > 0)) {
// Okay, compile it!
- $tmpl_file = "\$ret=\"".COMPILE_CODE(addslashes($tmpl_file))."\";";
+ $tmpl_file = "\$ret=\"" . COMPILE_CODE(addslashes($tmpl_file)) . "\";";
eval($tmpl_file);
} else {
// Simply return loaded code
@@ -286,7 +294,7 @@ function LOAD_TEMPLATE($template, $return=false, $content="") {
// Add surrounding HTML comments to help finding bugs faster
$ret = "\n".$ret."\n";
- } elseif ((IS_ADMIN()) || ((mxchange_installing) && (!mxchange_installed))) {
+ } elseif ((IS_ADMIN()) || ((isBooleanConstantAndTrue('mxchange_installing')) && (!isBooleanConstantAndTrue('mxchange_installed')))) {
// Only admins shall see this warning or when installation mode is active
$ret = " ".TEMPLATE_404."
(".basename($file).")
@@ -308,7 +316,7 @@ function LOAD_TEMPLATE($template, $return=false, $content="") {
// Output direct
OUTPUT_HTML($ret);
}
- } elseif (DEBUG_MODE) {
+ } elseif (isBooleanConstantAndTrue('DEBUG_MODE')) {
// Warning, empty output!
return "E:".$template." \n";
}
@@ -317,7 +325,7 @@ function LOAD_TEMPLATE($template, $return=false, $content="") {
// Send mail out to an email address
function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML='N', $FROM="") {
// Compile subject line (for POINTS constant etc.)
- $eval = "\$SUBJECT = \"".COMPILE_CODE(addslashes($SUBJECT))."\";";
+ $eval = "\$SUBJECT = \"" . COMPILE_CODE(addslashes($SUBJECT)) . "\";";
eval($eval);
$SUBJECT = html_entity_decode($SUBJECT);
@@ -343,7 +351,7 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML='N', $FROM="") {
// Append header
$FROM .= LOAD_EMAIL_TEMPLATE("header");
}
- } elseif (DEBUG_MODE) {
+ } elseif (isBooleanConstantAndTrue('DEBUG_MODE')) {
if (empty($FROM)) {
// Load email header template
$FROM = LOAD_EMAIL_TEMPLATE("header");
@@ -355,7 +363,7 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML='N', $FROM="") {
// Fix HTML parameter (default is no!)
if (empty($HTML)) $HTML = 'N';
- if (DEBUG_MODE) {
+ if (isBooleanConstantAndTrue('DEBUG_MODE')) {
// In debug mode we want to display the mail instead of sending it away so we can debug this part
echo "
".htmlentities(trim($FROM))."
@@ -429,8 +437,8 @@ function SEND_RAW_EMAIL ($to, $subject, $msg, $from) {
// Generate a password in a specified length or use default password length
function GEN_PASS($LEN = 0) {
- global $CONFIG;
- if ($LEN == 0) $LEN = $CONFIG['pass_len'];
+ global $_CONFIG;
+ if ($LEN == 0) $LEN = $_CONFIG['pass_len'];
// Initialize array with all allowed chars
$ABC = explode(",", "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9,-,+,_,/");
@@ -491,10 +499,10 @@ function MAKE_DATETIME($time, $mode="0")
// Translates the american decimal dot into a german comma
function TRANSLATE_COMMA($dotted, $cut=true)
{
- global $CONFIG;
+ 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 (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);
@@ -518,16 +526,16 @@ function TRANSLATE_COMMA($dotted, $cut=true)
if ($pos > 0) {
if ($cut) {
// Cut x numbers behind comma
- $dotted = str_replace(".", ",", substr($dotted, 0, ($pos + $CONFIG['max_comma'] + 1)));
+ $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']);
+ $dotted = "0,".str_repeat("0", $_CONFIG['max_comma']);
} else {
- $dotted .= ",".str_repeat("0", $CONFIG['max_comma']);
+ $dotted .= ",".str_repeat("0", $_CONFIG['max_comma']);
}
}
break;
@@ -535,9 +543,9 @@ function TRANSLATE_COMMA($dotted, $cut=true)
default:
if (!$cut) {
if ($pos > 0) {
- $dotted = substr($dotted, 0, ($pos + $CONFIG['max_comma'] + 1));
+ $dotted = substr($dotted, 0, ($pos + $_CONFIG['max_comma'] + 1));
} else {
- $dotted .= ".".str_repeat("0", $CONFIG['max_comma']);
+ $dotted .= ".".str_repeat("0", $_CONFIG['max_comma']);
}
}
break;
@@ -626,17 +634,11 @@ function TRANSLATE_STATUS($status)
return $ret;
}
//
-function GET_LANGUAGE()
-{
- global $_COOKIE, $_GET;
-
- if (!empty($_GET['mx_lang']))
- {
+function GET_LANGUAGE() {
+ if (!empty($_GET['mx_lang'])) {
// Accept only first 2 chars
$lang = substr($_GET['mx_lang'], 0, 2);
- }
- else
- {
+ } else {
// Do nothing
$lang = "";
}
@@ -645,40 +647,34 @@ function GET_LANGUAGE()
$ret = DEFAULT_LANG;
// Check GET variable and cookie
- if (!empty($lang))
- {
+ if (!empty($lang)) {
// Check if main language file does exist
- if (file_exists(PATH."inc/language/".$lang.".php"))
- {
+ if (file_exists(PATH."inc/language/".$lang.".php")) {
// Okay found, so let's update cookies
SET_LANGUAGE($lang);
}
- }
- elseif (!empty($_COOKIE['mx_lang']))
- {
+ } elseif (!isSessionVariableSet('mx_lang')) {
// Return stored value from cookie
- $ret = $_COOKIE['mx_lang'];
+ $ret = get_session('mx_lang');
+
+ // Fixes a warning before the session has the mx_lang constant
+ if (empty($ret)) $ret = DEFAULT_LANG;
}
return $ret;
}
//
-function SET_LANGUAGE($lang)
-{
- global $CONFIG;
+function SET_LANGUAGE($lang) {
+ global $_CONFIG;
// Accept only first 2 chars!
$lang = substr(SQL_ESCAPE(strip_tags($lang)), 0, 2);
// Set cookie
- @setcookie("mx_lang", $lang, (time() + $CONFIG['online_timeout']), COOKIE_PATH);
-
- // Set array
- $_COOKIE['mx_lang'] = $lang;
+ set_session("mx_lang", $lang);
}
//
-function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
-{
- global $DATA, $CONFIG, $REPLACER;
+function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") {
+ global $DATA, $_CONFIG, $REPLACER;
// Keept for backward-compatiblity (please replace these variables against our new {--CONST--} syntax!)
$MAIN_TITLE = MAIN_TITLE; $URL = URL; $WEBMASTER = WEBMASTER;
@@ -689,37 +685,32 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
$HTTP_USER_AGENT = getenv('HTTP_USER_AGENT');
$ADMIN = MAIN_TITLE;
- if (!empty($_COOKIE['admin_login']))
- {
+ 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($_COOKIE['admin_login'])), __FILE__, __LINE__);
+ array(SQL_ESCAPE(get_session('admin_login'))), __FILE__, __LINE__);
list($ADMIN) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
}
// Expiration in a nice output format
- if ($CONFIG['auto_purge'] == 0)
- {
+ if ($_CONFIG['auto_purge'] == 0) {
// Will never expire!
$EXPIRATION = MAIL_WILL_NEVER_EXPIRE;
- }
- elseif (function_exists('CREATE_FANCY_TIME'))
- {
+ } elseif (function_exists('CREATE_FANCY_TIME')) {
// Create nice date string
- $EXPIRATION = CREATE_FANCY_TIME($CONFIG['auto_purge']);
- }
- else
- {
+ $EXPIRATION = CREATE_FANCY_TIME($_CONFIG['auto_purge']);
+ } else {
// Display days only
- $EXPIRATION = round($CONFIG['auto_purge']/60/60/24)." "._DAYS;
+ $EXPIRATION = round($_CONFIG['auto_purge']/60/60/24)." "._DAYS;
}
+
switch ($template)
{
case "bonus-mail": // Load data for the bonus mail
$BONUSID = $DATA[0];
$content = $DATA[2];
- $POINTS = TRANSLATE_COMMA($DATA[4]);
+ $points = TRANSLATE_COMMA($DATA[4]);
$TIME = $DATA[5];
$TARGET_URL = $DATA[8];
$CATEGORY = GET_CATEGORY($DATA[9]);
@@ -734,7 +725,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
case "order-admin":
case "order-member":
- $BLOCKS = $CONFIG['max_send'];
+ $BLOCKS = $_CONFIG['max_send'];
$SUBJECT = $DATA[0];
$content = $DATA[1];
$PAYMENT = GET_PAYMENT($DATA[3]);
@@ -756,13 +747,13 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
break;
case "confirm-member":
- $POINTS = $CONFIG['points_register'];
+ $points = $_CONFIG['points_register'];
break;
case "confirm-referral":
$PERCENT = $DATA[0];
$LEVEL = $DATA[1];
- $POINTS = $DATA[2];
+ $points = $DATA[2];
$REFID = $DATA[3];
break;
@@ -771,7 +762,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
$CATEGORY = GET_CATEGORY($DATA[9]);
$TIME = GET_PAY_POINTS($DATA[5], "time");
$TARGET_URL = $DATA[7];
- $POINTS = TRANSLATE_COMMA(GET_PAY_POINTS($DATA[5], "payment"));
+ $points = TRANSLATE_COMMA(GET_PAY_POINTS($DATA[5], "payment"));
// Warning! This ID has changed from 10 to 11!
$MAILID = $DATA[11];
@@ -791,11 +782,15 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
case "back-admin":
case "back-member":
- $POINTS = TRANSLATE_COMMA($DATA[10]);
+ $points = TRANSLATE_COMMA($DATA[10]);
break;
case "add-points":
- $POINTS = $_POST['points'];
+ if (isset($_POST['points'])) {
+ $points = bigintval($_POST['points']);
+ } else {
+ $points = __POINTS_VALUE;
+ }
break;
case "guest_request_confirm":
@@ -804,18 +799,14 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
}
// Load user's data
- if ($UID > 0)
- {
- if (EXT_IS_ACTIVE("nickname"))
- {
+ if ($UID > 0) {
+ if (EXT_IS_ACTIVE("nickname")) {
// Load nickname
$result = SQL_QUERY_ESC("SELECT surname, family, sex, email, nickname FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
array(bigintval($UID)), __FILE__, __LINE__);
list($surname, $family, $sex, $email, $nick) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
- }
- else
- {
+ } else {
// Load normal data
$result = SQL_QUERY_ESC("SELECT surname, family, sex, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
array(bigintval($UID)), __FILE__, __LINE__);
@@ -823,9 +814,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
SQL_FREERESULT($result);
$nick = "---";
}
- }
- else
- {
+ } else {
// Neutral sex and email address is default
$sex = 'N';
$email = WEBMASTER;
@@ -841,40 +830,29 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
$BASE = PATH."templates/".GET_LANGUAGE()."/emails/";
// Check for admin/guest/member templates
- if (strpos($template, "admin_") > -1)
- {
+ if (strpos($template, "admin_") > -1) {
// Admin template found
$file = $BASE."admin/".$template.".tpl";
- }
- elseif (strpos($template, "guest_") > -1)
- {
+ } elseif (strpos($template, "guest_") > -1) {
// Guest template found
$file = $BASE."guest/".$template.".tpl";
- }
- elseif (strpos($template, "member_") > -1)
- {
+ } elseif (strpos($template, "member_") > -1) {
// Member template found
$file = $BASE."member/".$template.".tpl";
- }
- else
- {
+ } else {
// Test for extension
$test = substr($template, 0, strpos($template, "_"));
- if (EXT_IS_ACTIVE($test))
- {
+ if (EXT_IS_ACTIVE($test)) {
// Set extra path to extension's name
$file = $BASE.$test."/".$template.".tpl";
- }
- else
- {
+ } else {
// No special filename
$file = $BASE.$template.".tpl";
}
}
// Does the special template exists?
- if (!@file_exists($file))
- {
+ if ((!@file_exists($file)) || (!is_readable($file))) {
// Reset to default template
$file = $BASE.$template.".tpl";
}
@@ -929,6 +907,14 @@ function MAKE_TIME($H, $M, $S, $stamp)
}
//
function LOAD_URL($URL, $addUrlData=true) {
+ global $CSS, $_CONFIG, $link, $db, $footer;
+
+ // Check if http(s):// is there
+ if ((substr($URL, 0, 7) != "http://") && (substr($URL, 0, 8) != "https://")) {
+ // Make all URLs full-qualified
+ $URL = URL."/".$URL;
+ }
+
// Compile out URI codes
$URL = COMPILE_CODE($URL);
@@ -948,7 +934,7 @@ function LOAD_URL($URL, $addUrlData=true) {
} else {
// Output error message
include(PATH."inc/header.php");
- OUTPUT_HTML(LOAD_URL_ERROR_1.$URL.LOAD_URL_ERROR_2);
+ LOAD_TEMPLATE("redirect_url", false, str_replace("&", "&", $URL));
include(PATH."inc/footer.php");
}
exit();
@@ -965,11 +951,11 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) {
if ($constants) {
// BEFORE 0.2.1 : Language and data constants
// WITH 0.2.1+ : Only language constants
- $code = str_replace("{--", '".', str_replace("--}", '."', $code));
+ $code = str_replace('{--', '".', str_replace('--}', '."', $code));
// BEFORE 0.2.1 : Not used
// WITH 0.2.1+ : Data constants
- $code = str_replace("{!", '".', str_replace("!}", '."', $code));
+ $code = str_replace('{!', '".', str_replace("!}", '."', $code));
}
// Compile QUOT and other non-HTML codes
@@ -979,7 +965,7 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) {
}
// But shall I keep simple quotes for later use?
- if ($simple) $code = str_replace("\'", "{QUOT}", $code);
+ if ($simple) $code = str_replace("\'", '{QUOT}', $code);
// Find $content[bla][blub] entries
@preg_match_all('/\$(content|DATA)((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches);
@@ -1166,7 +1152,7 @@ function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0")
$OUT .= "