X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ftemplate-functions.php;h=7422b6e4478298c6c8aba7a3149bd5e0856a4ea3;hb=fc741216b12245da56b5de93d1f967586b0848d7;hp=9c7192ab1a5d40132d25ab1f45c122e2a11e93cf;hpb=6560179e7c8dc565485503f374d4e31f333ffd0e;p=mailer.git
diff --git a/inc/template-functions.php b/inc/template-functions.php
index 9c7192ab1a..7422b6e447 100644
--- a/inc/template-functions.php
+++ b/inc/template-functions.php
@@ -16,7 +16,7 @@
* $Author:: $ *
* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009 - 2012 by Mailer Developer Team *
+ * Copyright (c) 2009 - 2013 by Mailer Developer Team *
* For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -41,12 +41,12 @@ if (!defined('__SECURITY')) {
} // END - if
// Wrapper until we merged to the EL branch
-function preCompileCode ($code, $template = '', $compiled = false, $full = true, $overwrite = false) {
- return compileCode($code, false, true, $full);
+function preCompileCode ($code, $full = TRUE) {
+ return compileCode($code, $full);
}
// Setter for 'is_template_html'
-function enableTemplateHtml ($enable = true) {
+function enableTemplateHtml ($enable = TRUE) {
$GLOBALS['is_template_html'] = (bool) $enable;
}
@@ -56,7 +56,7 @@ function isTemplateHtml () {
// Is the output_mode other than 0 (HTML), then no comments are enabled
if (!isHtmlOutputMode()) {
// No HTML
- return false;
+ return FALSE;
} else {
// Maybe HTML?
return $GLOBALS['is_template_html'];
@@ -86,14 +86,14 @@ function initTemplateColorSwitch ($template) {
// "Getter" for color switch code
function getColorSwitchCode ($template) {
// Prepare the code
- $code = "{DQUOTE} . doTemplateColorSwitch('" . $template . "', false, false) . {DQUOTE}";
+ $code = "{DQUOTE} . doTemplateColorSwitch('" . $template . "', FALSE, FALSE) . {DQUOTE}";
// And return it
return $code;
}
// Output HTML code directly or 'render' it. You addionally switch the new-line character off
-function outputHtml ($htmlCode, $newLine = true) {
+function outputHtml ($htmlCode = NULL, $newLine = TRUE) {
// Init output
if (!isset($GLOBALS['__output'])) {
$GLOBALS['__output'] = '';
@@ -101,7 +101,7 @@ function outputHtml ($htmlCode, $newLine = true) {
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getOutputMode()=' . getOutputMode() . ',htmlCode(length)=' . strlen($htmlCode) . ',output(length)=' . strlen($GLOBALS['__output']));
// Is there HTML-Code here?
- if (!empty($htmlCode)) {
+ if ((!is_null($htmlCode)) && (!empty($htmlCode))) {
// Yes, so we handle it as you have configured
switch (getOutputMode()) {
case 'render':
@@ -111,16 +111,16 @@ function outputHtml ($htmlCode, $newLine = true) {
outputRawCode($htmlCode);
// That's why you don't need any \n at the end of your HTML code... :-)
- if ($newLine === true) {
- outputRawCode(chr(10));
+ if ($newLine === TRUE) {
+ outputRawCode(PHP_EOL);
} // END - if
} else {
// Render mode for old or lame servers...
$GLOBALS['__output'] .= $htmlCode;
// That's why you don't need any \n at the end of your HTML code... :-)
- if ($newLine === true) {
- $GLOBALS['__output'] .= chr(10);
+ if ($newLine === TRUE) {
+ $GLOBALS['__output'] .= PHP_EOL;
} // END - if
}
break;
@@ -134,8 +134,8 @@ function outputHtml ($htmlCode, $newLine = true) {
// The same as above... ^
outputRawCode($htmlCode);
- if ($newLine === true) {
- outputRawCode(chr(10));
+ if ($newLine === TRUE) {
+ outputRawCode(PHP_EOL);
} // END - if
break;
@@ -180,12 +180,24 @@ function outputHtml ($htmlCode, $newLine = true) {
// Compiles the final output
function compileFinalOutput () {
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '__output(length)=' . strlen($GLOBALS['__output']) . ',getScriptOutputMode()=' . getScriptOutputMode() . ' - ENTERED!');
+ // Is this function called?
+ if (isset($GLOBALS[__FUNCTION__])) {
+ // Abort here
+ reportBug(__FUNCTION__, __LINE__, 'Double call of ' . __FUNCTION__ . ' causes problems with sent headers.');
+ } // END - if
+
+ // Mark this function as called
+ $GLOBALS[__FUNCTION__] = TRUE;
+
// Add page header and footer
addPageHeaderFooter();
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '__output(length)=' . strlen($GLOBALS['__output']) . ' - After addPageHeaderFooter() call.');
- // Do the final compilation
- $GLOBALS['__output'] = compileUriCode(doFinalCompilation($GLOBALS['__output']));
+ // Do the final (general) compilation
+ $GLOBALS['__output'] = doFinalCompilation($GLOBALS['__output']);
+
+ // Compile any other things out
+ $GLOBALS['__output'] = compileUriCode($GLOBALS['__output']);
// Extension 'rewrite' installed?
if ((isExtensionActive('rewrite')) && (!isCssOutputMode())) {
@@ -218,50 +230,51 @@ function compileFinalOutput () {
}
// Main compilation loop
-function doFinalCompilation ($code, $insertComments = true, $enableCodes = true) {
+function doFinalCompilation ($code, $insertComments = TRUE, $enableCodes = TRUE) {
// Insert comments? (Only valid with HTML templates, of course)
enableTemplateHtml($insertComments);
// Init counter
- $count = 0;
+ $totalCompilations = 0;
// Compile all out
- while (((isInString('{--', $code)) || (isInString('{DQUOTE}', $code)) || (isInString('{?', $code)) || (isInString('{%', $code) !== false)) && ($count < 7)) {
+ while (((isInString('{--', $code)) || (isInString('{DQUOTE}', $code)) || (isInString('{?', $code)) || (isInString('{%', $code) !== FALSE)) && ($totalCompilations < 7)) {
// Init common variables
$content = array();
$newContent = '';
// Compile it
- //* DEBUG: */ debugOutput('
+ $templateContent = '
{--TEMPLATE_404--}
@@ -361,7 +390,7 @@ function loadTemplate ($template, $return = false, $content = array(), $compileC
{--TEMPLATE_CONTENT--}:
-
' . print_r($content, true) . '
+
' . print_r($content, TRUE) . '
';
} else {
// No file!
@@ -379,18 +408,18 @@ function loadTemplate ($template, $return = false, $content = array(), $compileC
} // END - if
// Is there some content to output or return?
- if (!empty($ret)) {
- // Not empty so let's put it out! ;)
- if ($return === true) {
- // Return the HTML code
- return $ret;
- } else {
- // Output directly
- outputHtml($ret);
- }
- } elseif (isDebugModeEnabled()) {
+ if ((empty($templateContent)) && (isDebugModeEnabled())) {
// Warning, empty output!
- return 'E:' . $template . ',content=
' . print_r($content, true) . '
';
+ return 'E:' . $template . ',content=
' . print_r($content, TRUE) . '
';
+ } // END - if
+
+ // Not empty so let's put it out! ;)
+ if ($return === TRUE) {
+ // Return the HTML code
+ return $templateContent;
+ } else {
+ // Output directly
+ outputHtml($templateContent);
}
}
@@ -449,7 +478,7 @@ function detectExtraTemplatePath ($prefix, $template) {
}
// Loads an email template and compiles it
-function loadEmailTemplate ($template, $content = array(), $userid = NULL, $loadUserData = true) {
+function loadEmailTemplate ($template, $content = array(), $userid = NULL, $loadUserData = TRUE) {
// Make sure all template names are lowercase!
$template = strtolower($template);
@@ -459,10 +488,10 @@ function loadEmailTemplate ($template, $content = array(), $userid = NULL, $load
// Is content an array?
if (is_array($content)) {
// Add expiration to array
- if ((isConfigEntrySet('auto_purge')) && (getAutoPurge() == '0')) {
+ if ((isExtensionInstalled('autopurge')) && (isConfigEntrySet('auto_purge')) && (getAutoPurge() == '0')) {
// Will never expire!
$content['expiration'] = '{--MAIL_WILL_NEVER_EXPIRE--}';
- } elseif (isConfigEntrySet('auto_purge')) {
+ } elseif ((isExtensionInstalled('autopurge')) && (isConfigEntrySet('auto_purge'))) {
// Create nice date string
$content['expiration'] = '{%config,createFancyTime=auto_purge%}';
} else {
@@ -472,9 +501,12 @@ function loadEmailTemplate ($template, $content = array(), $userid = NULL, $load
} // END - if
// Is there cache?
- if ((!isDebuggingTemplateCache()) && (isTemplateCached('email', $template))) {
+ if ((!isDebugTemplateCacheEnabled()) && (isTemplateCached('email', $template))) {
// Evaluate the cache
- eval(readTemplateCache('email', $template));
+ $templateContent = readTemplateCache('email', $template, $content);
+
+ // Better remove array element which is need only in uncached mode
+ unset($GLOBALS['template_eval']['email'][$template]);
} elseif (!isset($GLOBALS['template_eval']['email'][$template])) {
// Base directory
$basePath = sprintf("%stemplates/%s/emails/", getPath(), getLanguage());
@@ -492,21 +524,22 @@ function loadEmailTemplate ($template, $content = array(), $userid = NULL, $load
} // END - if
// Now does the final template exists?
- $newContent = '';
+ $templateContent = '';
if (isFileReadable($FQFN)) {
// The local file does exists so we load it. :)
$GLOBALS['template_content']['email'][$template] = readFromFile($FQFN);
// Run code
- $GLOBALS['template_eval']['email'][$template] = '$newContent = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['template_content']['email'][$template])) . '");';
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
+ $GLOBALS['template_eval']['email'][$template] = '$templateContent = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['template_content']['email'][$template])) . '");';
} elseif (!empty($template)) {
// Template file not found
- $newContent = '
+ $templateContent = '
{--TEMPLATE_404--}: ' . $template . '
{--TEMPLATE_CONTENT--}:
-
' . print_r($content, true) . '
+
' . print_r($content, TRUE) . '
';
// Don't cache this, as there is no template to cache
@@ -515,11 +548,11 @@ function loadEmailTemplate ($template, $content = array(), $userid = NULL, $load
// Debug mode not active? Then remove the HTML tags
if (!isDebugModeEnabled()) {
// Remove HTML tags
- $newContent = secureString($newContent);
+ $templateContent = secureString($templateContent);
} // END - if
} else {
// No template name supplied!
- $newContent = '{--NO_TEMPLATE_SUPPLIED--}';
+ $templateContent = '{--NO_TEMPLATE_SUPPLIED--}';
$GLOBALS['template_eval']['email'][$template] = '404';
}
}
@@ -528,20 +561,20 @@ function loadEmailTemplate ($template, $content = array(), $userid = NULL, $load
if ((isset($GLOBALS['template_eval']['email'][$template])) && ($GLOBALS['template_eval']['email'][$template] != '404')) {
// Eval the code
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template=' . $template . ' - BEFORE EVAL');
- ///* DEBUG: */ print('
'.htmlentities($GLOBALS['template_eval']['email'][$template]).'
');
+ //* DEBUG: */ print('
'.htmlentities($GLOBALS['template_eval']['email'][$template]).'
');
eval($GLOBALS['template_eval']['email'][$template]);
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template=' . $template . ' - AFTER EVAL');
} // END - if
// Are there some content?
- if (empty($newContent)) {
+ if (empty($templateContent)) {
// Compiling failed
- $newContent = "Compiler error for template " . $template . " !\nUncompiled content:\n" . $GLOBALS['template_content']['email'][$template];
+ $templateContent = "Compiler error for template " . $template . " !\nUncompiled content:\n" . $GLOBALS['template_eval']['email'][$template];
// Add last error if the required function exists
if (function_exists('error_get_last')) {
// Add last error and some lines for better overview
- $newContent .= "\n--------------------------------------\nDebug:\n" . print_r(error_get_last(), true) . "--------------------------------------\nPlease don't alter these informations!\nThanx.";
+ $templateContent .= "\n--------------------------------------\nDebug:\n" . print_r(error_get_last(), TRUE) . "--------------------------------------\nPlease don't alter these informations!\nThanx.";
} // END - if
} // END - if
@@ -549,7 +582,7 @@ function loadEmailTemplate ($template, $content = array(), $userid = NULL, $load
unset($content);
// Return content
- return $newContent;
+ return $templateContent;
}
// "Getter" for menu CSS classes, mainly used in templates
@@ -583,25 +616,25 @@ function getMenuCssClasses ($data) {
// Generate XHTML code for the CAPTCHA
function generateCaptchaCode ($code, $type, $urlId, $userid) {
- return '
![Code ' . $code . ']({%url=mailid_top.php?userid=' . $userid . '&' . $type . '=' . $urlId . '&do=img&code=' . $code . '%})
';
+ return '
![Code ' . $code . ']({%url=mailid.php?userid=' . $userid . '&' . $type . '=' . $urlId . '&do=img&code=' . $code . '%})
';
}
// Compiles the given HTML/mail code
-function compileCode ($code, $simple = false, $constants = true, $full = true, $compileCode = true) {
+function compileCode ($code, $full = TRUE, $compileCode = TRUE) {
// Is the code a string or should we not compile?
- if ((!is_string($code)) || ($compileCode === false)) {
+ if ((!is_string($code)) || ($compileCode === FALSE)) {
// Silently return it
return $code;
} // END - if
// Start couting
- $startCompile = microtime(true);
+ $startCompile = microtime(TRUE);
// Comile the code
- $code = compileRawCode($code, $simple, $constants, $full);
+ $code = compileRawCode($code, $full, $compileCode);
// Get timing
- $compilationTime = $startCompile - microtime(true);
+ $compilationTime = $startCompile - microtime(TRUE);
// Add timing if enabled
if (isTemplateHtml()) {
@@ -614,10 +647,9 @@ function compileCode ($code, $simple = false, $constants = true, $full = true, $
}
// Compiles the code
-// @TODO $simple/$constants are deprecated
-function compileRawCode ($code, $simple = false, $constants = true, $full = true, $compileCode = true) {
+function compileRawCode ($code, $full = TRUE, $compileCode = TRUE) {
// Is the code a string or shall we not compile?
- if ((!is_string($code)) || ($compileCode === false)) {
+ if ((!is_string($code)) || ($compileCode === FALSE)) {
// Silently return it
return $code;
} // END - if
@@ -626,7 +658,7 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
$secChars = $GLOBALS['url_chars'];
// Select full set of chars to replace when we e.g. want to compile URLs
- if ($full === true) {
+ if ($full === TRUE) {
$secChars = $GLOBALS['security_chars'];
} // END - if
@@ -650,7 +682,7 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
$matchesFound = array();
foreach ($matches[0] as $key => $match) {
// Fuzzy look has failed by default
- $fuzzyFound = false;
+ $fuzzyFound = FALSE;
// Fuzzy look on match if already found
foreach ($matchesFound as $found => $set) {
@@ -662,13 +694,13 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
if ($test == $match) {
// Match found
//* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'fuzzyFound!');
- $fuzzyFound = true;
+ $fuzzyFound = TRUE;
break;
} // END - if
} // END - foreach
// Skip this entry?
- if ($fuzzyFound === true) {
+ if ($fuzzyFound === TRUE) {
continue;
} // END - if
@@ -679,7 +711,7 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
$newMatch = str_replace(array('[', ']', '$'), array("['", "']", '{COMPILE_DOLLAR}'), $match);
$code = str_replace($match, '".' . $newMatch . '."', $code);
$matchesFound[$key . '_' . $matches[3][$key]] = 1;
- $matchesFound[$match] = true;
+ $matchesFound[$match] = TRUE;
} elseif (!isset($matchesFound[$match])) {
// Not yet replaced!
//* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'match=' . $match);
@@ -732,46 +764,30 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
}
//
-function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 'form_select') {
+function addSelectionBox ($type, $default, $prefix = '', $id = NULL, $class = 'form_select') {
$OUT = '';
if ($type == 'yn') {
// This is a yes/no selection only!
- if ($id > 0) $prefix .= '[' . $id . ']';
+ if (isValidId($id)) $prefix .= '[' . $id . ']';
$OUT .= '