From: Roland Häder Date: Tue, 8 Nov 2011 22:00:47 +0000 (+0000) Subject: Fix for brikeb template engine in preparation of AJAX X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=fb885a2e2739d328fd2093576eead18929131d45;p=mailer.git Fix for brikeb template engine in preparation of AJAX --- diff --git a/inc/template-functions.php b/inc/template-functions.php index 4c8ec10877..34e43eb311 100644 --- a/inc/template-functions.php +++ b/inc/template-functions.php @@ -633,28 +633,6 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true // Compile QUOT and other non-HTML codes $code = str_replace($secChars['to'], $secChars['from'], $code); - // Find $fooBar entries - preg_match_all('/\$(.){0,}/', $code, $matches); - - // Are some matches found? - if ((count($matches) > 0) && (count($matches[0]) > 0)) { - // Scan all matches for not $content - foreach ($matches[0] as $match) { - // Trim match - $match = trim($match); - - // Is the first part not $content and not empty? - if ((!empty($match)) && (substr($match, 0, 8) != '$content')) { - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'match=' . $match); - // Then replace $ with $ - $matchSecured = str_replace('$', '$', $match); - - // And in $code as well - $code = str_replace($match, $matchSecured, $code); - } // END - if - } // END - if - } // END - if - // Find $content[bla][blub] entries preg_match_all('/\$content((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches); @@ -690,7 +668,7 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true if ((is_string($matches[3][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key.'_' . $matches[3][$key]]))) { // Replace it in the code //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',match=' . $match); - $newMatch = str_replace('[', "['", str_replace(']', "']", $match)); + $newMatch = str_replace('[', "['", str_replace(']', "']", str_replace('$', '{COMPILE_DOLLAR}', $match))); $code = str_replace($match, '".' . $newMatch . '."', $code); $matchesFound[$key . '_' . $matches[3][$key]] = 1; $matchesFound[$match] = true; @@ -706,7 +684,32 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true } // END - foreach } // END - if - // Return it + // Find $fooBar entries + preg_match_all('/\$([a-z_A-Z\[\]]){0,}/', $code, $matches); + + // Are some matches found? + if ((count($matches) > 0) && (count($matches[0]) > 0)) { + // Scan all matches for not $content + foreach ($matches[0] as $match) { + // Trim match + $match = trim($match); + + // Is the first part not $content and not empty? + if ((!empty($match)) && (substr($match, 0, 8) != '$content') && ($match != '$userid')) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'match=' . $match); + // Then replace $ with $ + $matchSecured = str_replace('$', '$', $match); + + // And in $code as well + $code = str_replace($match, $matchSecured, $code); + } // END - if + } // END - if + } // END - if + + // Replace {COMPILE_DOLLAR} back to dollar sign + $code = str_replace('{COMPILE_DOLLAR}', '$', $code); + + // Finally return it return $code; }