X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Ffunctions.php;h=32abd70af766c67176f6e56762b871a2a751f634;hb=09f120bc3ab97a58ba6abbb519fbe124cebbbaed;hp=b326dab09832063588ebb76fd1a328c91088a55e;hpb=62b16291efe168636f5eda2c8644f6770382fb1e;p=mailer.git diff --git a/inc/functions.php b/inc/functions.php index b326dab098..32abd70af7 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -40,7 +40,7 @@ if (!defined('__SECURITY')) { // Check if our config file is writeable or not function IS_INC_WRITEABLE($inc) { // Generate FQFN - $fqfn = sprintf("%sinc/%s.php", PATH, $inc); + $fqfn = sprintf("%sinc/%s.php", constant('PATH'), $inc); // Abort by simple test if ((FILE_READABLE($fqfn)) && (!is_writeable($fqfn))) { @@ -67,7 +67,7 @@ function OUTPUT_HTML ($HTML, $NEW_LINE = true) { // Do we have HTML-Code here? if (!empty($HTML)) { // Yes, so we handle it as you have configured - switch (OUTPUT_MODE) + switch (constant('OUTPUT_MODE')) { case "render": // That's why you don't need any \n at the end of your HTML code... :-) @@ -97,7 +97,7 @@ function OUTPUT_HTML ($HTML, $NEW_LINE = true) { default: // Huh, something goes wrong or maybe you have edited config.php ??? - DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Invalid renderer %s detected.", OUTPUT_MODE)); + DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Invalid renderer %s detected.", constant('OUTPUT_MODE'))); mxchange_die("{!FATAL_ERROR!}: {!LANG_NO_RENDER_DIRECT!}"); break; } @@ -152,7 +152,7 @@ function OUTPUT_HTML ($HTML, $NEW_LINE = true) { // Output code here, DO NOT REMOVE! ;-) OUTPUT_RAW($OUTPUT); - } elseif ((OUTPUT_MODE == "render") && (!empty($OUTPUT))) { + } elseif ((constant('OUTPUT_MODE') == "render") && (!empty($OUTPUT))) { // Rewrite links when rewrite extension is active if ((EXT_IS_ACTIVE("rewrite")) && ($CSS != "1") && ($CSS != "-1")) { $OUTPUT = REWRITE_LINKS($OUTPUT); @@ -238,7 +238,7 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { // @DEPRECATED Try to rewrite the if() condition if ($template == "member_support_form") { // Support request of a member - $result = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", + $result = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); // Is content an array? @@ -265,7 +265,7 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { $date_time = MAKE_DATETIME(time(), "1"); // Base directory - $BASE = sprintf("%stemplates/%s/html/", PATH, GET_LANGUAGE()); + $BASE = sprintf("%stemplates/%s/html/", constant('PATH'), GET_LANGUAGE()); $MODE = ""; // Check for admin/guest/member templates @@ -392,7 +392,7 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML = "N", $FROM = "") { return; } else { // Load email address - $result_email = SQL_QUERY_ESC("SELECT email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", array(bigintval($TO)), __FILE__, __LINE__); + $result_email = SQL_QUERY_ESC("SELECT email FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", array(bigintval($TO)), __FILE__, __LINE__); //* DEBUG: */ print __FUNCTION__."(".__LINE__."):numRows=".SQL_NUMROWS($result_email)."
\n"; // Does the user exist? @@ -401,7 +401,7 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML = "N", $FROM = "") { list($TO) = SQL_FETCHROW($result_email); } else { // Set webmaster - $TO = WEBMASTER; + $TO = constant('WEBMASTER'); } // Free result @@ -409,7 +409,7 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML = "N", $FROM = "") { } } elseif ("$TO" == "0") { // Is the webmaster! - $TO = WEBMASTER; + $TO = constant('WEBMASTER'); } //* DEBUG: */ print __FUNCTION__."(".__LINE__."):TO={$TO}
\n"; @@ -476,12 +476,12 @@ function SEND_RAW_EMAIL ($to, $subject, $msg, $from) { // Shall we use PHPMailer class or legacy mode? if (CHECK_PHPMAILER_USAGE()) { // Use PHPMailer class with SMTP enabled - require_once(PATH."inc/phpmailer/class.phpmailer.php"); - require_once(PATH."inc/phpmailer/class.smtp.php"); + LOAD_INC_ONCE("inc/phpmailer/class.phpmailer.php"); + LOAD_INC_ONCE("inc/phpmailer/class.smtp.php"); // get new instance $mail = new PHPMailer(); - $mail->PluginDir = sprintf("%sinc/phpmailer/", PATH); + $mail->PluginDir = sprintf("%sinc/phpmailer/", constant('PATH')); $mail->IsSMTP(); $mail->SMTPAuth = true; @@ -490,7 +490,7 @@ function SEND_RAW_EMAIL ($to, $subject, $msg, $from) { $mail->Username = SMTP_USER; $mail->Password = SMTP_PASSWORD; if (empty($from)) { - $mail->From = WEBMASTER; + $mail->From = constant('WEBMASTER'); } else { $mail->From = $from; } @@ -666,7 +666,7 @@ function SELECTION_COUNT($array) { } // function IMG_CODE ($code, $type, $DATA, $uid) { - return "\"Code\""; + return "\"Code\""; } // function TRANSLATE_STATUS($status) { @@ -701,7 +701,7 @@ function GET_LANGUAGE() { global $cacheArray; // Set default return value to default language from config - $ret = DEFAULT_LANG; + $ret = constant('DEFAULT_LANG'); // Init variable $lang = ""; @@ -724,7 +724,7 @@ function GET_LANGUAGE() { $ret = get_session('mx_lang'); // Fixes a warning before the session has the mx_lang constant - if (empty($ret)) $ret = DEFAULT_LANG; + if (empty($ret)) $ret = constant('DEFAULT_LANG'); } // Cache entry @@ -752,7 +752,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { $nick = "---"; // Keept for backward-compatiblity (please replace these variables against our new {!CONST!} syntax!) - // No longer used: $MAIN_TITLE = MAIN_TITLE; $URL = URL; $WEBMASTER = WEBMASTER; + // No longer used: $MAIN_TITLE = MAIN_TITLE; $URL = constant('URL'); $WEBMASTER = constant('WEBMASTER'); // Prepare IP number and User Agent $REMOTE_ADDR = GET_REMOTE_ADDR(); @@ -771,7 +771,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { } // END - if // Neutral email address is default - $email = WEBMASTER; + $email = constant('WEBMASTER'); // Expiration in a nice output format if (getConfig('auto_purge') == 0) { @@ -795,12 +795,12 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { if (EXT_IS_ACTIVE("nickname")) { //* DEBUG: */ print __FUNCTION__."(".__LINE__."):NICKNAME!
\n"; // Load nickname - $result = SQL_QUERY_ESC("SELECT surname, family, gender, email, nickname FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", + $result = SQL_QUERY_ESC("SELECT surname, family, gender, email, nickname FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", array(bigintval($UID)), __FILE__, __LINE__); } else { //* DEBUG: */ print __FUNCTION__."(".__LINE__."):NO-NICK!
\n"; /// Load normal data - $result = SQL_QUERY_ESC("SELECT surname, family, gender, email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", + $result = SQL_QUERY_ESC("SELECT surname, family, gender, email FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", array(bigintval($UID)), __FILE__, __LINE__); } @@ -823,7 +823,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { $DATA['email'] = $email; // Base directory - $BASE = sprintf("%stemplates/%s/emails/", PATH, GET_LANGUAGE()); + $BASE = sprintf("%stemplates/%s/emails/", constant('PATH'), GET_LANGUAGE()); // Check for admin/guest/member templates if (strpos($template, "admin_") > -1) { @@ -950,9 +950,9 @@ function LOAD_URL($URL, $addUrlData=true) { header ("Location: ".str_replace("&", "&", $URL)); } else { // Output error message - require(PATH."inc/header.php"); + LOAD_INC("inc/header.php"); LOAD_TEMPLATE("redirect_url", false, str_replace("&", "&", $URL)); - require(PATH."inc/footer.php"); + LOAD_INC("inc/footer.php"); } exit(); } @@ -1213,9 +1213,9 @@ function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") { case "yn": $OUT .= "\n"; break; } $OUT .= " \n"; @@ -1315,11 +1315,11 @@ function GENERATE_IMAGE($img_code, $header=true) { return; } elseif (!$header) { // Return in an HTML code code - return "\n"; + return "\n"; } // Load image - $img = sprintf("%s/theme/%s/images/code_bg.%s", PATH, GET_CURR_THEME(), getConfig('img_type')); + $img = sprintf("%s/theme/%s/images/code_bg.%s", constant('PATH'), GET_CURR_THEME(), getConfig('img_type')); if (FILE_READABLE($img)) { // Switch image type switch (getConfig('img_type')) @@ -1592,16 +1592,16 @@ function SEND_ADMIN_EMAILS_PRO($subj, $template, $content, $UID) { } // END - if // Check which admin shall receive this mail - $result = SQL_QUERY_ESC("SELECT DISTINCT admin_id FROM "._MYSQL_PREFIX."_admins_mails WHERE mail_template='%s' ORDER BY admin_id", + $result = SQL_QUERY_ESC("SELECT DISTINCT admin_id FROM `{!_MYSQL_PREFIX!}_admins_mails` WHERE mail_template='%s' ORDER BY admin_id", array($template), __FILE__, __LINE__); if (SQL_NUMROWS($result) == 0) { // Create new entry (to all admins) - SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admins_mails (admin_id, mail_template) VALUES (0, '%s')", + SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_admins_mails` (admin_id, mail_template) VALUES (0, '%s')", array($template), __FILE__, __LINE__); } else { // Load admin IDs... $aids = array(); - while(list($aid) = SQL_FETCHROW($result)) { + while (list($aid) = SQL_FETCHROW($result)) { $aids[] = $aid; } @@ -1616,10 +1616,10 @@ function SEND_ADMIN_EMAILS_PRO($subj, $template, $content, $UID) { return; } elseif ($aid == "0") { // Select all email adresses - $result = SQL_QUERY("SELECT email FROM "._MYSQL_PREFIX."_admins ORDER BY id", __FILE__, __LINE__); + $result = SQL_QUERY("SELECT email FROM `{!_MYSQL_PREFIX!}_admins` ORDER BY `id`", __FILE__, __LINE__); } else { // If Admin-ID is not "to-all" select - $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_admins WHERE id IN (%s) ORDER BY id", array($aid), __FILE__, __LINE__); + $result = SQL_QUERY_ESC("SELECT email FROM `{!_MYSQL_PREFIX!}_admins` WHERE id IN (%s) ORDER BY `id`", array($aid), __FILE__, __LINE__); } } @@ -1673,7 +1673,7 @@ function ADD_EMAIL_NAV($PAGES, $offset, $show_form, $colspan, $return=false) { $NAV .= "-"; } else { // Open anchor tag and add base URL - $NAV .= " 0)) $NAV .= "&u_id=".bigintval($_GET['u_id']); @@ -1955,7 +1955,7 @@ function VALIDATE_URL ($URL, $compile=true) { return (((substr($URL, 0, 7) == "http://") || (substr($URL, 0, 8) == "https://")) && (strlen($URL) >= 12)); } // -function MEMBER_ACTION_LINKS($uid, $status="") { +function MEMBER_ACTION_LINKS ($uid, $status = "") { // Define all main targets $TARGETS = array("del_user", "edit_user", "lock_user", "add_points", "sub_points"); @@ -1963,7 +1963,7 @@ function MEMBER_ACTION_LINKS($uid, $status="") { $eval = "\$OUT = \"[ "; foreach ($TARGETS as $tar) { - $eval .= "\n"; if (($tar == "lock_user") && ($status == "LOCKED")) { // Locked accounts shall be unlocked @@ -1972,7 +1972,7 @@ function MEMBER_ACTION_LINKS($uid, $status="") { // All other status is fine $eval .= strtoupper($tar); } - $eval .= "_TITLE.\"\\\">\".ADMIN_"; + $eval .= "_TITLE!}\\\">{!ADMIN_"; if (($tar == "lock_user") && ($status == "LOCKED")) { // Locked accounts shall be unlocked $eval .= "UNLOCK_USER"; @@ -1980,7 +1980,7 @@ function MEMBER_ACTION_LINKS($uid, $status="") { // All other status is fine $eval .= strtoupper($tar); } - $eval .= ".\" | "; + $eval .= "!} | "; } // Finish navigation link @@ -2240,13 +2240,13 @@ function FIX_DELETED_COOKIES ($cookies) { // Output error messages in a fasioned way and die... function mxchange_die ($msg) { // Load header - require_once(PATH."inc/header.php"); + LOAD_INC_ONCE("inc/header.php"); // Load the message template LOAD_TEMPLATE("admin_settings_saved", false, $msg); // Load footer - require(PATH."inc/footer.php"); + LOAD_INC("inc/footer.php"); // Exit explicitly exit; @@ -2639,13 +2639,13 @@ function REBUILD_CACHE ($cache, $inc="") { // Include file given? if (!empty($inc)) { // Construct FQFN - $fqfn = sprintf("%sinc/loader/load_cache-%s.php", PATH, $inc); + $INC = sprintf("inc/loader/load_cache-%s.php", $inc); // Is the include there? - if (FILE_READABLE($fqfn)) { + if (FILE_READABLE($INC)) { // And rebuild it from scratch //* DEBUG: */ print __FUNCTION__."(".__LINE__."): inc={$inc} - LOADED!
\n"; - require($fqfn); + LOAD_INC($INC); } else { // Include not found! DEBUG_LOG(__FUNCTION__, __LINE__, "Include {$inc} not found. cache={$cache}"); @@ -2775,10 +2775,10 @@ function ADD_NEW_BONUS_MAIL ($data, $mode="", $output=true) { ); // Mail inserted into bonus pool - if ($output) LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BONUS_SEND); + if ($output) LOAD_TEMPLATE("admin_settings_saved", false, getMessage('ADMIN_BONUS_SEND')); } elseif ($output) { // More entered than can be reached! - LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_MORE_SELECTED); + LOAD_TEMPLATE("admin_settings_saved", false, getMessage('ADMIN_MORE_SELECTED')); } else { // Debug log DEBUG_LOG(__FUNCTION__, __LINE__, " cat={$data['cat']},receiver={$data['receiver']},data=".base64_encode(serialize($data))." More selected, than available!"); @@ -2872,10 +2872,13 @@ function getMessage ($messageId) { $return = "!".$messageId."!"; // Is the language string found? - if (isset($GLOBALS['msg'][$messageId])) { - // Language array element found + if (isset($GLOBALS['msg'][strtolower($messageId)])) { + // Language array element found in small_letters $return = $GLOBALS['msg'][$messageId]; - } elseif (defined($messageId)) { + } elseif (isset($GLOBALS['msg'][strtoupper($messageId)])) { + // @DEPRECATED Language array element found in BIG_LETTERS + $return = $GLOBALS['msg'][$messageId]; + } elseif (defined(strtoupper($messageId))) { // @DEPRECATED Deprecated constant found $return = constant($messageId); } else { @@ -2912,13 +2915,13 @@ function GET_CURR_THEME() { } // END - if } elseif ((!isBooleanConstantAndTrue('mxchange_installed')) && ((isBooleanConstantAndTrue('mxchange_installing')) || ($CSS == true)) && ((!empty($_GET['theme'])) || (!empty($_POST['theme'])))) { // Prepare FQFN for checking - $theme = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($_GET['theme'])); + $theme = sprintf("%stheme/%s/theme.php", constant('PATH'), SQL_ESCAPE($_GET['theme'])); // Installation mode active if ((!empty($_GET['theme'])) && (FILE_READABLE($theme))) { // Set cookie from URL data set_session('mxchange_theme', SQL_ESCAPE($_GET['theme'])); - } elseif (FILE_READABLE(sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($_POST['theme'])))) { + } elseif (FILE_READABLE(sprintf("%stheme/%s/theme.php", constant('PATH'), SQL_ESCAPE($_POST['theme'])))) { // Set cookie from posted data set_session('mxchange_theme', SQL_ESCAPE($_POST['theme'])); } @@ -2931,7 +2934,7 @@ function GET_CURR_THEME() { } // Add (maybe) found theme.php file to inclusion list - $theme = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($ret)); + $theme = sprintf("%stheme/%s/theme.php", constant('PATH'), SQL_ESCAPE($ret)); // Try to load the requested include file if (FILE_READABLE($theme)) $INC_POOL[] = $theme; @@ -2962,7 +2965,7 @@ function THEME_GET_ID ($name) { incrementConfigEntry('cache_hits'); } elseif (GET_EXT_VERSION("cache") != "0.1.8") { // Check if current theme is already imported or not - $result = SQL_QUERY_ESC("SELECT id FROM `"._MYSQL_PREFIX."_themes` WHERE theme_path='%s' LIMIT 1", + $result = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_themes` WHERE theme_path='%s' LIMIT 1", array($name), __FILE__, __LINE__); // Entry found? @@ -3066,7 +3069,7 @@ function getActualVersion ($type = 0) { $new = false; // FQFN of revision file - $FQFN = sprintf("%sinc/cache/.revision", PATH); + $FQFN = sprintf("%sinc/cache/.revision", constant('PATH')); // Check for revision file if (!FILE_READABLE($FQFN)) { @@ -3102,6 +3105,48 @@ function getActualVersion ($type = 0) { return trim($akt_vers[$type]); } } + +// Loads an include file and logs any missing files for debug purposes +function LOAD_INC ($INC) { + // Get constant path + $PATH = constant('PATH'); + + // Use the include file name directly + // @TODO Try to find all locations where an FQFN is given to these two + // @TODO functions and avoid it. + $FQFN = $INC; + + // Check if PATH is in $INC + if (substr($INC, 0, $PATH) != $PATH) { + // Add it. This is why we need a trailing slash in config.php + $FQFN = $PATH . $INC; + } // END - if + + // Is the include file there? + if (!FILE_READABLE($FQFN)) { + // Not there so log it + DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Include file %s not found.", basename($INC))); + return false; + } // END - if + + // Try to load it + require($FQFN); +} + +// Loads an include file once +function LOAD_INC_ONCE ($INC) { + global $cacheArray; + + // Is it not loaded? + if (!isset($cacheArray['load_once'][$INC])) { + // Then try to load it + LOAD_INC($INC); + + // And mark it as loaded + $cacheArray['load_once'][$INC] = true; + } // END - if +} + ////////////////////////////////////////////////// // AUTOMATICALLY RE-GENERATED MISSING FUNCTIONS // //////////////////////////////////////////////////