CSS classes cleaned up, templates simplified:
[mailer.git] / inc / template-functions.php
index cec52e7ccbf2f0632e89f4af891ec8daf5e47013..b838f086a07cb71373d4b43555cb7fa3ab1ac8b4 100644 (file)
@@ -56,7 +56,7 @@ function enableTemplateHtml ($enable = true) {
 // Default: true
 function isTemplateHtml () {
        // Is the output_mode other than 0 (HTML), then no comments are enabled
-       if (getScriptOutputMode() != 0) {
+       if (!isHtmlOutputMode()) {
                // No HTML
                return false;
        } else {
@@ -82,25 +82,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);
@@ -199,14 +180,16 @@ function compileFinalOutput () {
        $GLOBALS['output'] = doFinalCompilation($GLOBALS['output']);
 
        // Extension 'rewrite' installed?
-       if ((isExtensionActive('rewrite')) && (getScriptOutputMode() != 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 +200,7 @@ function compileFinalOutput () {
                // Add header
                sendHeader('Content-Encoding: deflate');
        }
+       */
 
        // Add final length
        sendHeader('Content-Length: ' . strlen($GLOBALS['output']));
@@ -226,7 +210,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);
 
@@ -240,10 +224,11 @@ function doFinalCompilation ($code, $insertComments = true) {
                $newContent = '';
 
                // Compile it
-               //* DEBUG: */ debugOutput('<pre>'.encodeEntities($code).'</pre>');
-               $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code))) . '";';
-               //* DEBUG: */ if (!$insertComments) print('<pre>'.linenumberCode($eval).'</pre>');
+               //* DEBUG: */ debugOutput('<pre>'.linenumberCode($code).'</pre>');
+               $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code), false, true, $enableCodes)) . '";';
+               //* DEBUG: */ if (!$insertComments) print('EVAL=<pre>'.linenumberCode($eval).'</pre>');
                eval($eval);
+               //* DEBUG: */ if (!$insertComments) print('NEW=<pre>'.linenumberCode($newContent).'</pre>');
                //* DEBUG: */ die('<pre>'.encodeEntities($newContent).'</pre>');
 
                // Was that eval okay?
