X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffunctions.php;h=7b691f4bfe5e4686c0423e3512f2cfe9aa8e1e40;hp=9cd97a5890e348df795c823a58f6095aad5697a6;hb=a49d1f4613f3f7d47fb57d946e9f7f705bd34a9b;hpb=3c8df4406f9247182f4dbe4494d62ac229a7bd28 diff --git a/inc/functions.php b/inc/functions.php index 9cd97a5890..7b691f4bfe 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -116,7 +116,7 @@ function outputHtml ($htmlCode, $newLine = true) { sendHeader('Content-language: ' . getLanguage()); // Extension 'rewrite' installed? - if ((isExtensionActive('rewrite')) && (getOutputMode() != '1')) { + if ((isExtensionActive('rewrite')) && (getOutputMode() != 1)) { $GLOBALS['output'] = rewriteLinksInCode($GLOBALS['output']); } // END - if @@ -148,7 +148,7 @@ function outputHtml ($htmlCode, $newLine = true) { outputRawCode($GLOBALS['output']); } elseif ((getConfig('OUTPUT_MODE') == 'render') && (!empty($GLOBALS['output']))) { // Rewrite links when rewrite extension is active - if ((isExtensionActive('rewrite')) && (getOutputMode() != '1')) { + if ((isExtensionActive('rewrite')) && (getOutputMode() != 1)) { $GLOBALS['output'] = rewriteLinksInCode($GLOBALS['output']); } // END - if @@ -241,39 +241,11 @@ function loadTemplate ($template, $return=false, $content=array()) { if (empty($GLOBALS['refid'])) $GLOBALS['refid'] = 0; // Generate date/time string - $date_time = generateDateTime(time(), '1'); + $date_time = generateDateTime(time(), 1); // Is content an array if (is_array($content)) $content['date_time'] = $date_time; - // @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", - array(getUserId()), __FUNCTION__, __LINE__); - - // Is content an array? - if (is_array($content)) { - // Merge data - $content = merge_array($content, SQL_FETCHARRAY($result)); - - // Translate gender - $content['gender'] = translateGender($content['gender']); - } else { - // @DEPRECATED - // @TODO Find all templates which are using these direct variables and rewrite them. - // @TODO After this step is done, this else-block is history - list($gender, $surname, $family, $email) = SQL_FETCHROW($result); - - // Translate gender - $gender = translateGender($gender); - logDebugMessage(__FUNCTION__, __LINE__, sprintf("DEPRECATION-WARNING: content is not array [%s], template=%s.", gettype($content), $template)); - } - - // Free result - SQL_FREERESULT($result); - } // END - if - // Base directory $basePath = sprintf("%stemplates/%s/html/", getConfig('PATH'), getLanguage()); $mode = ''; @@ -353,7 +325,7 @@ function loadTemplate ($template, $return=false, $content=array()) { $ret = ''; if ((strpos($GLOBALS['tpl_content'], '$') !== false) || (strpos($GLOBALS['tpl_content'], '{--') !== false) || (strpos($GLOBALS['tpl_content'], '{!') !== false) || (strpos($GLOBALS['tpl_content'], '{?') !== false)) { // Normal HTML output? - if ($GLOBALS['output_mode'] == 0) { + if (getOutputMode() == 0) { // Add surrounding HTML comments to help finding bugs faster $ret = "\n" . $GLOBALS['tpl_content'] . "\n"; @@ -410,7 +382,7 @@ function loadTemplate ($template, $return=false, $content=array()) { } // Loads an email template and compiles it -function loadEmailTemplate ($template, $content = array(), $UID = '0') { +function loadEmailTemplate ($template, $content = array(), $UID = 0) { global $DATA; // Our configuration is kept non-global here @@ -458,28 +430,25 @@ function loadEmailTemplate ($template, $content = array(), $UID = '0') { } // END - if // Load user's data - //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):UID={$UID},template={$template},content[]=".gettype($content)."
"); + //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):UID={$UID},template={$template},content[]=".gettype($content).'
'); if (($UID > 0) && (is_array($content))) { // If nickname extension is installed, fetch nickname as well - if (isExtensionActive('nickname')) { + if (isNicknameUsed($UID)) { //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):NICKNAME!
"); - // Load nickname - $result = SQL_QUERY_ESC("SELECT `surname`, `family`, `gender`, `email`, `nickname` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1", - array(bigintval($UID)), __FUNCTION__, __LINE__); + // Load by nickname + fetchUserData($UID, 'nickname'); } else { //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):NO-NICK!
"); - /// Load normal data - $result = SQL_QUERY_ESC("SELECT `surname`, `family`, `gender`, `email` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1", - array(bigintval($UID)), __FUNCTION__, __LINE__); + /// Load by userid + fetchUserData($UID); } - // Fetch and merge data + // Merge data if valid //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):content()=".count($content)." - PRE
"); - $content = merge_array($content, SQL_FETCHARRAY($result)); + if (isUserDataValid()) { + $content = merge_array($content, getUserDataArray()); + } // END - if //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):content()=".count($content)." - AFTER
"); - - // Free result - SQL_FREERESULT($result); } // END - if // Translate M to male or F to female if present @@ -527,10 +496,9 @@ function loadEmailTemplate ($template, $content = array(), $UID = '0') { if (isFileReadable($FQFN)) { // The local file does exists so we load it. :) $GLOBALS['tpl_content'] = readFromFile($FQFN); - $GLOBALS['tpl_content'] = SQL_ESCAPE($GLOBALS['tpl_content']); // Run code - $GLOBALS['tpl_content'] = "\$newContent = decodeEntities(\"".compileCode($GLOBALS['tpl_content'])."\");"; + $GLOBALS['tpl_content'] = "\$newContent = decodeEntities(\"".compileCode(smartAddSlashes($GLOBALS['tpl_content']))."\");"; eval($GLOBALS['tpl_content']); } elseif (!empty($template)) { // Template file not found! @@ -583,22 +551,14 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = ' ADD_MESSAGE_TO_BOX($toEmail, $subject, $message, $isHtml); return; } else { - // Load email address - $result_email = SQL_QUERY_ESC("SELECT `email` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1", - array(bigintval($toEmail)), __FUNCTION__, __LINE__); - //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):numRows=".SQL_NUMROWS($result_email)."
"); - // Does the user exist? - if (SQL_NUMROWS($result_email)) { - // Load email address - list($toEmail) = SQL_FETCHROW($result_email); + if (fetchUserData($toEmail)) { + // Get the email + $toEmail = getUserData('email'); } else { // Set webmaster $toEmail = getConfig('WEBMASTER'); } - - // Free result - SQL_FREERESULT($result_email); } } elseif ($toEmail == '0') { // Is the webmaster! @@ -636,12 +596,12 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = ' if (empty($isHtml)) $isHtml = 'N'; if (isDebugModeEnabled()) { // In debug mode we want to display the mail instead of sending it away so we can debug this part - outputHtml("
-".htmlentities(trim($mailHeader))."
-To      : " . $toEmail."
-Subject : " . $subject."
-Message : " . $message."
-
\n"); + outputHtml('
+Headers : ' . str_replace('<', '<', str_replace('>', '>', htmlentities(trim($mailHeader)))) . '
+To      : ' . $toEmail . '
+Subject : ' . $subject . '
+Message : ' . $message . '
+
'); } elseif (($isHtml == 'Y') && (isExtensionActive('html_mail'))) { // Send mail as HTML away sendHtmlEmail($toEmail, $subject, $message, $mailHeader); @@ -671,6 +631,11 @@ function sendRawEmail ($toEmail, $subject, $message, $from) { // get new instance $mail = new PHPMailer(); + + // Set charset to UTF-8 + $mail->CharSet('UTF-8'); + + // Path for PHPMailer $mail->PluginDir = sprintf("%sinc/phpmailer/", getConfig('PATH')); $mail->IsSMTP(); @@ -731,7 +696,7 @@ function generatePassword ($length = 0) { } // Generates a human-readable timestamp from the Uni* stamp -function generateDateTime ($time, $mode = '0') { +function generateDateTime ($time, $mode = 0) { // Filter out numbers $time = bigintval($time); @@ -744,10 +709,10 @@ function generateDateTime ($time, $mode = '0') { switch (getLanguage()) { case 'de': // German date / time format 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; - case '3': $ret = date('d.m.Y', $time); break; + 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; + case 3: $ret = date('d.m.Y', $time); break; default: logDebugMessage(__FUNCTION__, __LINE__, sprintf("Invalid date mode %s detected.", $mode)); break; @@ -756,10 +721,10 @@ function generateDateTime ($time, $mode = '0') { default: // Default is the US date / time format! 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; - case '3': $ret = date('y-m-d', $time); break; + 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; + case 3: $ret = date('y-m-d', $time); break; default: logDebugMessage(__FUNCTION__, __LINE__, sprintf("Invalid date mode %s detected.", $mode)); break; @@ -808,7 +773,7 @@ function translatePoolType ($type) { // Translates the american decimal dot into a german comma function translateComma ($dotted, $cut = true, $max = 0) { // Default is 3 you can change this in admin area "Misc -> Misc Options" - if (!isConfigEntrySet('max_comma')) setConfigEntry('max_comma', '3'); + if (!isConfigEntrySet('max_comma')) setConfigEntry('max_comma', 3); // Use from config is default $maxComma = getConfig('max_comma'); @@ -935,24 +900,31 @@ function countSelection ($array) { // Generate XHTML code for the CAPTCHA function generateCaptchaCode ($code, $type, $DATA, $userid) { - return 'Code'; + return 'Code ' . $code . ''; } // Generates a timestamp (some wrapper for mktime()) -function makeTime ($H, $M, $S, $stamp) { +function makeTime ($hours, $minutes, $seconds, $stamp) { // Extract day, month and year from given timestamp - $day = date('d', $stamp); - $month = date('m', $stamp); - $year = date('Y', $stamp); + $days = date('d', $stamp); + $months = date('m', $stamp); + $years = date('Y', $stamp); // Create timestamp for wished time which depends on extracted date - return mktime($H, $M, $S, $month, $day, $year); + return mktime( + $hours, + $minutes, + $seconds, + $months, + $days, + $years + ); } // Redirects to an URL and if neccessarry extends it with own base URL function redirectToUrl ($URL) { - // Compile out URI codes - $URL = compileUriCode($URL); + // Compile out codes + eval('$URL = "' . compileCode($URL) . '";'); // Check if http(s):// is there if ((substr($URL, 0, 7) != 'http://') && (substr($URL, 0, 8) != 'https://')) { @@ -962,7 +934,7 @@ function redirectToUrl ($URL) { // Three different debug ways... //* DEBUG: */ debug_report_bug(sprintf("%s[%s:] URL=%s", __FUNCTION__, __LINE__, $URL)); - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $URL); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'URL=' . $URL); //* DEBUG: */ die($URL); // Default 'rel' value is external, nofollow is evil from Google and hurts the Internet @@ -1158,7 +1130,7 @@ function array_pk_sort (&$array, $a_sort, $primary_key = 0, $order = -1, $nums = } // -function addSelectionBox ($type, $default, $prefix = '', $id = '0') { +function addSelectionBox ($type, $default, $prefix = '', $id = 0) { $OUT = ''; if ($type == 'yn') { @@ -1243,7 +1215,7 @@ function addSelectionBox ($type, $default, $prefix = '', $id = '0') { case 'sec': case 'min': for ($idx = 0; $idx < 60; $idx+=5) { - if (strlen($idx) == 1) $idx = '0' . $idx; + if (strlen($idx) == 1) $idx = 0 . $idx; $OUT .= "