X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ffunctions.php;h=25ae3c78fcf6b8b0d8802f7b8e76672512ffb727;hb=5db786e2dbbd927449a5ca95bfb277f851b678b6;hp=5c0d7da89b225f026349d799557127d31c281518;hpb=5ef6ed7373ae85e5635e39e2a0adf9496a8add05;p=mailer.git
diff --git a/inc/functions.php b/inc/functions.php
index 5c0d7da89b..25ae3c78fc 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -32,47 +32,34 @@
************************************************************************/
// Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
-{
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
$INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
require($INC);
}
// Check if our config file is writeable or not
-function is_INCWritable($inc)
-{
+function is_INCWritable($inc) {
$fp = @fopen(PATH."inc/".$inc.".php", 'a');
- if ($inc == "dummy")
- {
+ if ($inc == "dummy") {
// Remove dummy file
@fclose($fp);
return @unlink(PATH."inc/dummy.php");
- }
- else
- {
+ } else {
// Close all other files
return @fclose($fp);
}
}
-// Check if we can write to an sql file
-function is_SQLWriteable($sql)
-{
- $fp = @fopen(PATH.$sql.".sql", 'a');
- return @fclose($fp);
-}
-
// Open a table (you may want to add some header stuff here)
-function OPEN_TABLE($PERCENT = "", $CLASS = "", $ALIGN="left", $VALIGN="", $td_only=false)
-{
+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))
- {
+ if (empty($CLASS)) {
// Class is empty so count one up and create a class
$table_cnt++; $CLASS = "class".$table_cnt;
}
$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("
-");
+function CLOSE_TABLE($ADD="") {
+ OUTPUT_HTML(" \n");
if (!empty($ADD)) OUTPUT_HTML($ADD);
OUTPUT_HTML("
");
}
@@ -103,7 +87,7 @@ function CLOSE_TABLE($ADD="")
// Output HTML code directly or "render" it. You addionally switch the new-line character off
function OUTPUT_HTML($HTML, $NEW_LINE = true) {
// Some global variables
- global $OUTPUT, $FOOTER, $CSS;
+ global $OUTPUT, $footer, $CSS;
// Do we have HTML-Code here?
if (!empty($HTML)) {
@@ -112,16 +96,13 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) {
{
case "render":
// That's why you don't need any \n at the end of your HTML code... :-)
- if (_OB_CACHING == "on")
- {
+ if (_OB_CACHING == "on") {
// Output into PHP's internal buffer
- echo stripslashes($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";
- }
- else
- {
+ } else {
// Render mode for old or lame servers...
$OUTPUT .= $HTML;
@@ -132,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 stripslashes($HTML);
+ OUTPUT_RAW($HTML);
if ($NEW_LINE) echo "\n";
break;
@@ -144,7 +125,7 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) {
die ("".FATAL_ERROR.": ".LANG_NO_RENDER_DIRECT);
break;
}
- } elseif ((_OB_CACHING == "on") && ($FOOTER == 1)) {
+ } elseif ((_OB_CACHING == "on") && ($footer == 1)) {
// Output cached HTML code
$OUTPUT = ob_get_contents();
@@ -156,14 +137,21 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) {
}
// Compile and run finished rendered HTML code
- while (strpos($OUTPUT, "{!") > 0) {
- $eval = "\$OUTPUT = \"" . COMPILE_CODE(addslashes($OUTPUT)) . "\";";
+ while (strpos($OUTPUT, '{!') > 0) {
+ // Prepare the content and eval() it...
+ $newContent = "";
+ $eval = "\$newContent = \"" . COMPILE_CODE(addslashes($OUTPUT)) . "\";";
@eval($eval);
+
+ if (empty($newContent)) {
+ // Something went wrong!
+ die("Evaluation error:
".htmlentities($eval)."
");
+ }
+ $OUTPUT = $newContent;
}
// Output code here, DO NOT REMOVE! ;-)
- echo stripslashes($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")) {
@@ -171,20 +159,30 @@ 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 stripslashes($OUTPUT);
+ OUTPUT_RAW($OUTPUT);
+ }
+}
+
+// Output the raw HTML code
+function OUTPUT_RAW ($HTML) {
+ // Output stripped HTML code to avoid broken JavaScript code, etc.
+ echo stripslashes($HTML);
+
+ // Flush the output if only _OB_CACHING is not "on"
+ if (_OB_CACHING != "on") {
+ // Flush it
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
@@ -196,18 +194,22 @@ 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="")
-{
+function LOAD_TEMPLATE($template, $return=false, $content="") {
// Add more variables which you want to use in your template files
- global $DATA, $username;
+ global $DATA, $_CONFIG, $username;
+
+ // Count the template load
+ if (!isset($_CONFIG['num_templates'])) $_CONFIG['num_templates'] = 0;
+ $_CONFIG['num_templates']++;
+
+ // Init some data
$ACTION = SQL_ESCAPE($GLOBALS['action']);
$WHAT = SQL_ESCAPE($GLOBALS['what']);
$ret = "";
if (empty($GLOBALS['refid'])) $GLOBALS['refid'] = 0;
$REFID = $GLOBALS['refid'];
- if ($template == "member_support_form")
- {
+ if ($template == "member_support_form") {
// Support request of a member
$result = SQL_QUERY_ESC("SELECT sex, surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
array($GLOBALS['userid']), __FILE__, __LINE__);
@@ -224,42 +226,28 @@ function LOAD_TEMPLATE($template, $return=false, $content="")
$MODE = "";
// Check for admin/guest/member templates
- if (strpos($template, "admin_") > -1)
- {
+ if (strpos($template, "admin_") > -1) {
// Admin template found
$MODE = "admin/";
- }
- elseif (strpos($template, "guest_") > -1)
- {
+ } elseif (strpos($template, "guest_") > -1) {
// Guest template found
$MODE = "guest/";
- }
- elseif (strpos($template, "member_") > -1)
- {
+ } elseif (strpos($template, "member_") > -1) {
// Member template found
$MODE = "member/";
- }
- elseif (strpos($template, "install_") > -1)
- {
+ } elseif (strpos($template, "install_") > -1) {
// Installation template found
$MODE = "install/";
- }
- elseif (strpos($template, "ext_") > -1)
- {
+ } elseif (strpos($template, "ext_") > -1) {
// Extension template found
$MODE = "ext/";
- }
- elseif (strpos($template, "la_") > -1)
- {
+ } elseif (strpos($template, "la_") > -1) {
// "Logical-area" template found
$MODE = "la/";
- }
- 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
$MODE = $test."/";
}
@@ -270,8 +258,7 @@ function LOAD_TEMPLATE($template, $return=false, $content="")
////////////////////////
$file = $BASE.$MODE.$template.".tpl";
- if ((!empty($GLOBALS['what'])) && ((strpos($template, "_header") > 0) || (strpos($template, "_footer") > 0)) && (($MODE == "guest/") || ($MODE == "member/") || ($MODE == "admin/")))
- {
+ if ((!empty($GLOBALS['what'])) && ((strpos($template, "_header") > 0) || (strpos($template, "_footer") > 0)) && (($MODE == "guest/") || ($MODE == "member/") || ($MODE == "admin/"))) {
// Select what depended header/footer template file for admin/guest/member area
$file2 = sprintf("%s%s%s_%s.tpl",
$BASE,
@@ -288,89 +275,73 @@ 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))
- {
+ 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
- {
+ } else {
// Simply return loaded code
$ret = $tmpl_file;
}
// 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).")
-
+ $ret = " ".TEMPLATE_404."
+(".basename($file).")
+
".TEMPLATE_CONTENT."
".print_r($content, true)."
".TEMPLATE_DATA."
".print_r($DATA, true)."
-
";
+
";
}
- if (!empty($ret))
- {
+
+ // Do we have some content to output or return?
+ if (!empty($ret)) {
// Not empty so let's put it out! ;)
- if ($return)
- {
+ if ($return) {
// Return the HTML code
return $ret;
- }
- else
- {
+ } else {
// Output direct
OUTPUT_HTML($ret);
}
- }
- elseif (DEBUG_MODE)
- {
+ } elseif (isBooleanConstantAndTrue('DEBUG_MODE')) {
// Warning, empty output!
- return "E:".$template." \n";
+ return "E:".$template." \n";
}
}
// Send mail out to an email address
-function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML='N', $FROM="")
-{
+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);
// Set from header
- if (!eregi("@", $TO))
- {
+ if (!eregi("@", $TO)) {
// Value detected, load email from database
- if (EXT_IS_ACTIVE("msg"))
- {
+ if (EXT_IS_ACTIVE("msg")) {
ADD_MESSAGE_TO_BOX($TO, $SUBJECT, $MSG, $HTML);
return;
- }
- else
- {
+ } else {
$result_email = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", array(bigintval($TO)), __FILE__, __LINE__);
list($TO) = SQL_FETCHROW($result_email);
SQL_FREERESULT($result_email);
@@ -386,7 +357,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");
@@ -398,8 +369,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 "