X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ffunctions.php;h=837184d15f9cd8667bebb481c4d34c3d9bd7cdd2;hb=cb529a09bd803ae98b5a2fd9baed5a55332252af;hp=305ee3f8aa02f6b18964bd1878aa3fb6aac2c7cb;hpb=ad30a667fd8abeb576c04026b62c2e8a29d86f52;p=mailer.git diff --git a/inc/functions.php b/inc/functions.php index 305ee3f8aa..837184d15f 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -49,10 +49,6 @@ function outputHtml ($htmlCode, $newLine = true) { $GLOBALS['output'] = ''; } // END - if - // Transfer username - $username = getMessage('USERNAME_UNKNOWN'); - if (isset($GLOBALS['username'])) $username = getUsername(); - // Do we have HTML-Code here? if (!empty($htmlCode)) { // Yes, so we handle it as you have configured @@ -126,7 +122,7 @@ function sendHttpHeaders () { $now = gmdate('D, d M Y H:i:s') . ' GMT'; // Send HTTP header - sendHeader('HTTP/1.1 200 OK'); + sendHeader('HTTP/1.1 ' . getHttpStatus()); // General headers for no caching sendHeader('Expires: ' . $now); // RFC2616 - Section 14.21 @@ -140,37 +136,11 @@ function sendHttpHeaders () { // Compiles the final output function compileFinalOutput () { - // Init counter - $cnt = 0; - // Add page header and footer addPageHeaderFooter(); - // Compile all out - while (((strpos($GLOBALS['output'], '{--') !== false) || (strpos($GLOBALS['output'], '{DQUOTE}') !== false) || (strpos($GLOBALS['output'], '{!') !== false) || (strpos($GLOBALS['output'], '{?') !== false) || (strpos($GLOBALS['output'], '{%') !== false)) && ($cnt < 3)) { - // Init common variables - $content = array(); - $newContent = ''; - - // Compile it - //* DEBUG: */ print '
'.htmlentities($GLOBALS['output']).'
'; - $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($GLOBALS['output']))) . '";'; - //* DEBUG: */ die('
'.htmlentities($eval).'
'); - eval($eval); - //* DEBUG: */ die('
'.htmlentities($newContent).'
'); - - // Was that eval okay? - if (empty($newContent)) { - // Something went wrong! - debug_report_bug(__FUNCTION__, __LINE__, 'Evaluation error:
' . linenumberCode($eval) . '
', false); - } // END - if - - // Use it again - $GLOBALS['output'] = $newContent; - - // Count round - $cnt++; - } // END - while + // Do the final compilation + $GLOBALS['output'] = doFinalCompilation($GLOBALS['output']); // Extension 'rewrite' installed? if ((isExtensionActive('rewrite')) && (getOutputMode() != 1)) { @@ -199,6 +169,44 @@ function compileFinalOutput () { flushHeaders(); } +// Main compilation loop +function doFinalCompilation ($code, $insertComments = true) { + // Insert comments? (Only valid with HTML templates, of course) + enableTemplateHtml($insertComments); + + // Init counter + $cnt = 0; + + // Compile all out + while (((strpos($code, '{--') !== false) || (strpos($code, '{DQUOTE}') !== false) || (strpos($code, '{?') !== false) || (strpos($code, '{%') !== false)) && ($cnt < 4)) { + // Init common variables + $content = array(); + $newContent = ''; + + // Compile it + //* DEBUG: */ debugOutput('
'.htmlentities($code).'
'); + $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code))) . '";'; + //* DEBUG: */ if ($insertComments) die('
'.linenumberCode($eval).'
'); + eval($eval); + //* DEBUG: */ die('
'.htmlentities($newContent).'
'); + + // Was that eval okay? + if (empty($newContent)) { + // Something went wrong! + debug_report_bug(__FUNCTION__, __LINE__, 'Evaluation error:
' . linenumberCode($eval) . '
', false); + } // END - if + + // Use it again + $code = $newContent; + + // Count round + $cnt++; + } // END - while + + // Return the compiled code + return $code; +} + // Output the raw HTML code function outputRawCode ($htmlCode) { // Output stripped HTML code to avoid broken JavaScript code, etc. @@ -262,13 +270,10 @@ function loadTemplate ($template, $return = false, $content = array()) { global $DATA; // Do we have cache? - if (isTemplateCached($template)) { + if ((isDebuggingTemplateCache() === false) && (isTemplateCached($template))) { // Evaluate the cache eval(readTemplateCache($template)); } elseif (!isset($GLOBALS['template_eval'][$template])) { - // Add more variables which you want to use in your template files - $username = getUsername(); - // Make all template names lowercase $template = strtolower($template); @@ -301,7 +306,7 @@ function loadTemplate ($template, $return = false, $content = array()) { // Do we have to compile the code? $ret = ''; - if ((strpos($GLOBALS['tpl_content'], '$') !== false) || (strpos($GLOBALS['tpl_content'], '{--') !== false) || (strpos($GLOBALS['tpl_content'], '{!') !== false) || (strpos($GLOBALS['tpl_content'], '{?') !== false) || (strpos($GLOBALS['tpl_content'], '{%') !== false)) { + 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 (getOutputMode() == '0') { // Add surrounding HTML comments to help finding bugs faster @@ -324,27 +329,31 @@ function loadTemplate ($template, $return = false, $content = array()) { // Cache the eval() command here $GLOBALS['template_eval'][$template] = $eval; - - // Eval the code - eval($GLOBALS['template_eval'][$template]); } elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) { // Only admins shall see this warning or when installation mode is active - $ret = '
{--TEMPLATE_404--}
-(' . $template . ')
-
-{--TEMPLATE_CONTENT--} -
' . print_r($content, true) . '
-{--TEMPLATE_DATA--} -
' . print_r($DATA, true) . '
-

'; + $ret = '
+ {--TEMPLATE_404--} +
+
+ (' . $template . ') +
+
+ {--TEMPLATE_CONTENT--} +
' . print_r($content, true) . '
+ {--TEMPLATE_DATA--} +
' . print_r($DATA, true) . '
+
'; } else { // No file! $GLOBALS['template_eval'][$template] = '404'; } - } else { + } + + // Code set? + if ((isset($GLOBALS['template_eval'][$template])) && ($GLOBALS['template_eval'][$template] != '404')) { // Eval the code eval($GLOBALS['template_eval'][$template]); - } + } // END - if // Do we have some content to output or return? if (!empty($ret)) { @@ -423,29 +432,23 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') { // Make sure all template names are lowercase! $template = strtolower($template); - // Default 'nickname' if extension is not installed - $nick = '---'; - - // Neutral email address is default - $email = getConfig('WEBMASTER'); - // Is content an array? if (is_array($content)) { // Add expiration to array if ((isConfigEntrySet('auto_purge')) && (getConfig('auto_purge') == '0')) { // Will never expire! - $content['expiration'] = getMessage('MAIL_WILL_NEVER_EXPIRE'); + $content['expiration'] = '{--MAIL_WILL_NEVER_EXPIRE--}'; } elseif (isConfigEntrySet('auto_purge')) { // Create nice date string $content['expiration'] = createFancyTime(getConfig('auto_purge')); } else { // Missing entry - $content['expiration'] = getMessage('MAIL_NO_CONFIG_AUTO_PURGE'); + $content['expiration'] = '{--MAIL_NO_CONFIG_AUTO_PURGE--}'; } } // END - if // Load user's data - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "UID={$userid},template={$template},content[]=".gettype($content).'
'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "UID={$userid},template={$template},content[]=".gettype($content)); if (($userid > 0) && (is_array($content))) { // If nickname extension is installed, fetch nickname as well if ((isExtensionActive('nickname')) && (isNicknameUsed($userid))) { @@ -466,16 +469,6 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "content()=".count($content)." - AFTER
"); } // END - if - // Translate M to male or F to female if present - if (isset($content['gender'])) $content['gender'] = translateGender($content['gender']); - - // Overwrite email from data if present - if (isset($content['email'])) $email = $content['email']; - - // Store email for some functions in global $DATA array - // @TODO Do only use $content, not $DATA or raw variables - $DATA['email'] = $email; - // Base directory $basePath = sprintf("%stemplates/%s/emails/", getConfig('PATH'), getLanguage()); @@ -502,18 +495,21 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') { eval($GLOBALS['tpl_content']); } elseif (!empty($template)) { // Template file not found! - $newContent = '{--TEMPLATE_404--}: ' . $template . '
-{--TEMPLATE_CONTENT--} -
' . print_r($content, true) . '
-{--TEMPLATE_DATA--} -
' . print_r($DATA, true) . '
-

'; + $newContent = '
+ {--TEMPLATE_404--}: ' . $template . ' +
+
+ {--TEMPLATE_CONTENT--} +
' . print_r($content, true) . '
+ {--TEMPLATE_DATA--} +
' . print_r($DATA, true) . '
+
'; // Debug mode not active? Then remove the HTML tags if (!isDebugModeEnabled()) $newContent = secureString($newContent); } else { // No template name supplied! - $newContent = getMessage('NO_TEMPLATE_SUPPLIED'); + $newContent = '{--NO_TEMPLATE_SUPPLIED--}'; } // Is there some content? @@ -564,7 +560,7 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = ' //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "TO={$toEmail}
"); // Check for PHPMailer or debug-mode - if (!checkPhpMailerUsage()) { + if ((!checkPhpMailerUsage()) || (isDebugModeEnabled())) { // Not in PHPMailer-Mode if (empty($mailHeader)) { // Load email header template @@ -573,24 +569,12 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = ' // Append header $mailHeader .= loadEmailTemplate('header'); } - } elseif (isDebugModeEnabled()) { - if (empty($mailHeader)) { - // Load email header template - $mailHeader = loadEmailTemplate('header'); - } else { - // Append header - $mailHeader .= loadEmailTemplate('header'); - } - } - - // Compile "TO" - eval('$toEmail = "' . compileRawCode(escapeQuotes($toEmail)) . '";'); - - // Compile "MSG" - eval('$message = "' . str_replace('$', '$', compileRawCode(escapeQuotes($message))) . '";'); + } // END - if // Fix HTML parameter (default is no!) if (empty($isHtml)) $isHtml = 'N'; + + // Debug mode enabled? if (isDebugModeEnabled()) { // In debug mode we want to display the mail instead of sending it away so we can debug this part outputHtml('
@@ -599,6 +583,9 @@ To      : ' . htmlentities(utf8_decode($toEmail)) . '
 Subject : ' . htmlentities(utf8_decode($subject)) . '
 Message : ' . htmlentities(utf8_decode($message)) . '
 
'); + + // This is always fine + return true; } elseif (($isHtml == 'Y') && (isExtensionActive('html_mail'))) { // Send mail as HTML away return sendHtmlEmail($toEmail, $subject, $message, $mailHeader); @@ -609,6 +596,9 @@ Message : ' . htmlentities(utf8_decode($message)) . ' // Problem found! return sendRawEmail(getConfig('WEBMASTER'), '[PROBLEM:]' . $subject, $message, $mailHeader); } + + // Why did we end up here? This should not happen + debug_report_bug(__FUNCTION__, __LINE__, 'Ending up: template=' . $template); } // Check to use wether legacy mail() command or PHPMailer class @@ -621,10 +611,10 @@ function checkPhpMailerUsage() { // Send out a raw email with PHPMailer class or legacy mail() command function sendRawEmail ($toEmail, $subject, $message, $from) { // Just compile all again, to put out all configs, etc. - eval('$toEmail = decodeEntities("' . compileRawCode(escapeQuotes($toEmail)) . '");'); - eval('$subject = decodeEntities("' . compileRawCode(escapeQuotes($subject)) . '");'); - eval('$message = decodeEntities("' . compileRawCode(escapeQuotes($message)) . '");'); - eval('$from = decodeEntities("' . compileRawCode(escapeQuotes($from)) . '");'); + eval('$toEmail = decodeEntities("' . doFinalCompilation(compileRawCode(escapeQuotes($toEmail)), false) . '");'); + eval('$subject = decodeEntities("' . doFinalCompilation(compileRawCode(escapeQuotes($subject)), false) . '");'); + eval('$message = decodeEntities("' . doFinalCompilation(compileRawCode(escapeQuotes($message)), false) . '");'); + eval('$from = decodeEntities("' . doFinalCompilation(compileRawCode(escapeQuotes($from)) , false) . '");'); // Shall we use PHPMailer class or legacy mode? if (checkPhpMailerUsage()) { @@ -755,13 +745,13 @@ function translateYesNo ($yn) { // Default $translated = '??? (' . $yn . ')'; switch ($yn) { - case 'Y': $translated = getMessage('YES'); break; - case 'N': $translated = getMessage('NO'); break; + case 'Y': $translated = '{--YES--}'; break; + case 'N': $translated = '{--NO--}'; break; default: // Log unknown value logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown value %s. Expected Y/N!", $yn)); break; - } + } // END - switch // Return it return $translated; @@ -821,7 +811,7 @@ function translateComma ($dotted, $cut = true, $max = '0') { default: // All others $dotted = number_format($dotted, $maxComma, '.', ','); break; - } + } // END - switch // Return translated value return $dotted; @@ -834,9 +824,9 @@ function translateGender ($gender) { // Male/female or company? switch ($gender) { - case 'M': $ret = getMessage('GENDER_M'); break; - case 'F': $ret = getMessage('GENDER_F'); break; - case 'C': $ret = getMessage('GENDER_C'); break; + case 'M': $ret = '{--GENDER_M--}'; break; + case 'F': $ret = '{--GENDER_F--}'; break; + case 'C': $ret = '{--GENDER_C--}'; break; default: // Please report bugs on unknown genders debug_report_bug(__FUNCTION__, __LINE__, sprintf("Unknown gender %s detected.", $gender)); @@ -859,7 +849,7 @@ function translateUserStatus ($status) { case '': case null: - $ret = getMessage('ACCOUNT_DELETED'); + $ret = '{--ACCOUNT_DELETED--}'; break; default: @@ -872,6 +862,53 @@ function translateUserStatus ($status) { return $ret; } +// "Translates" 'visible' and 'locked' to a CSS class +function translateMenuVisibleLocked ($content, $prefix = '') { + // Translate 'visible' and keep an eye on the prefix + switch ($content['visible']) { + // Should be visible + case 'Y': $content['visible_css'] = $prefix . 'menu_visible' ; break; + case 'N': $content['visible_css'] = $prefix . 'menu_invisible'; break; + default: + // Please report this + debug_report_bug(__FUNCTION__, __LINE__, 'Unsupported visible value detected. content=
' . print_r($content, true) . '
'); + break; + } // END - switch + + // Translate 'locked' and keep an eye on the prefix + switch ($content['locked']) { + // Should be locked + case 'Y': $content['locked_css'] = $prefix . 'menu_locked' ; break; + case 'N': $content['locked_css'] = $prefix . 'menu_unlocked'; break; + default: + // Please report this + debug_report_bug(__FUNCTION__, __LINE__, 'Unsupported locked value detected. content=
' . print_r($content, true) . '
'); + break; + } // END - switch + + // Return the resulting array + return $content; +} + +// "Getter" for menu CSS classes, mainly used in templates +function getMenuCssClasses ($data) { + // $data needs to be converted into an array + $content = explode('|', $data); + + // Non-existent index 2 will happen in menu blocks + if (!isset($content[2])) $content[2] = ''; + + // Re-construct the array: 0=visible,1=locked,2=prefix + $content['visible'] = $content[0]; + $content['locked'] = $content[1]; + + // Call our "translator" function + $content = translateMenuVisibleLocked($content, $content[2]); + + // Return CSS classes + return ($content['visible_css'] . ' ' . $content['locked_css']); +} + // Generates an URL for the dereferer function generateDerefererUrl ($URL) { // Don't de-refer our own links! @@ -960,20 +997,26 @@ function redirectToUrl ($URL, $allowSpider = true) { // Simple probe for bots/spiders from search engines if ((isSpider()) && ($allowSpider === true)) { - // Secure the URL against bad things such als HTML insertions and so on... - $URL = secureString($URL); + // Set HTTP-Status + setHttpStatus('200 OK'); // Set content-type here to fix a missing array element setContentType('text/html'); // Output new location link as anchor - outputHtml('' . $URL . ''); + outputHtml('' . secureString($URL) . ''); } elseif (!headers_sent()) { + // Clear output buffer + clearOutputBuffer(); + // Clear own output buffer $GLOBALS['output'] = ''; + // Set header + setHttpStatus('302 Found'); + // Load URL when headers are not sent - sendHeader('Location: '.str_replace('&', '&', $URL)); + sendRawRedirect(doFinalCompilation(str_replace('&', '&', $URL), false)); } else { // Output error message loadInclude('inc/header.php'); @@ -987,17 +1030,8 @@ function redirectToUrl ($URL, $allowSpider = true) { // Wrapper for redirectToUrl but URL comes from a configuration entry function redirectToConfiguredUrl ($configEntry) { - // Get the URL - $URL = getConfig($configEntry); - - // Is this URL set? - if (is_null($URL)) { - // Then abort here - debug_report_bug(__FUNCTION__, __LINE__, sprintf("Configuration entry %s is not set!", $configEntry)); - } // END - if - // Load the URL - redirectToUrl($URL); + redirectToUrl(getConfig($configEntry)); } // Compiles the given HTML/mail code @@ -1017,15 +1051,18 @@ function compileCode ($code, $simple = false, $constants = true, $full = true) { // Get timing $compiled = microtime(true); - // Add timing - $code .= ''; + // Add timing if enabled + if (isTemplateHtml()) { + // Add timing, this should be disabled in + $code .= ''; + } // END - if // Return compiled code return $code; } // Compiles the code (use compileCode() only for HTML because of the comments) -// @TODO $simple is deprecated +// @TODO $simple/$constants are deprecated function compileRawCode ($code, $simple = false, $constants = true, $full = true) { // Is the code a string? if (!is_string($code)) { @@ -1042,16 +1079,8 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true // Compile more through a filter $code = runFilterChain('compile_code', $code); - // Compile constants - if ($constants === true) { - // BEFORE 0.2.1 : Language and data constants - // WITH 0.2.1+ : Only language constants - $code = str_replace('{--', "\" . getMessage('", str_replace('--}', "') . \"", $code)); - - // BEFORE 0.2.1 : Not used - // WITH 0.2.1+ : Data constants - $code = str_replace('{!', "\" . constant('", str_replace('!}', "') . \"", $code)); - } // END - if + // Compile message strings + $code = str_replace('{--', '{%message,', str_replace('--}', '%}', $code)); // Compile QUOT and other non-HTML codes foreach ($secChars['to'] as $k => $to) { @@ -1090,7 +1119,7 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true if ($fuzzyFound === true) continue; // Take all string elements - if ((is_string($matches[4][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key."_" . $matches[4][$key]]))) { + if ((is_string($matches[4][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key.'_' . $matches[4][$key]]))) { // Replace it in the code //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "key={$key},match={$match}
"); $newMatch = str_replace('[', "['", str_replace(']', "']", $match)); @@ -1171,7 +1200,7 @@ function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 're $OUT .= ''; @@ -1418,7 +1447,7 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = // Calculate 2-seconds timestamp $stamp = round($timestamp); - //* DEBUG: */ print("*" . $stamp.'/' . $timestamp."*
"); + //* DEBUG: */ debugOutput('*' . $stamp .'/' . $timestamp . '*'); // Do we have a leap year? $SWITCH = '0'; @@ -1427,29 +1456,29 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = $M2 = date('m', (time() + $timestamp)); // If so and if current time is before 02/29 and estimated time is after 02/29 then add 86400 seconds (one day) - if ((floor($TEST) == $TEST) && ($M1 == "02") && ($M2 > "02")) $SWITCH = getConfig('ONE_DAY'); + if ((floor($TEST) == $TEST) && ($M1 == '02') && ($M2 > '02')) $SWITCH = getConfig('ONE_DAY'); // First of all years... $Y = abs(floor($timestamp / (31536000 + $SWITCH))); - //* DEBUG: */ print("Y={$Y}
"); + //* DEBUG: */ debugOutput('Y=' . $Y); // Next months... $M = abs(floor($timestamp / 2628000 - $Y * 12)); - //* DEBUG: */ print("M={$M}
"); + //* DEBUG: */ debugOutput('M=' . $M); // Next weeks $W = abs(floor($timestamp / 604800 - $Y * ((365 + $SWITCH / getConfig('ONE_DAY')) / 7) - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) / 7))); - //* DEBUG: */ print("W={$W}
"); + //* DEBUG: */ debugOutput('W=' . $W); // Next days... $D = abs(floor($timestamp / 86400 - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY'))) - $W * 7)); - //* DEBUG: */ print("D={$D}
"); + //* DEBUG: */ debugOutput('D=' . $D); // Next hours... $h = abs(floor($timestamp / 3600 - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) * 24) - $W * 7 * 24 - $D * 24)); - //* DEBUG: */ print("h={$h}
"); + //* DEBUG: */ debugOutput('h=' . $h); // Next minutes.. $m = abs(floor($timestamp / 60 - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 60 - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 60) - $W * 7 * 24 * 60 - $D * 24 * 60 - $h * 60)); - //* DEBUG: */ print("m={$m}
"); + //* DEBUG: */ debugOutput('m=' . $m); // And at last seconds... $s = abs(floor($timestamp - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 3600 - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 3600) - $W * 7 * 24 * 3600 - $D * 24 * 3600 - $h * 3600 - $m * 60)); - //* DEBUG: */ print("s={$s}
"); + //* DEBUG: */ debugOutput('s=' . $s); // Is seconds zero and time is < 60 seconds? if (($s == '0') && ($timestamp < 60)) { @@ -1671,62 +1700,6 @@ function createFancyTime ($stamp) { return $ret; } -// Generates a navigation row for listing emails -function addEmailNavigation ($PAGES, $offset, $show_form, $colspan, $return=false) { - $TOP = ''; - if ($show_form === false) { - $TOP = ' top'; - } // END - if - - $NAV = ''; - for ($page = 1; $page <= $PAGES; $page++) { - // Is the page currently selected or shall we generate a link to it? - if (($page == getRequestParameter('page')) || ((!isGetRequestParameterSet('page')) && ($page == 1))) { - // Is currently selected, so only highlight it - $NAV .= '-'; - } else { - // Open anchor tag and add base URL - $NAV .= ''; - } - $NAV .= $page; - if (($page == getRequestParameter('page')) || ((!isGetRequestParameterSet('page')) && ($page == 1))) { - // Is currently selected, so only highlight it - $NAV .= '-'; - } else { - // Close anchor tag - $NAV .= ''; - } - - // Add seperator if we have not yet reached total pages - if ($page < $PAGES) { - // Add it - $NAV .= '|'; - } // END - if - } // END - for - - // Define constants only once - $content['nav'] = $NAV; - $content['span'] = $colspan; - $content['top'] = $TOP; - - // Load navigation template - $OUT = loadTemplate('admin_email_nav_row', true, $content); - - if ($return === true) { - // Return generated HTML-Code - return $OUT; - } else { - // Output HTML-Code - outputHtml($OUT); - } -} - // Extract host from script name function extractHostnameFromUrl (&$script) { // Use default SERVER_URL by default... ;) So? @@ -1746,7 +1719,7 @@ function extractHostnameFromUrl (&$script) { if (isInString('/', $host)) $host = substr($host, 0, strpos($host, '/')); // Generate relative URL - //* DEBUG: */ print('SCRIPT=' . $script.'
'); + //* DEBUG: */ debugOutput('SCRIPT=' . $script); if (substr(strtolower($script), 0, 7) == 'http://') { // But only if http:// is in front! $script = substr($script, (strlen($url) + 7)); @@ -1755,7 +1728,7 @@ function extractHostnameFromUrl (&$script) { $script = substr($script, (strlen($url) + 8)); } - //* DEBUG: */ print('SCRIPT=' . $script.'
'); + //* DEBUG: */ debugOutput('SCRIPT=' . $script); if (substr($script, 0, 1) == '/') $script = substr($script, 1); // Return host name @@ -1869,7 +1842,7 @@ function sendRawRequest ($host, $request) { $resolver = new HostnameResolver(); // Open connection - //* DEBUG: */ die('SCRIPT=' . $script.'
'); + //* DEBUG: */ die('SCRIPT=' . $script); if ($useProxy === true) { // Resolve hostname into IP address $ip = $resolver->resolveHostname(compileRawCode(getConfig('proxy_host'))); @@ -1969,8 +1942,8 @@ function sendRawRequest ($host, $request) { } } // END - foreach - //* DEBUG: */ print('Request:
'.print_r($request, true).'
'); - //* DEBUG: */ print('Response:
'.print_r($response, true).'
'); + //* DEBUG: */ debugOutput('Request:
'.print_r($request, true).'
'); + //* DEBUG: */ debugOutput('Response:
'.print_r($response, true).'
'); // Proxy agent found or something went wrong? if (!isset($response[0])) { @@ -2012,7 +1985,7 @@ function setupProxyTunnel ($host, $resource) { // Add last new-line $proxyTunnel .= getConfig('HTTP_EOL'); - //* DEBUG: */ print('proxyTunnel=
' . $proxyTunnel.'
'); + //* DEBUG: */ debugOutput('proxyTunnel=
' . $proxyTunnel.'
'); // Write request fwrite($fp, $proxyTunnel); @@ -2054,11 +2027,11 @@ function isEmailValid ($email) { function isUrlValid ($URL, $compile=true) { // Trim URL a little $URL = trim(urldecode($URL)); - //* DEBUG: */ outputHtml($URL.'
'); + //* DEBUG: */ debugOutput($URL); // Compile some chars out... if ($compile === true) $URL = compileUriCode($URL, false, false, false); - //* DEBUG: */ outputHtml($URL.'
'); + //* DEBUG: */ debugOutput($URL); // Check for the extension filter if (isExtensionActive('filter')) { @@ -2072,19 +2045,22 @@ function isUrlValid ($URL, $compile=true) { } // Generate a list of administrative links to a given userid -function generateMemberAdminActionLinks ($userid, $status = '') { +function generateMemberAdminActionLinks ($userid) { // Make sure userid is a number if ($userid != bigintval($userid)) debug_report_bug(__FUNCTION__, __LINE__, 'userid is not a number!'); // Define all main targets $targetArray = array('del_user', 'edit_user', 'lock_user', 'add_points', 'sub_points'); + // Get user status + $status = getFetchedUserData('userid', $userid, 'status'); + // Begin of navigation links $OUT = '['; foreach ($targetArray as $tar) { $OUT .= '' . __LINE__ . '): ' . $constName."-CACHE!
"); + //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '): ' . $constName."-CACHE!
"); $res = ($GLOBALS['cache_array']['const'][$constName] === true); } else { // Check constant - //* DEBUG: */ outputHtml(__FUNCTION__ . '(' . __LINE__ . '): ' . $constName."-RESOLVE!
"); + //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '): ' . $constName."-RESOLVE!
"); if (defined($constName)) { // Found! - //* DEBUG: */ outputHtml(__FUNCTION__ . '(' . __LINE__ . '): ' . $constName."-FOUND!
"); + //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '): ' . $constName."-FOUND!
"); $res = (constant($constName) === true); } // END - if @@ -2489,7 +2459,7 @@ function generateErrorCodeFromUserStatus ($status='') { // Back-ported from the new ship-simu engine. :-) function debug_get_printable_backtrace () { // Init variable - $backtrace = "
    \n"; + $backtrace = '
      '; // Get and prepare backtrace for output $backtraceArray = debug_backtrace(); @@ -2497,11 +2467,11 @@ function debug_get_printable_backtrace () { if (!isset($trace['file'])) $trace['file'] = __FUNCTION__; if (!isset($trace['line'])) $trace['line'] = __LINE__; if (!isset($trace['args'])) $trace['args'] = array(); - $backtrace .= "
    1. ".basename($trace['file']).":" . $trace['line'].", " . $trace['function'].'('.count($trace['args']).")
    2. \n"; + $backtrace .= '
    3. ' . basename($trace['file']) . ':' . $trace['line'].", " . $trace['function'] . '(' . count($trace['args']) . ')
    4. '; } // END - foreach // Close it - $backtrace .= "
    \n"; + $backtrace .= '
'; // Return the backtrace return $backtrace; @@ -2553,17 +2523,18 @@ function debug_report_bug ($F, $L, $message = '', $sendEmail = true) { } // END - if // Add output - $debug .= "Please report this bug at
http://bugs.mxchange.org and include the logfile from " . str_replace(getConfig('PATH'), '', getConfig('CACHE_PATH')) . "debug.log in your report (you can now attach files):
";
+	$debug .= 'Please report this bug at http://bugs.mxchange.org and include the logfile from ' . str_replace(getConfig('PATH'), '', getConfig('CACHE_PATH')) . 'debug.log in your report (you can now attach files):
';
 	$debug .= debug_get_printable_backtrace();
-	$debug .= "
\nRequest-URI: " . getRequestUri()."
\n"; - $debug .= "Thank you for finding bugs."; + $debug .= '
'; + $debug .= '
Request-URI: ' . getRequestUri() . '
'; + $debug .= '
Thank you for finding bugs.
'; // Send an email? (e.g. not wanted for evaluation errors) if (($sendEmail === true) && (!isInstallationPhase())) { // Prepare content $content = array( - 'message' => trim($message), - 'backtrace' => trim(debug_get_mailable_backtrace()) + 'message' => trim($message), + 'backtrace' => trim(debug_get_mailable_backtrace()) ); // Send email to webmaster @@ -2584,41 +2555,41 @@ function getMessageFromErrorCode ($code) { $message = ''; switch ($code) { case '': break; - case getCode('LOGOUT_DONE') : $message = getMessage('LOGOUT_DONE'); break; + case getCode('LOGOUT_DONE') : $message = '{--LOGOUT_DONE--}'; break; case getCode('LOGOUT_FAILED') : $message = '{--LOGOUT_FAILED--}'; break; - case getCode('DATA_INVALID') : $message = getMessage('MAIL_DATA_INVALID'); break; - case getCode('POSSIBLE_INVALID') : $message = getMessage('MAIL_POSSIBLE_INVALID'); break; - case getCode('USER_404') : $message = getMessage('USER_404'); break; - case getCode('STATS_404') : $message = getMessage('MAIL_STATS_404'); break; - case getCode('ALREADY_CONFIRMED') : $message = getMessage('MAIL_ALREADY_CONFIRMED'); break; - case getCode('WRONG_PASS') : $message = getMessage('LOGIN_WRONG_PASS'); break; - case getCode('WRONG_ID') : $message = getMessage('LOGIN_WRONG_ID'); break; - case getCode('ACCOUNT_LOCKED') : $message = getMessage('LOGIN_STATUS_LOCKED'); break; - case getCode('ACCOUNT_UNCONFIRMED'): $message = getMessage('LOGIN_STATUS_UNCONFIRMED'); break; - case getCode('COOKIES_DISABLED') : $message = getMessage('LOGIN_COOKIES_DISABLED'); break; - case getCode('BEG_SAME_AS_OWN') : $message = getMessage('BEG_SAME_UID_AS_OWN'); break; - case getCode('LOGIN_FAILED') : $message = getMessage('LOGIN_FAILED_GENERAL'); break; - case getCode('MODULE_MEM_ONLY') : $message = getMaskedMessage('MODULE_MEM_ONLY', getRequestParameter('mod')); break; - case getCode('OVERLENGTH') : $message = getMessage('MEMBER_TEXT_OVERLENGTH'); break; - case getCode('URL_FOUND') : $message = getMessage('MEMBER_TEXT_CONTAINS_URL'); break; - case getCode('SUBJ_URL') : $message = getMessage('MEMBER_SUBJ_CONTAINS_URL'); break; - case getCode('BLIST_URL') : $message = "{--MEMBER_URL_BLACK_LISTED--}
\n{--MEMBER_BLIST_TIME--}: ".generateDateTime(getRequestParameter('blist'), 0); break; - case getCode('NO_RECS_LEFT') : $message = getMessage('MEMBER_SELECTED_MORE_RECS'); break; - case getCode('INVALID_TAGS') : $message = getMessage('MEMBER_HTML_INVALID_TAGS'); break; - case getCode('MORE_POINTS') : $message = getMessage('MEMBER_MORE_POINTS_NEEDED'); break; - case getCode('MORE_RECEIVERS1') : $message = getMessage('MEMBER_ENTER_MORE_RECEIVERS'); break; - case getCode('MORE_RECEIVERS2') : $message = getMessage('MEMBER_NO_MORE_RECEIVERS_FOUND'); break; - case getCode('MORE_RECEIVERS3') : $message = getMessage('MEMBER_ENTER_MORE_MIN_RECEIVERS'); break; - case getCode('INVALID_URL') : $message = getMessage('MEMBER_ENTER_INVALID_URL'); break; - case getCode('NO_MAIL_TYPE') : $message = getMessage('MEMBER_NO_MAIL_TYPE_SELECTED'); break; - case getCode('UNKNOWN_ERROR') : $message = getMessage('LOGIN_UNKNOWN_ERROR'); break; - case getCode('UNKNOWN_STATUS') : $message = getMessage('LOGIN_UNKNOWN_STATUS'); break; + case getCode('DATA_INVALID') : $message = '{--MAIL_DATA_INVALID--}'; break; + case getCode('POSSIBLE_INVALID') : $message = '{--MAIL_POSSIBLE_INVALID--}'; break; + case getCode('USER_404') : $message = '{--USER_404--}'; break; + case getCode('STATS_404') : $message = '{--MAIL_STATS_404--}'; break; + case getCode('ALREADY_CONFIRMED') : $message = '{--MAIL_ALREADY_CONFIRMED--}'; break; + case getCode('WRONG_PASS') : $message = '{--LOGIN_WRONG_PASS--}'; break; + case getCode('WRONG_ID') : $message = '{--LOGIN_WRONG_ID--}'; break; + case getCode('ACCOUNT_LOCKED') : $message = '{--LOGIN_STATUS_LOCKED--}'; break; + case getCode('ACCOUNT_UNCONFIRMED'): $message = '{--LOGIN_STATUS_UNCONFIRMED--}'; break; + case getCode('COOKIES_DISABLED') : $message = '{--LOGIN_COOKIES_DISABLED--}'; break; + case getCode('BEG_SAME_AS_OWN') : $message = '{--BEG_SAME_UID_AS_OWN--}'; break; + case getCode('LOGIN_FAILED') : $message = '{--LOGIN_FAILED_GENERAL--}'; break; + case getCode('MODULE_MEMBER_ONLY') : $message = getMaskedMessage('MODULE_MEMBER_ONLY', getRequestParameter('mod')); break; + case getCode('OVERLENGTH') : $message = '{--MEMBER_TEXT_OVERLENGTH--}'; break; + case getCode('URL_FOUND') : $message = '{--MEMBER_TEXT_CONTAINS_URL--}'; break; + case getCode('SUBJ_URL') : $message = '{--MEMBER_SUBJ_CONTAINS_URL--}'; break; + case getCode('BLIST_URL') : $message = '{--MEMBER_URL_BLACK_LISTED--}
{--MEMBER_BLIST_TIME--}: ' . generateDateTime(getRequestParameter('blist'), 0); break; + case getCode('NO_RECS_LEFT') : $message = '{--MEMBER_SELECTED_MORE_RECS--}'; break; + case getCode('INVALID_TAGS') : $message = '{--MEMBER_HTML_INVALID_TAGS--}'; break; + case getCode('MORE_POINTS') : $message = '{--MEMBER_MORE_POINTS_NEEDED--}'; break; + case getCode('MORE_RECEIVERS1') : $message = '{--MEMBER_ENTER_MORE_RECEIVERS--}'; break; + case getCode('MORE_RECEIVERS2') : $message = '{--MEMBER_NO_MORE_RECEIVERS_FOUND--}'; break; + case getCode('MORE_RECEIVERS3') : $message = '{--MEMBER_ENTER_MORE_MIN_RECEIVERS--}'; break; + case getCode('INVALID_URL') : $message = '{--MEMBER_ENTER_INVALID_URL--}'; break; + case getCode('NO_MAIL_TYPE') : $message = '{--MEMBER_NO_MAIL_TYPE_SELECTED--}'; break; + case getCode('UNKNOWN_ERROR') : $message = '{--LOGIN_UNKNOWN_ERROR--}'; break; + case getCode('UNKNOWN_STATUS') : $message = '{--LOGIN_UNKNOWN_STATUS--}'; break; case getCode('ERROR_MAILID'): if (isExtensionActive('mailid', true)) { - $message = getMessage('ERROR_CONFIRMING_MAIL'); + $message = '{--ERROR_CONFIRMING_MAIL--}'; } else { - $message = getMaskedMessage('EXTENSION_PROBLEM_NOT_INSTALLED', 'mailid'); + $message = getMaskedMessage('EXTENSION_PROBLEM_EXTENSION_NOT_INSTALLED', 'mailid'); } break; @@ -2626,7 +2597,7 @@ function getMessageFromErrorCode ($code) { if (isGetRequestParameterSet('ext')) { $message = generateExtensionInactiveNotInstalledMessage(getRequestParameter('ext')); } else { - $message = getMessage('EXTENSION_PROBLEM_UNSET_EXT'); + $message = '{--EXTENSION_PROBLEM_UNSET_EXT--}'; } break; @@ -2747,7 +2718,7 @@ function isUrlValidSimple ($url) { // @TODO Are these convertions still required? $pat = str_replace('.', "\.", $pat); $pat = str_replace('@', "\@", $pat); - //* DEBUG: */ outputHtml($key."= " . $pat . '
'); + //* DEBUG: */ debugOutput($key."= " . $pat); } // END - if // Check if expression matches @@ -2776,12 +2747,12 @@ function changeDataInFile ($FQFN, $comment, $prefix, $suffix, $DATA, $seek=0) { $tmp = $FQFN . '.tmp'; // Open the source file - $fp = fopen($FQFN, 'r') or outputHtml('READ: ' . $FQFN . '
'); + $fp = fopen($FQFN, 'r') or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot read. file=' . basename($FQFN)); // Is the resource valid? if (is_resource($fp)) { // Open temporary file - $fp_tmp = fopen($tmp, 'w') or outputHtml('WRITE: ' . $tmp . '
'); + $fp_tmp = fopen($tmp, 'w') or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot write. tmp=' . basename($tmp) . ',file=' . $FQFN); // Is the resource again valid? if (is_resource($fp_tmp)) { @@ -2830,7 +2801,7 @@ function changeDataInFile ($FQFN, $comment, $prefix, $suffix, $DATA, $seek=0) { } } else { // File not found, not readable or writeable - outputHtml('404: ' . $FQFN . '
'); + debug_report_bug(__FUNCTION__, __LINE__, 'File not readable/writeable. file=' . basename($FQFN)); } // An error was detected! @@ -3049,25 +3020,27 @@ function addNewBonusMail ($data, $mode = '', $output=true) { if (!empty($receiver)) { // Add bonus mail to queue addBonusMailToQueue( - $data['subject'], - $data['text'], - $receiver, - $data['points'], - $data['seconds'], - $data['url'], - $data['cat'], - $mode, - $data['receiver'] + $data['subject'], + $data['text'], + $receiver, + $data['points'], + $data['seconds'], + $data['url'], + $data['cat'], + $mode, + $data['receiver'] ); // Mail inserted into bonus pool - if ($output) loadTemplate('admin_settings_saved', false, getMessage('ADMIN_BONUS_SEND')); - } elseif ($output) { + if ($output === true) { + loadTemplate('admin_settings_saved', false, '{--ADMIN_BONUS_SEND--}'); + } // END - if + } elseif ($output === true) { // More entered than can be reached! - loadTemplate('admin_settings_saved', false, getMessage('ADMIN_MORE_SELECTED')); + loadTemplate('admin_settings_saved', false, '{--ADMIN_MORE_SELECTED--}'); } else { // Debug log - logDebugMessage(__FUNCTION__, __LINE__, "cat={$data['cat']},receiver={$data['receiver']},data=".base64_encode(serialize($data))." More selected, than available!"); + logDebugMessage(__FUNCTION__, __LINE__, 'cat=' . $data['cat'] . ',receiver=' . $data['receiver'] . ',data=' . base64_encode(serialize($data)) . ' More selected, than available!'); } } @@ -3153,7 +3126,7 @@ function shutdown () { SQL_CLOSE(__FUNCTION__, __LINE__); } elseif (!isInstallationPhase()) { // No database link - addFatalMessage(__FUNCTION__, __LINE__, getMessage('NO_DB_LINK_SHUTDOWN')); + addFatalMessage(__FUNCTION__, __LINE__, '{--NO_DB_LINK_SHUTDOWN--}'); } // Stop executing here @@ -3238,7 +3211,7 @@ function generateExtensionInactiveMessage ($ext_name) { // Is the extension empty? if (empty($ext_name)) { // This should not happen - debug_report_bug(__FUNCTION__ . ': Parameter ext is empty. This should not happen.'); + debug_report_bug(__FUNCTION__, __LINE__, 'Parameter ext is empty. This should not happen.'); } // END - if // Default message @@ -3259,7 +3232,7 @@ function generateExtensionNotInstalledMessage ($ext_name) { // Is the extension empty? if (empty($ext_name)) { // This should not happen - debug_report_bug(__FUNCTION__ . ': Parameter ext is empty. This should not happen.'); + debug_report_bug(__FUNCTION__, __LINE__, 'Parameter ext is empty. This should not happen.'); } // END - if // Default message @@ -3323,7 +3296,7 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad // Exclude '.', '..' and entries in $excludeArray automatically if (in_array($baseFile, $excludeArray, true)) { // Exclude them - //* DEBUG: */ outputHtml('excluded=' . $baseFile . '
'); + //* DEBUG: */ debugOutput('excluded=' . $baseFile); continue; } // END - if @@ -3337,9 +3310,9 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad // Check if the base filenname matches an exclusion pattern and if the pattern is not empty if ((!empty($excludePattern)) && (preg_match($excludePattern, $baseFile, $match))) { // These Lines are only for debugging!! - //* DEBUG: */ outputHtml('baseDir:' . $baseDir . '
'); - //* DEBUG: */ outputHtml('baseFile:' . $baseFile . '
'); - //* DEBUG: */ outputHtml('FQFN:' . $FQFN . '
'); + //* DEBUG: */ debugOutput('baseDir:' . $baseDir); + //* DEBUG: */ debugOutput('baseFile:' . $baseFile); + //* DEBUG: */ debugOutput('FQFN:' . $FQFN); // Exclude this one continue; @@ -3469,7 +3442,7 @@ function initCacheInstance () { $GLOBALS['cache_instance'] = new CacheSystem(); if ($GLOBALS['cache_instance']->getStatus() != 'done') { // Failed to initialize cache sustem - addFatalMessage(__FUNCTION__, __LINE__, '(' . __LINE__ . '): ' . getMessage('CACHE_CANNOT_INITIALIZE')); + addFatalMessage(__FUNCTION__, __LINE__, '(' . __LINE__ . '): {--CACHE_CANNOT_INITIALIZE--}'); } // END - if } @@ -3555,16 +3528,16 @@ function determinePageTitle () { $pageTitle = '[-- ' . getConfig('MAIN_TITLE') . ' - ' . getModuleTitle(getModule()) . ' --]'; } elseif ((isInstalled()) && (!isAdminRegistered())) { // Installed but no admin registered - $pageTitle = getMessage('SETUP_OF_MXCHANGE'); + $pageTitle = '{--SETUP_OF_MAILER--}'; } elseif ((!isInstalled()) || (!isAdminRegistered())) { // Installation mode - $pageTitle = getMessage('INSTALLATION_OF_MXCHANGE'); + $pageTitle = '{--INSTALLATION_OF_MAILER--}'; } else { // Configuration not found! - $pageTitle = getMessage('NO_CONFIG_FOUND_TITLE'); + $pageTitle = '{--NO_CONFIG_FOUND_TITLE--}'; // Do not add the fatal message in installation mode - if ((!isInstalling()) && (!isConfigurationLoaded())) addFatalMessage(__FUNCTION__, __LINE__, getMessage('NO_CONFIG_FOUND')); + if ((!isInstalling()) && (!isConfigurationLoaded())) addFatalMessage(__FUNCTION__, __LINE__, '{--NO_CONFIG_FOUND--}'); } // Return title @@ -3593,9 +3566,6 @@ function flushTemplateCache ($template, $eval) { // Generate FQFN $FQFN = generateCacheFqfn($template); - // Replace username with a call - $eval = str_replace('$username', '".getUsername()."', $eval); - // And flush it writeToFile($FQFN, $eval, true); } // END - if @@ -3604,7 +3574,13 @@ function flushTemplateCache ($template, $eval) { // Reads a template cache function readTemplateCache ($template) { // Check it again - if ((isDebuggingTemplateCache() === false) && (isTemplateCached($template))) { + if ((isDebuggingTemplateCache()) || (!isTemplateCached($template))) { + // This should not happen + debug_report_bug('Wether debugging of template cache is enabled or template ' . $template . ' is not cached while expected.'); + } // END - if + + // Is it cached? + if (!isset($GLOBALS['template_eval'][$template])) { // Generate FQFN $FQFN = generateCacheFqfn($template); @@ -3656,9 +3632,6 @@ function sendModeMails ($mod, $modes) { // Load the data $content = getUserDataArray(); - // Translate gender - $content['gender'] = translateGender($content['gender']); - // Clear/init the content variable $content['message'] = ''; @@ -3670,16 +3643,16 @@ function sendModeMails ($mod, $modes) { switch ($mode) { case 'normal': break; // Do not add any special lines case 'email': // Email was changed! - $content['message'] = getMessage('MEMBER_CHANGED_EMAIL').": ".postRequestParameter('old_email')."\n"; + $content['message'] = '{--MEMBER_CHANGED_EMAIL--}' . ': ' . postRequestParameter('old_email') . "\n"; break; case 'pass': // Password was changed - $content['message'] = getMessage('MEMBER_CHANGED_PASS')."\n"; + $content['message'] = '{--MEMBER_CHANGED_PASS--}' . "\n"; break; default: logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown mode %s detected.", $mode)); - $content['message'] = getMessage('MEMBER_UNKNOWN_MODE') . ': ' . $mode . "\n\n"; + $content['message'] = '{--MEMBER_UNKNOWN_MODE--}' . ': ' . $mode . "\n\n"; break; } // END - switch } // END - foreach @@ -3698,7 +3671,7 @@ function sendModeMails ($mod, $modes) { if (getConfig('admin_notify') == 'Y') { // The admin needs to be notified about a profile change $message_admin = 'admin_mydata_notify'; - $sub_adm = getMessage('ADMIN_CHANGED_DATA'); + $sub_adm = '{--ADMIN_CHANGED_DATA--}'; } else { // No mail to admin $message_admin = ''; @@ -3706,7 +3679,7 @@ function sendModeMails ($mod, $modes) { } // Set subject lines - $sub_mem = getMessage('MEMBER_CHANGED_DATA'); + $sub_mem = '{--MEMBER_CHANGED_DATA--}'; // Output success message $content = '{--MYDATA_MAIL_SENT--}'; @@ -3739,7 +3712,7 @@ function sendModeMails ($mod, $modes) { sendAdminNotification($sub_adm, $message_admin, $content, getMemberId()); } elseif (getConfig('admin_notify') == 'Y') { // Cannot send mails to admin! - $content = getMessage('CANNOT_SEND_ADMIN_MAILS'); + $content = '{--CANNOT_SEND_ADMIN_MAILS--}'; } else { // No mail to admin $content = '{--MYDATA_MAIL_SENT--}'; @@ -3901,11 +3874,16 @@ function generateMetaDescriptionCode () { } // Generates an FQFN for template cache from the given template name -function generateCacheFqfn ($template) { +function generateCacheFqfn ($template, $mode = 'html') { // Is this cached? if (!isset($GLOBALS['template_cache_fqfn'][$template])) { // Generate the FQFN - $GLOBALS['template_cache_fqfn'][$template] = sprintf("%s_compiled/html/%s.tpl.cache", getConfig('CACHE_PATH'), $template); + $GLOBALS['template_cache_fqfn'][$template] = sprintf( + "%s_compiled/%s/%s.tpl.cache", + getConfig('CACHE_PATH'), + $mode, + $template + ); } // END - if // Return it