]> git.mxchange.org Git - mailer.git/blobdiff - inc/template-functions.php
New wrapper functions introduced
[mailer.git] / inc / template-functions.php
index 768cf677c45cb627d5372797c3281dc2222a60fd..1fe104422b7b5b360dae7de3f87fbb9765ce28fe 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 (getOutputMode() != 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);
@@ -126,7 +107,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 +136,7 @@ function outputHtml ($htmlCode, $newLine = true) {
 
                        default:
                                // Huh, something goes wrong or maybe you have edited config.php ???
-                               debug_report_bug(__FUNCTION__, __LINE__, '<strong>{--FATAL_ERROR--}:</strong> {--LANG_NO_RENDER_DIRECT--}');
+                               debug_report_bug(__FUNCTION__, __LINE__, '<strong>{--FATAL_ERROR--}:</strong> {--NO_RENDER_DIRECT--}');
                                break;
                } // END - switch
        } elseif ((getPhpCaching() == 'on') && ((!isset($GLOBALS['header'])) || (count($GLOBALS['header']) == 0))) {
@@ -175,7 +156,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,7 +180,7 @@ 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
 
@@ -226,7 +207,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,15 +215,15 @@ 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('<pre>'.encodeEntities($code).'</pre>');
-               $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code))) . '";';
-               //* DEBUG: */ if ($insertComments) die('<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('<pre>'.linenumberCode($eval).'</pre>');
                eval($eval);
                //* DEBUG: */ die('<pre>'.encodeEntities($newContent).'</pre>');
 
@@ -296,12 +277,10 @@ function loadTemplate ($template, $return = false, $content = array()) {
                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?
@@ -322,7 +301,7 @@ function loadTemplate ($template, $return = false, $content = array()) {
                        $ret = '';
                        if ((strpos($GLOBALS['tpl_content'], '$') !== false) || (strpos($GLOBALS['tpl_content'], '{--') !== false) || (strpos($GLOBALS['tpl_content'], '{?') !== false) || (strpos($GLOBALS['tpl_content'], '{%') !== false)) {
                                // Normal HTML output?
-                               if (getOutputMode() == '0') {
+                               if (isHtmlOutputMode()) {
                                        // Add surrounding HTML comments to help finding bugs faster
                                        $ret = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'] . '<!-- Template ' . $template . ' - End //-->';
 
@@ -444,12 +423,12 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') {
        // Is content an array?
        if (is_array($content)) {
                // Add expiration to array
-               if ((isConfigEntrySet('auto_purge')) && (getConfig('auto_purge') == '0')) {
+               if ((isConfigEntrySet('auto_purge')) && (getAutoPurge() == '0')) {
                        // Will never expire!
                        $content['expiration'] = '{--MAIL_WILL_NEVER_EXPIRE--}';
                } elseif (isConfigEntrySet('auto_purge')) {
                        // Create nice date string
-                       $content['expiration'] = createFancyTime(getConfig('auto_purge'));
+                       $content['expiration'] = createFancyTime(getAutoPurge());
                } else {
                        // Missing entry
                        $content['expiration'] = '{--MAIL_NO_CONFIG_AUTO_PURGE--}';
@@ -458,7 +437,7 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') {
 
        // Load user's data
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "UID={$userid},template={$template},content[]=".gettype($content));
-       if (($userid > 0) && (is_array($content))) {
+       if ((isValidUserId($userid)) && (is_array($content))) {
                // If nickname extension is installed, fetch nickname as well
                if ((isExtensionActive('nickname')) && (isNicknameUsed($userid))) {
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "NICKNAME!<br />");
@@ -479,7 +458,7 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') {
        } // END - if
 
        // Base directory
-       $basePath = sprintf("%stemplates/%s/emails/", getConfig('PATH'), getLanguage());
+       $basePath = sprintf("%stemplates/%s/emails/", getPath(), getLanguage());
 
        // Detect extra path
        $extraPath = detectExtraTemplatePath($template);
@@ -793,7 +772,7 @@ function generateImageOrCode ($img_code, $headerSent = true) {
 
        // Load image
        $img = sprintf("%s/theme/%s/images/code_bg.%s",
-               getConfig('PATH'),
+               getPath(),
                getCurrentTheme(),
                getConfig('img_type')
        );
@@ -1165,7 +1144,7 @@ function debug_report_bug ($F, $L, $message = '', $sendEmail = true) {
        // Is this already called?
        if (isset($GLOBALS[__FUNCTION__])) {
                // Other backtrace
-               print 'Message:'.$message.'<br />Backtrace:<pre>';
+               print 'Message:' . $message . '<br />Backtrace:<pre>';
                debug_print_backtrace();
                die('</pre>');
        } // END - if
@@ -1188,11 +1167,11 @@ function debug_report_bug ($F, $L, $message = '', $sendEmail = true) {
        } // END - if
 
        // Add output
-       $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(getConfig('PATH'), '', getConfig('CACHE_PATH')) . 'debug.log</strong> in your report (you can now attach files):<pre>';
+       $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())) {
@@ -1347,7 +1326,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()) {
@@ -1356,33 +1335,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--}';
@@ -1450,6 +1429,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));
        }
@@ -1519,7 +1501,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--}';
@@ -1533,7 +1515,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!
@@ -1561,12 +1543,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 = '<span class="member_done">{--MYDATA_MAIL_SENT--}</span>';
+                       $content = '<span class="member_done">{--MEMBER_MYDATA_MAIL_SENT--}</span>';
                }
        } // END - if
 
@@ -1657,7 +1639,7 @@ function generateCacheFqfn ($template, $mode = 'html') {
                // Generate the FQFN
                $GLOBALS['template_cache_fqfn'][$template] = sprintf(
                        "%s_compiled/%s/%s.tpl.cache",
-                       getConfig('CACHE_PATH'),
+                       getCachePath(),
                        $mode,
                        $template
                );
@@ -1682,5 +1664,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]
 ?>