Template engine fixed:
[mailer.git] / inc / template-functions.php
index da8ddcfe8a674f6cf6d4b3829038174aa69aefd8..bdb505d8fbd63be40be7494ebefdcf60eca102ca 100644 (file)
@@ -261,7 +261,7 @@ function outputRawCode ($htmlCode) {
 }
 
 // Load a template file and return it's content (only it's name; do not use ' or ")
-function loadTemplate ($template, $return = false, $content = array()) {
+function loadTemplate ($template, $return = false, $content = array(), $compileCode = true) {
        // @TODO Remove this sanity-check if all is fine
        if (!is_bool($return)) debug_report_bug(__FUNCTION__, __LINE__, 'return is not bool (' . gettype($return) . ')');
 
@@ -269,7 +269,7 @@ function loadTemplate ($template, $return = false, $content = array()) {
        $GLOBALS['current_template'] = $template;
 
        // Do we have cache?
-       if ((isDebuggingTemplateCache() === false) && (isTemplateCached($template))) {
+       if ((!isDebuggingTemplateCache()) && (isTemplateCached($template))) {
                // Evaluate the cache
                eval(readTemplateCache($template));
        } elseif (!isset($GLOBALS['template_eval'][$template])) {
@@ -309,18 +309,18 @@ function loadTemplate ($template, $return = false, $content = array()) {
                                        $ret = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'][$template] . '<!-- Template ' . $template . ' - End //-->';
 
                                        // Prepare eval() command
-                                       $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($ret)) . '";';
+                                       $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($ret), false, true, true, $compileCode) . '";';
                                } elseif (substr($template, 0, 3) == 'js_') {
                                        // JavaScripts don't like entities and timings
-                                       $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['tpl_content'][$template])) . '");';
+                                       $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['tpl_content'][$template]), false, true, true, $compileCode) . '");';
                                } else {
                                        // Prepare eval() command, other output doesn't like entities, maybe
-                                       $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['tpl_content'][$template])) . '");';
+                                       $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['tpl_content'][$template]), false, true, true, $compileCode) . '");';
                                }
                        } else {
                                // Add surrounding HTML comments to help finding bugs faster
                                $ret = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'][$template] . '<!-- Template ' . $template . ' - End //-->';
-                               $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileRawCode(escapeQuotes($ret)) . '";';
+                               $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileRawCode(escapeQuotes($ret), false, true, true, $compileCode) . '";';
                        } // END - if
                } elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) {
                        // Only admins shall see this warning or when installation mode is active
@@ -548,9 +548,9 @@ function generateCaptchaCode ($code, $type, $DATA, $userid) {
 }
 
 // Compiles the given HTML/mail code
-function compileCode ($code, $simple = false, $constants = true, $full = true) {
-       // Is the code a string?
-       if (!is_string($code)) {
+function compileCode ($code, $simple = false, $constants = true, $full = true, $compileCode = true) {
+       // Is the code a string or should we not compile?
+       if ((!is_string($code)) || ($compileCode === false)) {
                // Silently return it
                return $code;
        } // END - if
@@ -576,9 +576,9 @@ function compileCode ($code, $simple = false, $constants = true, $full = true) {
 
 // Compiles the code (use compileCode() only for HTML because of the comments)
 // @TODO $simple/$constants are deprecated
-function compileRawCode ($code, $simple = false, $constants = true, $full = true) {
-       // Is the code a string?
-       if (!is_string($code)) {
+function compileRawCode ($code, $simple = false, $constants = true, $full = true, $compileCode = true) {
+       // Is the code a string or shall we not compile?
+       if ((!is_string($code)) || ($compileCode === false)) {
                // Silently return it
                return $code;
        } // END - if
@@ -587,7 +587,9 @@ 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) $secChars = $GLOBALS['security_chars'];
+       if ($full === true) {
+               $secChars = $GLOBALS['security_chars'];
+       } // END - if
 
        // Compile more through a filter
        $code = runFilterChain('compile_code', $code);