X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ftemplate-functions.php;h=4da8ef31b200524115d5b34bb1e23de321738988;hb=34bd67db3a98d58e2c3aee64af4fcb2dca1029c4;hp=c3ecb5783475fc6dfed2e6db3b071e9bc7685d59;hpb=8d4176053d397a86baca20b4d7ab7ed526355be8;p=mailer.git diff --git a/inc/template-functions.php b/inc/template-functions.php index c3ecb57834..4da8ef31b2 100644 --- a/inc/template-functions.php +++ b/inc/template-functions.php @@ -14,8 +14,6 @@ * $Date:: $ * * $Tag:: 0.2.1-FINAL $ * * $Author:: $ * - * Needs to be in all Files and every File needs "svn propset * - * svn:keywords Date Revision" (autoprobset!) at least!!!!!! * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * * Copyright (c) 2009, 2010 by Mailer Developer Team * @@ -56,7 +54,7 @@ function enableTemplateHtml ($enable = true) { // Default: true function isTemplateHtml () { // Is the output_mode other than 0 (HTML), then no comments are enabled - if (getOutputMode() != 0) { + if (!isHtmlOutputMode()) { // No HTML return false; } else { @@ -82,25 +80,6 @@ function fixEmptyContentToDashes ($str) { return $str; } -// Color-switch helper function -function doTemplateColorSwitch ($template, $clear = false, $return = true) { - // Is it there? - if (!isset($GLOBALS['color_switch'][$template])) { - // Initialize it - initTemplateColorSwitch($template); - } elseif ($clear === false) { - // Switch color if called from loadTemplate() - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SWITCH:' . $template); - $GLOBALS['color_switch'][$template] = 3 - $GLOBALS['color_switch'][$template]; - } // END - if - - // Return CSS class name - if ($return === true) { - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'RETURN:' . $template . '=' . $GLOBALS['color_switch'][$template]); - return 'switch_sw' . $GLOBALS['color_switch'][$template]; - } // END - if -} - // Init color switch function initTemplateColorSwitch ($template) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'INIT:' . $template); @@ -126,7 +105,7 @@ function outputHtml ($htmlCode, $newLine = true) { // Do we have HTML-Code here? if (!empty($htmlCode)) { // Yes, so we handle it as you have configured - switch (getConfig('OUTPUT_MODE')) { + switch (getOutputMode()) { case 'render': // That's why you don't need any \n at the end of your HTML code... :-) if (getPhpCaching() == 'on') { @@ -155,7 +134,7 @@ function outputHtml ($htmlCode, $newLine = true) { default: // Huh, something goes wrong or maybe you have edited config.php ??? - debug_report_bug(__FUNCTION__, __LINE__, '{--FATAL_ERROR--}: {--LANG_NO_RENDER_DIRECT--}'); + debug_report_bug(__FUNCTION__, __LINE__, '{--FATAL_ERROR--}: {--NO_RENDER_DIRECT--}'); break; } // END - switch } elseif ((getPhpCaching() == 'on') && ((!isset($GLOBALS['header'])) || (count($GLOBALS['header']) == 0))) { @@ -175,7 +154,7 @@ function outputHtml ($htmlCode, $newLine = true) { // Output code here, DO NOT REMOVE! ;-) outputRawCode($GLOBALS['output']); - } elseif ((getConfig('OUTPUT_MODE') == 'render') && (!empty($GLOBALS['output']))) { + } elseif ((getOutputMode() == 'render') && (!empty($GLOBALS['output']))) { // Send all HTTP headers sendHttpHeaders(); @@ -199,14 +178,16 @@ function compileFinalOutput () { $GLOBALS['output'] = doFinalCompilation($GLOBALS['output']); // Extension 'rewrite' installed? - if ((isExtensionActive('rewrite')) && (getOutputMode() != 1)) { + if ((isExtensionActive('rewrite')) && (!isCssOutputMode())) { $GLOBALS['output'] = rewriteLinksInCode($GLOBALS['output']); } // END - if // Compress it? + /** + * @TODO On some pages this is buggy if (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos('gzip', $_SERVER['HTTP_ACCEPT_ENCODING']) !== null)) { // Compress it for HTTP gzip - $GLOBALS['output'] = gzencode($GLOBALS['output'], 9, true); + $GLOBALS['output'] = gzencode($GLOBALS['output'], 9); // Add header sendHeader('Content-Encoding: gzip'); @@ -217,6 +198,7 @@ function compileFinalOutput () { // Add header sendHeader('Content-Encoding: deflate'); } + */ // Add final length sendHeader('Content-Length: ' . strlen($GLOBALS['output'])); @@ -226,7 +208,7 @@ function compileFinalOutput () { } // Main compilation loop -function doFinalCompilation ($code, $insertComments = true) { +function doFinalCompilation ($code, $insertComments = true, $enableCodes = true) { // Insert comments? (Only valid with HTML templates, of course) enableTemplateHtml($insertComments); @@ -234,16 +216,17 @@ function doFinalCompilation ($code, $insertComments = true) { $cnt = 0; // Compile all out - while (((strpos($code, '{--') !== false) || (strpos($code, '{DQUOTE}') !== false) || (strpos($code, '{?') !== false) || (strpos($code, '{%') !== false)) && ($cnt < 4)) { + while (((strpos($code, '{--') !== false) || (strpos($code, '{DQUOTE}') !== false) || (strpos($code, '{?') !== false) || (strpos($code, '{%') !== false)) && ($cnt < 5)) { // Init common variables $content = array(); $newContent = ''; // Compile it - //* DEBUG: */ debugOutput('
'.encodeEntities($code).''); - $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code))) . '";'; - //* DEBUG: */ if ($insertComments) die('
'.linenumberCode($eval).''); + //* DEBUG: */ debugOutput('
'.linenumberCode($code).''); + $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code), false, true, $enableCodes)) . '";'; + //* DEBUG: */ if (!$insertComments) print('EVAL=
'.linenumberCode($eval).''); eval($eval); + //* DEBUG: */ if (!$insertComments) print('NEW=
'.linenumberCode($newContent).''); //* DEBUG: */ die('
'.encodeEntities($newContent).''); // Was that eval okay? @@ -293,15 +276,12 @@ function loadTemplate ($template, $return = false, $content = array()) { // Init some data $ret = ''; - if (empty($GLOBALS['refid'])) $GLOBALS['refid'] = '0'; // Base directory - $basePath = sprintf("%stemplates/%s/html/", getConfig('PATH'), getLanguage()); + $basePath = sprintf("%stemplates/%s/html/", getPath(), getLanguage()); $extraPath = detectExtraTemplatePath($template);; - //////////////////////// - // Generate file name // - //////////////////////// + // Generate FQFN $FQFN = $basePath . $extraPath . $template . '.tpl'; // Does the special template exists? @@ -316,34 +296,34 @@ function loadTemplate ($template, $return = false, $content = array()) { incrementConfigEntry('num_templates'); // The local file does exists so we load it. :) - $GLOBALS['tpl_content'] = readFromFile($FQFN); + $GLOBALS['tpl_content'][$template] = readFromFile($FQFN); // 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)) { + if ((strpos($GLOBALS['tpl_content'][$template], '$') !== false) || (strpos($GLOBALS['tpl_content'][$template], '{--') !== false) || (strpos($GLOBALS['tpl_content'][$template], '{?') !== false) || (strpos($GLOBALS['tpl_content'][$template], '{%') !== false)) { // Normal HTML output? - if (getOutputMode() == '0') { + if (isHtmlOutputMode()) { // Add surrounding HTML comments to help finding bugs faster - $ret = '' . $GLOBALS['tpl_content'] . ''; + $ret = '' . $GLOBALS['tpl_content'][$template] . ''; // Prepare eval() command $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($ret)) . '";'; } elseif (substr($template, 0, 3) == 'js_') { // JavaScripts don't like entities and timings - $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['tpl_content'])) . '");'; + $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['tpl_content'][$template])) . '");'; } else { // Prepare eval() command, other output doesn't like entities, maybe - $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['tpl_content'])) . '");'; + $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['tpl_content'][$template])) . '");'; } } else { // Add surrounding HTML comments to help finding bugs faster - $ret = '' . $GLOBALS['tpl_content'] . ''; + $ret = '' . $GLOBALS['tpl_content'][$template] . ''; $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileRawCode(escapeQuotes($ret)) . '";'; } // END - if } elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) { // Only admins shall see this warning or when installation mode is active $ret = '
' . print_r($content, true) . '- {--TEMPLATE_DATA--} -
' . print_r($DATA, true) . '
'; + print 'Message:' . $message . '
Backtrace:'; debug_print_backtrace(); die(''); } // END - if @@ -1190,11 +1179,11 @@ 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(getPath(), '', getCachePath()) . 'debug.log in your report (you can now attach files):'; $debug .= debug_get_printable_backtrace(); $debug .= ''; - $debug .= 'Request-URI: ' . getRequestUri() . ''; - $debug .= 'Thank you for finding bugs.'; + $debug .= 'Request-URI: ' . getRequestUri() . ''; + $debug .= 'Thank you for finding bugs.'; // Send an email? (e.g. not wanted for evaluation errors) if (($sendEmail === true) && (!isInstallationPhase())) { @@ -1260,12 +1249,12 @@ function generateExtensionInactiveMessage ($ext_name) { } // END - if // Default message - $message = getMaskedMessage('EXTENSION_PROBLEM_EXT_INACTIVE', $ext_name); + $message = getMaskedMessage('EXTENSION_PROBLEM_EXTENSION_INACTIVE', $ext_name); // Is an admin logged in? if (isAdmin()) { // Then output admin message - $message = getMaskedMessage('ADMIN_EXTENSION_PROBLEM_EXT_INACTIVE', $ext_name); + $message = getMaskedMessage('ADMIN_EXTENSION_PROBLEM_EXTENSION_INACTIVE', $ext_name); } // END - if // Return prepared message @@ -1349,7 +1338,7 @@ function determinePageTitle () { $TITLE = ''; // Title decoration enabled? - if ((getConfig('enable_title_deco') == 'Y') && (getConfig('title_left') != '')) $TITLE .= trim(getConfig('title_left')) . ' '; + if ((isTitleDecorationEnabled()) && (getConfig('title_left') != '')) $TITLE .= trim(getConfig('title_left')) . ' '; // Do we have some extra title? if (isExtraTitleSet()) { @@ -1358,33 +1347,33 @@ function determinePageTitle () { } // END - if // Add main title - $TITLE .= getConfig('MAIN_TITLE'); + $TITLE .= getMainTitle(); // Add title of module? (middle decoration will also be added!) - if ((getConfig('enable_mod_title') == 'Y') || ((!isWhatSet()) && (!isActionSet())) || (getModule() == 'admin')) { - $TITLE .= ' ' . trim(getConfig('title_middle')) . ' ' . getModuleTitle(getModule()); + if ((isModuleTitleEnabled()) || ((!isWhatSet()) && (!isActionSet())) || (getModule() == 'admin')) { + $TITLE .= ' ' . trim(getConfig('title_middle')) . ' {DQUOTE} . getModuleTitle(getModule()) . {DQUOTE}'; } // END - if // Add title from what file $mode = ''; if (getModule() == 'login') $mode = 'member'; elseif (getModule() == 'index') $mode = 'guest'; - if ((!empty($mode)) && (getConfig('enable_what_title') == 'Y')) $TITLE .= ' ' . trim(getConfig('title_middle')) . ' ' . getTitleFromMenu($mode, getWhat()); + if ((!empty($mode)) && (isWhatTitleEnabled())) $TITLE .= ' ' . trim(getConfig('title_middle')) . ' ' . getTitleFromMenu($mode, getWhat()); // Add title decorations? (right) - if ((getConfig('enable_title_deco') == 'Y') && (getConfig('title_right') != '')) $TITLE .= ' ' . trim(getConfig('title_right')); + if ((isTitleDecorationEnabled()) && (getConfig('title_right') != '')) $TITLE .= ' ' . trim(getConfig('title_right')); // Remember title in constant for the template $pageTitle = $TITLE; } elseif ((isInstalled()) && (isAdminRegistered())) { // Installed, admin registered but no ext-sql_patches - $pageTitle = '[-- ' . getConfig('MAIN_TITLE') . ' - ' . getModuleTitle(getModule()) . ' --]'; + $pageTitle = '[-- ' . getMainTitle() . ' - ' . getModuleTitle(getModule()) . ' --]'; } elseif ((isInstalled()) && (!isAdminRegistered())) { // Installed but no admin registered - $pageTitle = '{--SETUP_OF_MAILER--}'; + $pageTitle = '{--INSTALLER_OF_MAILER_NO_ADMIN--}'; } elseif ((!isInstalled()) || (!isAdminRegistered())) { // Installation mode - $pageTitle = '{--INSTALLATION_OF_MAILER--}'; + $pageTitle = '{--INSTALLER_OF_MAILER--}'; } else { // Configuration not found! $pageTitle = '{--NO_CONFIG_FOUND_TITLE--}'; @@ -1452,6 +1441,9 @@ function escapeQuotes ($str, $single = false) { // Escape all (including null) $str = addslashes($str); } else { + // Remove escaping of single quotes + $str = str_replace("\'", "'", $str); + // Escape only double-quotes but prevent double-quoting $str = str_replace("\\\\", "\\", str_replace('"', "\\\"", $str)); } @@ -1499,7 +1491,7 @@ function sendModeMails ($mod, $modes) { $content['message'] = '{--MEMBER_CHANGED_EMAIL--}' . ': ' . postRequestParameter('old_email') . "\n"; break; - case 'pass': // Password was changed + case 'password': // Password was changed $content['message'] = '{--MEMBER_CHANGED_PASS--}' . "\n"; break; @@ -1521,7 +1513,7 @@ function sendModeMails ($mod, $modes) { // Load template $message = loadEmailTemplate('member_mydata_notify', $content, getMemberId()); - if (getConfig('admin_notify') == 'Y') { + if (isAdminNotificationEnabled()) { // The admin needs to be notified about a profile change $message_admin = 'admin_mydata_notify'; $sub_adm = '{--ADMIN_CHANGED_DATA--}'; @@ -1535,21 +1527,21 @@ function sendModeMails ($mod, $modes) { $sub_mem = '{--MEMBER_CHANGED_DATA--}'; // Output success message - $content = '{--MYDATA_MAIL_SENT--}'; + $content = ' '; break; default: // Unsupported module! logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unsupported module %s detected.", $mod)); - $content = '{--UNKNOWN_MODULE--}'; + $content = '{--UNKNOWN_MODULE--}'; break; } // END - switch } else { // Passwords mismatch - $content = '{--MEMBER_PASSWORD_ERROR--}'; + $content = '{--MEMBER_PASSWORD_ERROR--}'; } } else { // Could not load profile - $content = '{--MEMBER_CANNOT_LOAD_PROFILE--}'; + $content = '{--MEMBER_CANNOT_LOAD_PROFILE--}'; } // Send email to user if required @@ -1563,12 +1555,12 @@ function sendModeMails ($mod, $modes) { if ((!empty($sub_adm)) && (!empty($message_admin))) { // Send admin mail sendAdminNotification($sub_adm, $message_admin, $content, getMemberId()); - } elseif (getConfig('admin_notify') == 'Y') { + } elseif (isAdminNotificationEnabled()) { // Cannot send mails to admin! $content = '{--CANNOT_SEND_ADMIN_MAILS--}'; } else { // No mail to admin - $content = '{--MYDATA_MAIL_SENT--}'; + $content = ' '; } } // END - if @@ -1579,7 +1571,7 @@ function sendModeMails ($mod, $modes) { // Generates a 'selection box' from given array function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionContent = '', $extraName = '') { // Start the output - $OUT = '