./inc/filter/bonus_filter.php:56: // @TODO This query isn't right, it will only update if the user was for a longer time away!
./inc/filter/cache_filter.php:94: // @TODO This should be rewritten not to load the cache file for just checking if it is there for save removal.
./inc/filter/forced_filter.php:73: // @TODO This part is unfinished
-./inc/filters.php:1317: // @TODO No banner found, output some default banner
-./inc/functions.php:1104: // @TODO Move this SQL code into a function, let's say 'getTimestampFromPoolId($id) ?
-./inc/functions.php:1190: // @TODO Are these convertions still required?
-./inc/functions.php:1211:// @TODO Rewrite this function to use readFromFile() and writeToFile()
-./inc/functions.php:1820: // @TODO Find a way to cache this
-./inc/functions.php:1924: // @TODO This is still very static, rewrite it somehow
-./inc/functions.php:2128: // @TODO Rename column data_type to e.g. mail_status
-./inc/functions.php:2478:// @TODO cacheFiles is not yet supported
+./inc/filters.php:1310: // @TODO No banner found, output some default banner
+./inc/functions.php:1106: // @TODO Move this SQL code into a function, let's say 'getTimestampFromPoolId($id) ?
+./inc/functions.php:1192: // @TODO Are these convertions still required?
+./inc/functions.php:1213:// @TODO Rewrite this function to use readFromFile() and writeToFile()
+./inc/functions.php:1822: // @TODO Find a way to cache this
+./inc/functions.php:1926: // @TODO This is still very static, rewrite it somehow
+./inc/functions.php:2130: // @TODO Rename column data_type to e.g. mail_status
+./inc/functions.php:2480:// @TODO cacheFiles is not yet supported
./inc/gen_sql_patches.php:95:// @TODO Rewrite this to a filter
./inc/header.php:66:// @TODO Find a way to not use direct module comparison
./inc/install-functions.php:446: // @TODO Comparing with DEFAULT_MAIN_TITLE doesn't work
./inc/mails/doubler_mails.php:53:// @TODO Can this be rewritten to a filter?
./inc/module-functions.php:273: // @TODO Nothing helped???
./inc/module-functions.php:314: // @TODO Rewrite this to a filter
-./inc/modules/admin/admin-inc.php:1043:// @TODO rawUserId/content is not yet supported
-./inc/modules/admin/admin-inc.php:1068:// @TODO rawUserId/cacheFiles/content is not yet supported
-./inc/modules/admin/admin-inc.php:163: // @TODO This and the next getCurrentAdminId() call might be moved into the templates?
-./inc/modules/admin/admin-inc.php:236: // @TODO This can be rewritten into a filter
-./inc/modules/admin/admin-inc.php:521:// @TODO Try to rewrite this to adminAddMenuSelectionBox()
-./inc/modules/admin/admin-inc.php:868:// @TODO cacheFiles is not yet supported
+./inc/modules/admin/admin-inc.php:1055:// @TODO rawUserId/content is not yet supported
+./inc/modules/admin/admin-inc.php:1080:// @TODO rawUserId/cacheFiles/content is not yet supported
+./inc/modules/admin/admin-inc.php:175: // @TODO This and the next getCurrentAdminId() call might be moved into the templates?
+./inc/modules/admin/admin-inc.php:248: // @TODO This can be rewritten into a filter
+./inc/modules/admin/admin-inc.php:533:// @TODO Try to rewrite this to adminAddMenuSelectionBox()
+./inc/modules/admin/admin-inc.php:880:// @TODO cacheFiles is not yet supported
./inc/modules/admin/overview-inc.php:176: // @TODO Rewrite this to a filter
./inc/modules/admin/overview-inc.php:289: // @TODO Rewrite this to something with include files and/or filter
./inc/modules/admin/overview-inc.php:323: // @TODO This may also be rewritten to include files
./inc/mysql-manager.php:44:// @TODO Can we cache this?
./inc/purge/purge-inact.php:55: // @TODO Rewrite these if() blocks to a filter
./inc/revision-functions.php:168:// @TODO This function does also set and get in 'cache_array'
-./inc/template-functions.php:1143: // @TODO Deprecate this thing
-./inc/template-functions.php:1154: // @TODO Deprecate this thing
-./inc/template-functions.php:1276: // @TODO This can be easily moved out after the merge from EL branch to this is complete
-./inc/template-functions.php:1325: // @TODO Add a little more infos here
-./inc/template-functions.php:1691:// @TODO Lame description for this function
-./inc/template-functions.php:1713: // @TODO Move this in a filter
+./inc/template-functions.php:1142: // @TODO Deprecate this thing
+./inc/template-functions.php:1153: // @TODO Deprecate this thing
+./inc/template-functions.php:1275: // @TODO This can be easily moved out after the merge from EL branch to this is complete
+./inc/template-functions.php:1324: // @TODO Add a little more infos here
+./inc/template-functions.php:1705:// @TODO Lame description for this function
+./inc/template-functions.php:1727: // @TODO Move this in a filter
./inc/template-functions.php:200: * @TODO On some pages this is buggy
-./inc/template-functions.php:2347: // @TODO Is this needed for e.g. $GLOBALS['template_content'] ? $this->setRawTemplateData($compactedContent);
+./inc/template-functions.php:2361: // @TODO Is this needed for e.g. $GLOBALS['template_content'] ? $this->setRawTemplateData($compactedContent);
./inc/template-functions.php:288: // @TODO Remove these sanity checks if all is fine
-./inc/template-functions.php:634:// @TODO $simple/$constants are deprecated
-./inc/template-functions.php:732: // @TODO $userid is deprecated and should be removed from loadEmailTemplate() and replaced with $content[userid] in all templates
-./inc/wrapper-functions.php:3176: // @TODO Find a way to not use direct module comparison
+./inc/template-functions.php:731: // @TODO $userid is deprecated and should be removed from loadEmailTemplate() and replaced with $content[userid] in all templates
+./inc/wrapper-functions.php:3197: // @TODO Find a way to not use direct module comparison
./inc/wrapper-functions.php:512:// @TODO Do some more sanity check here
./inc/xml-functions.php:240: // @TODO Handle characters
./mailid.php:102: // @TODO Rewrite this to a filter
./inc/libs/output_functions.php:2:// @DEPRECATED
./inc/load_extensions.php:2:// @DEPRECATED
./inc/mails/birthday_mails.php:2:// @DEPRECATED
-./inc/modules/admin/admin-inc.php:522:// @DEPRECATED
+./inc/modules/admin/admin-inc.php:534:// @DEPRECATED
./inc/modules/admin/what-admins_contact.php:2:// @DEPRECATED
./inc/modules/admin/what-autopurge.php:2:// @DEPRECATED
./inc/modules/admin/what-config_cache.php:2:// @DEPRECATED
} // 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'
// Compile it
//* DEBUG: */ debugOutput('<pre>'.linenumberCode($code).'</pre>');
- $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code), FALSE, TRUE, $enableCodes)) . '";';
+ $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code), $enableCodes)) . '";';
//* DEBUG: */ if (!$insertComments) print('EVAL=<pre>'.linenumberCode($eval).'</pre>');
eval($eval);
//* DEBUG: */ if (!$insertComments) print('NEW=<pre>'.linenumberCode($newContent).'</pre>');
$GLOBALS['current_template'] = $template;
// Is there cache?
- if ((!isDebuggingTemplateCache()) && (isTemplateCached('html', $template))) {
+ if ((!isDebugTemplateCacheEnabled()) && (isTemplateCached('html', $template))) {
// Evaluate the cache
- eval(readTemplateCache('html', $template));
+ $templateContent = readTemplateCache('html', $template, $content);
} elseif (!isset($GLOBALS['template_eval']['html'][$template])) {
// Make all template names lowercase
$template = strtolower($template);
// Prepare eval() command
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
- $GLOBALS['template_eval']['html'][$template] = '$ret = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($code), FALSE, TRUE, TRUE, $compileCode) . '";';
+ $GLOBALS['template_eval']['html'][$template] = '$templateContent = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($code), TRUE, $compileCode) . '";';
} elseif (substr($template, 0, 3) == 'js_') {
// JavaScripts don't like entities, dollar signs and timings
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
- $GLOBALS['template_eval']['html'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), FALSE, TRUE, TRUE, $compileCode) . '");';
+ $GLOBALS['template_eval']['html'][$template] = '$templateContent = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), TRUE, $compileCode) . '");';
} elseif (isAjaxOutputMode()) {
// AJAX (JSON content)
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
- $GLOBALS['template_eval']['html'][$template] = '$ret = "' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), FALSE, TRUE, TRUE, $compileCode) . '";';
+ $GLOBALS['template_eval']['html'][$template] = '$templateContent = "' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), TRUE, $compileCode) . '";';
} else {
// Prepare eval() command, other output doesn't like entities, maybe
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
- $GLOBALS['template_eval']['html'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['template_content']['html'][$template]), FALSE, TRUE, TRUE, $compileCode) . '");';
+ $GLOBALS['template_eval']['html'][$template] = '$templateContent = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['template_content']['html'][$template]), TRUE, $compileCode) . '");';
}
} elseif (isHtmlOutputMode()) {
// Add surrounding HTML comments to help finding bugs faster
- $ret = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['template_content']['html'][$template] . '<!-- Template ' . $template . ' - End //-->';
+ $templateContent = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['template_content']['html'][$template] . '<!-- Template ' . $template . ' - End //-->';
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
- $GLOBALS['template_eval']['html'][$template] = '$ret = "' . getColorSwitchCode($template) . compileRawCode(escapeQuotes($ret), FALSE, TRUE, TRUE, $compileCode) . '";';
+ $GLOBALS['template_eval']['html'][$template] = '$templateContent = "' . getColorSwitchCode($template) . compileRawCode(escapeQuotes($templateContent), TRUE, $compileCode) . '";';
} elseif (isAjaxOutputMode()) {
// AJAX (JSON content)
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
- $GLOBALS['template_eval']['html'][$template] = '$ret = "' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), FALSE, TRUE, TRUE, $compileCode) . '";';
+ $GLOBALS['template_eval']['html'][$template] = '$templateContent = "' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), TRUE, $compileCode) . '";';
} else {
// JavaScript again
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
- $GLOBALS['template_eval']['html'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), FALSE, TRUE, TRUE, $compileCode) . '");';
+ $GLOBALS['template_eval']['html'][$template] = '$templateContent = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), TRUE, $compileCode) . '");';
} // END - if
} elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) {
// Only admins shall see this warning or when installation mode is active
- $ret = '<div class="para">
+ $templateContent = '<div class="para">
{--TEMPLATE_404--}
</div>
<div class="para">
} // 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=<pre>' . print_r($content, TRUE) . '</pre>';
+ } // END - if
+
+ // Not empty so let's put it out! ;)
+ if ($return === TRUE) {
+ // Return the HTML code
+ return $templateContent;
+ } else {
+ // Output directly
+ outputHtml($templateContent);
}
}
} // 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);
} elseif (!isset($GLOBALS['template_eval']['email'][$template])) {
// Base directory
$basePath = sprintf("%stemplates/%s/emails/", getPath(), getLanguage());
} // 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
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
- $GLOBALS['template_eval']['email'][$template] = '$newContent = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['template_content']['email'][$template])) . '");';
+ $GLOBALS['template_eval']['email'][$template] = '$templateContent = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['template_content']['email'][$template])) . '");';
} elseif (!empty($template)) {
// Template file not found
- $newContent = '<div class="para">
+ $templateContent = '<div class="para">
{--TEMPLATE_404--}: ' . $template . '
</div>
<div class="para">
// 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';
}
}
} // 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_eval']['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
unset($content);
// Return content
- return $newContent;
+ return $templateContent;
}
// "Getter" for menu CSS classes, mainly used in templates
}
// 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)) {
// Silently return it
$startCompile = microtime(TRUE);
// Comile the code
- $code = compileRawCode($code, $simple, $constants, $full);
+ $code = compileRawCode($code, $full, $compileCode);
// Get timing
$compilationTime = $startCompile - microtime(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)) {
// Silently return it
// Flushes non-flushed template cache to disk
function flushTemplateCache ($prefix, $template, $eval) {
// Is this cache flushed?
- if ((isDebuggingTemplateCache() === FALSE) && (isTemplateCached($prefix, $template) === FALSE) && ($eval != '404')) {
+ if ((isDebugTemplateCacheEnabled() === FALSE) && (isTemplateCached($prefix, $template) === FALSE) && ($eval != '404')) {
// Generate FQFN
$FQFN = generateCacheFqfn($prefix, $template);
+ // Compile code another round for better performance and preserve $ signs
+ $eval = str_replace(array(chr(92), '{DOLLAR}', '{BACK}', '{CONTENT}'), array('', '$', chr(92), '$content'), compileCode(str_replace(array('$content', chr(92)), array('{CONTENT}', '{BACK}'), $eval)));
+
// Is this a XML template?
if ($prefix == 'xml') {
// Compact only XML templates as emails needs new-line characters and HTML may contain required "comments"
} // END - if
// And flush it
- writeToFile($FQFN, $eval, TRUE);
+ writeToFile($FQFN, '<?php ' . $eval . ' ?>', TRUE);
} // END - if
}
// Reads a template cache
-function readTemplateCache ($prefix, $template) {
+function readTemplateCache ($prefix, $template, $content) {
// Check it again
- if ((isDebuggingTemplateCache()) || (!isTemplateCached($prefix, $template))) {
+ if ((isDebugTemplateCacheEnabled()) || (!isTemplateCached($prefix, $template))) {
// This should not happen
- reportBug('Wether debugging of template cache is enabled or template ' . $template . ' is not cached while expected.');
+ reportBug(__FUNCTION__, __LINE__, 'Wether debugging of template cache is enabled or template ' . $template . ' is not cached while expected.');
} // END - if
// Is it cached?
// Generate FQFN
$FQFN = generateCacheFqfn($prefix, $template);
- // And read from it
- $GLOBALS['template_eval'][$prefix][$template] = readFromFile($FQFN);
+ /*
+ * And read from it.
+ *
+ * WARNING: Do not replace this include() call with loadInclude() as it
+ * would hide local variables away which is here required to make this
+ * work.
+ */
+ include($FQFN);
+
+ // Is the template cache valid?
+ if (!isset($templateContent)) {
+ // Please clear your cache!
+ reportBug(__FUNCTION__, __LINE__, 'Template ' . $template . ' uses old structure. Please delete all template cache files and reload.');
+ } // END - if
} // END - if
// And return it
- return $GLOBALS['template_eval'][$prefix][$template];
+ return $templateContent;
}
// Escapes quotes (default is only double-quotes)
if (!isset($GLOBALS['template_cache_fqfn'][$prefix][$template])) {
// Generate the FQFN
$GLOBALS['template_cache_fqfn'][$prefix][$template] = sprintf(
- "%s_compiled/%s/%s.tpl.cache",
+ '%s_compiled/%s/%s.tpl.cache',
getCachePath(),
$prefix,
$template
// Translates the "pool type" into human-readable
function translatePoolType ($type) {
// Return "translation"
- return sprintf("{--POOL_TYPE_%s--}", strtoupper($type));
+ return sprintf('{--POOL_TYPE_%s--}', strtoupper($type));
}
// "Translates" given time unit