@@ -299,9 +284,7 @@ function loadTemplate ($template, $return = false, $content = array()) {
                $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,28 +299,28 @@ 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 (getScriptOutputMode() == '0') {
+                               if (isHtmlOutputMode()) {
                                        // Add surrounding HTML comments to help finding bugs faster
-                                       $ret = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'] . '<!-- Template ' . $template . ' - End //-->';
+                                       $ret = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'][$template] . '<!-- Template ' . $template . ' - End //-->';
 
                                        // 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 = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'] . '<!-- Template ' . $template . ' - End //-->';
+                               $ret = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'][$template] . '<!-- Template ' . $template . ' - End //-->';
                                $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileRawCode(escapeQuotes($ret)) . '";';
                        } // END - if
                } elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) {
@@ -497,11 +480,11 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') {
        $newContent = '';
        if (isFileReadable($FQFN)) {
                // The local file does exists so we load it. :)
-               $GLOBALS['tpl_content'] = readFromFile($FQFN);
+               $GLOBALS['tpl_content'][$template] = readFromFile($FQFN);
 
                // Run code
-               $GLOBALS['tpl_content'] = '$newContent = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['tpl_content'])) . '");';
-               eval($GLOBALS['tpl_content']);
+               $GLOBALS['tpl_content'][$template] = '$newContent = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['tpl_content'][$template])) . '");';
+               eval($GLOBALS['tpl_content'][$template]);
        } elseif (!empty($template)) {
                // Template file not found!
                $newContent = '<div class="para">
@@ -515,7 +498,10 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') {
 </div>';
 
                // Debug mode not active? Then remove the HTML tags
-               if (!isDebugModeEnabled()) $newContent = secureString($newContent);
+               if (!isDebugModeEnabled()) {
+                       // Remove HTML tags
+                       $newContent = secureString($newContent);
+               } // END - if
        } else {
                // No template name supplied!
                $newContent = '{--NO_TEMPLATE_SUPPLIED--}';
@@ -524,7 +510,7 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') {
        // Is there some content?
        if (empty($newContent)) {
                // Compiling failed
-               $newContent = "Compiler error for template " . $template . " !\nUncompiled content:\n" . $GLOBALS['tpl_content'];
+               $newContent = "Compiler error for template " . $template . " !\nUncompiled content:\n" . $GLOBALS['tpl_content'][$template];
 
                // Add last error if the required function exists
                if (function_exists('error_get_last')) $newContent .= "\n--------------------------------------\nDebug:\n".print_r(error_get_last(), true)."--------------------------------------\nPlease don't alter these informations!\nThanx.";
@@ -668,7 +654,7 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
 }
 
 //
-function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 'register_select') {
+function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 'guest_select') {
        $OUT = '';
 
        if ($type == 'yn') {
@@ -1092,10 +1078,10 @@ function generateEmailLink ($email, $table = 'admins') {
                $EMAIL = generateAdminEmailLink($email);
        } elseif ((isExtensionInstalledAndNewer('user', '0.3.3')) && ($table == 'user_data')) {
                // Create email link for contacting a member within admin area (or later in other areas, too?)
-               $EMAIL = generateUserEmailLink($email, 'admin');
+               $EMAIL = generateUserEmailLink($email);
        } elseif ((isExtensionActive('sponsor')) && ($table == 'sponsor_data')) {
                // Create email link to contact sponsor within admin area (or like the link above?)
-               $EMAIL = generateSponsorEmailLink($email, 'sponsor_data');
+               $EMAIL = generateSponsorEmailLink($email);
        }
 
        // Shall I close the link when there is no admin?
@@ -1147,7 +1133,9 @@ function displayParsingTime () {
        $start = explode(' ', $GLOBALS['startTime']);
        $end = explode(' ', $endTime);
        $runTime = $end[0] - $start[0];
-       if ($runTime < 0) $runTime = '0';
+       if ($runTime < 0) {
+               $runTime = '0';
+       } // END - if
 
        // Prepare output
        // @TODO This can be easily moved out after the merge from EL branch to this is complete
@@ -1191,8 +1179,8 @@ function debug_report_bug ($F, $L, $message = '', $sendEmail = true) {
        $debug .= 'Please report this bug at <a title="Direct link to the bug-tracker" href="http://bugs.mxchange.org" rel="external" target="_blank">http://bugs.mxchange.org</a> and include the logfile from <strong>' . str_replace(getPath(), '', getCachePath()) . 'debug.log</strong> in your report (you can now attach files):<pre>';
        $debug .= debug_get_printable_backtrace();
        $debug .= '</pre>';
-       $debug .= '<div>Request-URI: ' . getRequestUri() . '</div>';
-       $debug .= '<div>Thank you for finding bugs.</div>';
+       $debug .= '<div class="para">Request-URI: ' . getRequestUri() . '</div>';
+       $debug .= '<div class="para">Thank you for finding bugs.</div>';
 
        // Send an email? (e.g. not wanted for evaluation errors)
        if (($sendEmail === true) && (!isInstallationPhase())) {
@@ -1258,12 +1246,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
@@ -1360,7 +1348,7 @@ function determinePageTitle () {
 
                // Add title of module? (middle decoration will also be added!)
                if ((isModuleTitleEnabled()) || ((!isWhatSet()) && (!isActionSet())) || (getModule() == 'admin')) {
-                       $TITLE .= ' ' . trim(getConfig('title_middle')) . ' ' . getModuleTitle(getModule());
+                       $TITLE .= ' ' . trim(getConfig('title_middle')) . ' {DQUOTE} . getModuleTitle(getModule()) . {DQUOTE}';
                } // END - if
 
                // Add title from what file
@@ -1379,10 +1367,10 @@ function determinePageTitle () {
                $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--}';
@@ -1500,7 +1488,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;
 
@@ -1536,7 +1524,7 @@ function sendModeMails ($mod, $modes) {
                                        $sub_mem = '{--MEMBER_CHANGED_DATA--}';
 
                                        // Output success message
-                                       $content = '<span class="member_done">{--MYDATA_MAIL_SENT--}</span>';
+                                       $content = '<span class="member_done">{--MEMBER_MYDATA_MAIL_SENT--}</span>';
                                        break;
 
                                default: // Unsupported module!
@@ -1569,7 +1557,7 @@ function sendModeMails ($mod, $modes) {
                        $content = '{--CANNOT_SEND_ADMIN_MAILS--}';
                } else {
                        // No mail to admin
-                       $content = '<span class="member_done">{--MYDATA_MAIL_SENT--}</span>';
+                       $content = '<span class="member_done">{--MEMBER_MYDATA_MAIL_SENT--}</span>';
                }
        } // END - if
 
@@ -1685,5 +1673,43 @@ function fixNullEmptyToDashes ($str, $num) {
        return $return;
 }
 
+//-----------------------------------------------------------------------------
+//                       Template Helper Functions
+//-----------------------------------------------------------------------------
+
+// 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
+}
+
+// Helper function for extension registration link
+function doTemplateExtensionRegistrationLink ($template, $dummy, $ext_name) {
+       // Default is all productive
+       $OUT = '<a title="{--ADMIN_REGISTER_EXTENSION_TITLE--}" href="{%url=modules.php?module=admin&amp;what=extensions&amp;reg_ext=' . $ext_name . '%}">{--ADMIN_REGISTER_EXTENSION--}</a>';
+
+       // Is the given extension non-productive?
+       if (!isExtensionProductive($ext_name)) {
+               // Non-productive code
+               $OUT = '<em style="cursor:help" class="admin_note" title="{%message,ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK_TITLE=' . $ext_name . '%}">{--ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK--}</em>';
+       } // END - if
+
+       // Return code
+       return $OUT;
+}
+
 // [EOF]
 ?>