X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ffunctions.php;h=2edf08a02c0c6f72f466af45dc1048472f4f64b0;hb=a82b69abcd219f6772f4e6e89654e345b816abab;hp=8b1f6ce32bf7605360c93c05d83824976bbda41d;hpb=e45e218c4f629ec63f0788cab231bfc88b3fa46e;p=mailer.git
diff --git a/inc/functions.php b/inc/functions.php
index 8b1f6ce32b..2edf08a02c 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -45,7 +45,9 @@ if (!defined('__SECURITY')) {
// Output HTML code directly or 'render' it. You addionally switch the new-line character off
function outputHtml ($htmlCode, $newLine = true) {
// Init output
- if (!isset($GLOBALS['output'])) $GLOBALS['output'] = '';
+ if (!isset($GLOBALS['output'])) {
+ $GLOBALS['output'] = '';
+ } // END - if
// Transfer username
$username = getMessage('USERNAME_UNKNOWN');
@@ -83,7 +85,7 @@ function outputHtml ($htmlCode, $newLine = true) {
default:
// Huh, something goes wrong or maybe you have edited config.php ???
- app_die(__FUNCTION__, __LINE__, '{--FATAL_ERROR--}: {--LANG_NO_RENDER_DIRECT--}');
+ debug_report_bug(__FUNCTION__, __LINE__, '{--FATAL_ERROR--}: {--LANG_NO_RENDER_DIRECT--}');
break;
} // END - switch
} elseif ((getPhpCaching() == 'on') && ((!isset($GLOBALS['header'])) || (count($GLOBALS['header']) == 0))) {
@@ -95,11 +97,6 @@ function outputHtml ($htmlCode, $newLine = true) {
clearOutputBuffer();
} // END - if
- // Extension 'rewrite' installed?
- if ((isExtensionActive('rewrite')) && (getOutputMode() != 1)) {
- $GLOBALS['output'] = rewriteLinksInCode($GLOBALS['output']);
- } // END - if
-
// Send all HTTP headers
sendHttpHeaders();
@@ -109,11 +106,6 @@ function outputHtml ($htmlCode, $newLine = true) {
// Output code here, DO NOT REMOVE! ;-)
outputRawCode($GLOBALS['output']);
} elseif ((getConfig('OUTPUT_MODE') == 'render') && (!empty($GLOBALS['output']))) {
- // Rewrite links when rewrite extension is active
- if ((isExtensionActive('rewrite')) && (getOutputMode() != 1)) {
- $GLOBALS['output'] = rewriteLinksInCode($GLOBALS['output']);
- } // END - if
-
// Send all HTTP headers
sendHttpHeaders();
@@ -134,7 +126,7 @@ function sendHttpHeaders () {
$now = gmdate('D, d M Y H:i:s') . ' GMT';
// Send HTTP header
- sendHeader('HTTP/1.1 200 OK');
+ sendHeader('HTTP/1.1 ' . getHttpStatus());
// General headers for no caching
sendHeader('Expires: ' . $now); // RFC2616 - Section 14.21
@@ -149,32 +141,42 @@ function sendHttpHeaders () {
// Compiles the final output
function compileFinalOutput () {
// Init counter
- $cnt = '0';
+ $cnt = 0;
// Add page header and footer
addPageHeaderFooter();
// Compile all out
- while (((strpos($GLOBALS['output'], '{--') > 0) || (strpos($GLOBALS['output'], '{!') > 0) || (strpos($GLOBALS['output'], '{?') > 0)) && ($cnt < 3)) {
+ while (((strpos($GLOBALS['output'], '{--') !== false) || (strpos($GLOBALS['output'], '{DQUOTE}') !== false) || (strpos($GLOBALS['output'], '{!') !== false) || (strpos($GLOBALS['output'], '{?') !== false) || (strpos($GLOBALS['output'], '{%') !== false)) && ($cnt < 3)) {
// Init common variables
$content = array();
$newContent = '';
// Compile it
- $eval = "\$newContent = \"".compileCode(escapeQuotes($GLOBALS['output']))."\";";
+ //* DEBUG: */ print '
'.htmlentities($GLOBALS['output']).'
';
+ $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($GLOBALS['output']))) . '";';
+ //* DEBUG: */ die(''.htmlentities($eval).'
');
eval($eval);
+ //* DEBUG: */ die(''.htmlentities($newContent).'
');
// Was that eval okay?
if (empty($newContent)) {
// Something went wrong!
- debug_report_bug('Evaluation error:' . linenumberCode($eval) . '
', false);
+ debug_report_bug(__FUNCTION__, __LINE__, 'Evaluation error:' . linenumberCode($eval) . '
', false);
} // END - if
+
+ // Use it again
$GLOBALS['output'] = $newContent;
// Count round
$cnt++;
} // END - while
+ // Extension 'rewrite' installed?
+ if ((isExtensionActive('rewrite')) && (getOutputMode() != 1)) {
+ $GLOBALS['output'] = rewriteLinksInCode($GLOBALS['output']);
+ } // END - if
+
// Compress it?
if (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos('gzip', $_SERVER['HTTP_ACCEPT_ENCODING']) !== null)) {
// Compress it for HTTP gzip
@@ -254,7 +256,7 @@ function getTotalFatalErrors () {
// Load a template file and return it's content (only it's name; do not use ' or ")
function loadTemplate ($template, $return = false, $content = array()) {
// @TODO Remove this sanity-check if all is fine
- if (!is_bool($return)) debug_report_bug('return is not bool (' . gettype($return) . ')');
+ if (!is_bool($return)) debug_report_bug(__FUNCTION__, __LINE__, 'return is not bool (' . gettype($return) . ')');
// @TODO Try to rewrite all $DATA to $content
global $DATA;
@@ -322,9 +324,6 @@ function loadTemplate ($template, $return = false, $content = array()) {
// Cache the eval() command here
$GLOBALS['template_eval'][$template] = $eval;
-
- // Eval the code
- eval($GLOBALS['template_eval'][$template]);
} elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) {
// Only admins shall see this warning or when installation mode is active
$ret = '
{--TEMPLATE_404--}
@@ -339,10 +338,13 @@ function loadTemplate ($template, $return = false, $content = array()) {
// No file!
$GLOBALS['template_eval'][$template] = '404';
}
- } else {
+ }
+
+ // Code set?
+ if ((isset($GLOBALS['template_eval'][$template])) && ($GLOBALS['template_eval'][$template] != '404')) {
// Eval the code
eval($GLOBALS['template_eval'][$template]);
- }
+ } // END - if
// Do we have some content to output or return?
if (!empty($ret)) {
@@ -837,7 +839,7 @@ function translateGender ($gender) {
case 'C': $ret = getMessage('GENDER_C'); break;
default:
// Please report bugs on unknown genders
- debug_report_bug(sprintf("Unknown gender %s detected.", $gender));
+ debug_report_bug(__FUNCTION__, __LINE__, sprintf("Unknown gender %s detected.", $gender));
break;
} // END - switch
@@ -862,7 +864,7 @@ function translateUserStatus ($status) {
default:
// Please report all unknown status
- debug_report_bug(sprintf("Unknown status %s detected.", $status));
+ debug_report_bug(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected.", $status));
break;
} // END - switch
@@ -870,6 +872,34 @@ function translateUserStatus ($status) {
return $ret;
}
+// "Translates" 'visible' and 'locked' to a CSS class
+function translateMenuVisibleLocked ($content, $prefix = '') {
+ // Translate 'visible' and keep an eye on the prefix
+ switch ($content[$prefix . 'visible']) {
+ // Should be visible
+ case 'Y': $content[$prefix . 'visible_css'] = $prefix . 'menu_visible' ; break;
+ case 'N': $content[$prefix . 'visible_css'] = $prefix . 'menu_invisible'; break;
+ default:
+ // Please report this
+ debug_report_bug('Unsupported visible value detected. content='.print_r($content, true).'
');
+ break;
+ } // END - switch
+
+ // Translate 'locked' and keep an eye on the prefix
+ switch ($content[$prefix . 'locked']) {
+ // Should be locked
+ case 'Y': $content[$prefix . 'locked_css'] = $prefix . 'menu_locked' ; break;
+ case 'N': $content[$prefix . 'locked_css'] = $prefix . 'menu_unlocked'; break;
+ default:
+ // Please report this
+ debug_report_bug('Unsupported locked value detected. content='.print_r($content, true).'
');
+ break;
+ } // END - switch
+
+ // Return the resulting array
+ return $content;
+}
+
// Generates an URL for the dereferer
function generateDerefererUrl ($URL) {
// Don't de-refer our own links!
@@ -952,7 +982,7 @@ function redirectToUrl ($URL, $allowSpider = true) {
} // END - if
// Three different ways to debug...
- //* DEBUG: */ debug_report_bug(sprintf("%s[%s:] URL=%s", __FUNCTION__, __LINE__, $URL));
+ //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, sprintf("%s[%s:] URL=%s", __FUNCTION__, __LINE__, $URL));
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'URL=' . $URL);
//* DEBUG: */ die($URL);
@@ -970,6 +1000,9 @@ function redirectToUrl ($URL, $allowSpider = true) {
// Clear own output buffer
$GLOBALS['output'] = '';
+ // Set header
+ setHttpStatus('302 Found');
+
// Load URL when headers are not sent
sendHeader('Location: '.str_replace('&', '&', $URL));
} else {
@@ -991,7 +1024,7 @@ function redirectToConfiguredUrl ($configEntry) {
// Is this URL set?
if (is_null($URL)) {
// Then abort here
- debug_report_bug(sprintf("Configuration entry %s is not set!", $configEntry));
+ debug_report_bug(__FUNCTION__, __LINE__, sprintf("Configuration entry %s is not set!", $configEntry));
} // END - if
// Load the URL
@@ -1165,30 +1198,30 @@ function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 're
if ($type == 'yn') {
// This is a yes/no selection only!
- if ($id > 0) $prefix .= "[" . $id."]";
- $OUT .= "