X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ffunctions.php;h=bac7b16a82c2a885ece8cd0f7738929d43bf0ecf;hb=abbe2258537989f571d4e4ab78083f9e2d56d96a;hp=473c494382dfc52f9e3d88e2e1781bc076e9099b;hpb=cff2f4cbd76ae52dee1981c75b49a0f158050b95;p=mailer.git
diff --git a/inc/functions.php b/inc/functions.php
index 473c494382..bac7b16a82 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -45,11 +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'] = '';
-
- // Transfer username
- $username = getMessage('USERNAME_UNKNOWN');
- if (isset($GLOBALS['username'])) $username = getUsername();
+ if (!isset($GLOBALS['output'])) {
+ $GLOBALS['output'] = '';
+ } // END - if
// Do we have HTML-Code here?
if (!empty($htmlCode)) {
@@ -83,7 +81,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 +93,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 +102,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 +122,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
@@ -148,32 +136,16 @@ function sendHttpHeaders () {
// Compiles the final output
function compileFinalOutput () {
- // Init counter
- $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)) {
- // Init common variables
- $content = array();
- $newContent = '';
+ // Do the final compilation
+ $GLOBALS['output'] = doFinalCompilation($GLOBALS['output']);
- // Compile it
- $eval = "\$newContent = \"".compileCode(escapeQuotes($GLOBALS['output']))."\";";
- eval($eval);
-
- // Was that eval okay?
- if (empty($newContent)) {
- // Something went wrong!
- debug_report_bug('Evaluation error:
' . linenumberCode($eval) . ' ', false);
- } // END - if
- $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)) {
@@ -197,6 +169,44 @@ function compileFinalOutput () {
flushHeaders();
}
+// Main compilation loop
+function doFinalCompilation ($code, $insertComments = true) {
+ // Insert comments?
+ enableTemplateHtml($insertComments);
+
+ // Init counter
+ $cnt = 0;
+
+ // Compile all out
+ while (((strpos($code, '{--') !== false) || (strpos($code, '{DQUOTE}') !== false) || (strpos($code, '{!') !== false) || (strpos($code, '{?') !== false) || (strpos($code, '{%') !== false)) && ($cnt < 3)) {
+ // Init common variables
+ $content = array();
+ $newContent = '';
+
+ // Compile it
+ //* DEBUG: */ print ''.htmlentities($code).' ';
+ $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code))) . '";';
+ //* DEBUG: */ die(''.htmlentities($eval).' ');
+ eval($eval);
+ //* DEBUG: */ die(''.htmlentities($newContent).' ');
+
+ // Was that eval okay?
+ if (empty($newContent)) {
+ // Something went wrong!
+ debug_report_bug(__FUNCTION__, __LINE__, 'Evaluation error:' . linenumberCode($eval) . ' ', false);
+ } // END - if
+
+ // Use it again
+ $code = $newContent;
+
+ // Count round
+ $cnt++;
+ } // END - while
+
+ // Return the compiled code
+ return $code;
+}
+
// Output the raw HTML code
function outputRawCode ($htmlCode) {
// Output stripped HTML code to avoid broken JavaScript code, etc.
@@ -254,7 +264,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;
@@ -264,9 +274,6 @@ function loadTemplate ($template, $return = false, $content = array()) {
// Evaluate the cache
eval(readTemplateCache($template));
} elseif (!isset($GLOBALS['template_eval'][$template])) {
- // Add more variables which you want to use in your template files
- $username = getUsername();
-
// Make all template names lowercase
$template = strtolower($template);
@@ -322,9 +329,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 +343,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)) {
@@ -562,7 +569,7 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = '
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "TO={$toEmail} ");
// Check for PHPMailer or debug-mode
- if (!checkPhpMailerUsage()) {
+ if ((!checkPhpMailerUsage()) || (isDebugModeEnabled())) {
// Not in PHPMailer-Mode
if (empty($mailHeader)) {
// Load email header template
@@ -571,24 +578,12 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = '
// Append header
$mailHeader .= loadEmailTemplate('header');
}
- } elseif (isDebugModeEnabled()) {
- if (empty($mailHeader)) {
- // Load email header template
- $mailHeader = loadEmailTemplate('header');
- } else {
- // Append header
- $mailHeader .= loadEmailTemplate('header');
- }
- }
-
- // Compile "TO"
- eval('$toEmail = "' . compileRawCode(escapeQuotes($toEmail)) . '";');
-
- // Compile "MSG"
- eval('$message = "' . str_replace('$', '$', compileRawCode(escapeQuotes($message))) . '";');
+ } // END - if
// Fix HTML parameter (default is no!)
if (empty($isHtml)) $isHtml = 'N';
+
+ // Debug mode enabled?
if (isDebugModeEnabled()) {
// In debug mode we want to display the mail instead of sending it away so we can debug this part
outputHtml('
@@ -597,6 +592,9 @@ To : ' . htmlentities(utf8_decode($toEmail)) . '
Subject : ' . htmlentities(utf8_decode($subject)) . '
Message : ' . htmlentities(utf8_decode($message)) . '
');
+
+ // This is always fine
+ return true;
} elseif (($isHtml == 'Y') && (isExtensionActive('html_mail'))) {
// Send mail as HTML away
return sendHtmlEmail($toEmail, $subject, $message, $mailHeader);
@@ -607,6 +605,9 @@ Message : ' . htmlentities(utf8_decode($message)) . '
// Problem found!
return sendRawEmail(getConfig('WEBMASTER'), '[PROBLEM:]' . $subject, $message, $mailHeader);
}
+
+ // Why did we end up here? This should not happen
+ debug_report_bug('Ending up: template=' . $template);
}
// Check to use wether legacy mail() command or PHPMailer class
@@ -619,10 +620,10 @@ function checkPhpMailerUsage() {
// Send out a raw email with PHPMailer class or legacy mail() command
function sendRawEmail ($toEmail, $subject, $message, $from) {
// Just compile all again, to put out all configs, etc.
- eval('$toEmail = decodeEntities("' . compileRawCode(escapeQuotes($toEmail)) . '");');
- eval('$subject = decodeEntities("' . compileRawCode(escapeQuotes($subject)) . '");');
- eval('$message = decodeEntities("' . compileRawCode(escapeQuotes($message)) . '");');
- eval('$from = decodeEntities("' . compileRawCode(escapeQuotes($from)) . '");');
+ eval('$toEmail = decodeEntities("' . doFinalCompilation(compileRawCode(escapeQuotes($toEmail)), false) . '");');
+ eval('$subject = decodeEntities("' . doFinalCompilation(compileRawCode(escapeQuotes($subject)), false) . '");');
+ eval('$message = decodeEntities("' . doFinalCompilation(compileRawCode(escapeQuotes($message)), false) . '");');
+ eval('$from = decodeEntities("' . doFinalCompilation(compileRawCode(escapeQuotes($from)) , false) . '");');
// Shall we use PHPMailer class or legacy mode?
if (checkPhpMailerUsage()) {
@@ -759,7 +760,7 @@ function translateYesNo ($yn) {
// Log unknown value
logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown value %s. Expected Y/N!", $yn));
break;
- }
+ } // END - switch
// Return it
return $translated;
@@ -819,7 +820,7 @@ function translateComma ($dotted, $cut = true, $max = '0') {
default: // All others
$dotted = number_format($dotted, $maxComma, '.', ',');
break;
- }
+ } // END - switch
// Return translated value
return $dotted;
@@ -837,7 +838,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 +863,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 +871,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,26 +981,29 @@ 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);
// Simple probe for bots/spiders from search engines
if ((isSpider()) && ($allowSpider === true)) {
- // Secure the URL against bad things such als HTML insertions and so on...
- $URL = secureString($URL);
-
// Set content-type here to fix a missing array element
setContentType('text/html');
// Output new location link as anchor
- outputHtml('' . $URL . ' ');
+ outputHtml('' . secureString($URL) . ' ');
} elseif (!headers_sent()) {
+ // Clear output buffer
+ clearOutputBuffer();
+
// Clear own output buffer
$GLOBALS['output'] = '';
+ // Set header
+ setHttpStatus('302 Found');
+
// Load URL when headers are not sent
- sendHeader('Location: '.str_replace('&', '&', $URL));
+ sendRawRedirect(doFinalCompilation(str_replace('&', '&', $URL), false));
} else {
// Output error message
loadInclude('inc/header.php');
@@ -985,17 +1017,8 @@ function redirectToUrl ($URL, $allowSpider = true) {
// Wrapper for redirectToUrl but URL comes from a configuration entry
function redirectToConfiguredUrl ($configEntry) {
- // Get the URL
- $URL = getConfig($configEntry);
-
- // Is this URL set?
- if (is_null($URL)) {
- // Then abort here
- debug_report_bug(sprintf("Configuration entry %s is not set!", $configEntry));
- } // END - if
-
// Load the URL
- redirectToUrl($URL);
+ redirectToUrl(getConfig($configEntry));
}
// Compiles the given HTML/mail code
@@ -1015,8 +1038,11 @@ function compileCode ($code, $simple = false, $constants = true, $full = true) {
// Get timing
$compiled = microtime(true);
- // Add timing
- $code .= '';
+ // Add timing if enabled
+ if (isTemplateHtml()) {
+ // Add timing, this should be disabled in
+ $code .= '';
+ } // END - if
// Return compiled code
return $code;
@@ -1044,11 +1070,11 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
if ($constants === true) {
// BEFORE 0.2.1 : Language and data constants
// WITH 0.2.1+ : Only language constants
- $code = str_replace('{--', "\" . getMessage('", str_replace('--}', "') . \"", $code));
+ $code = str_replace('{--', "{DQUOTE} . getMessage('", str_replace('--}', "') . {DQUOTE}", $code));
// BEFORE 0.2.1 : Not used
// WITH 0.2.1+ : Data constants
- $code = str_replace('{!', "\" . constant('", str_replace('!}', "') . \"", $code));
+ $code = str_replace('{!', "{DQUOTE} . constant('", str_replace('!}', "') . {DQUOTE}", $code));
} // END - if
// Compile QUOT and other non-HTML codes
@@ -1165,30 +1191,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 .= " \n";
+ if ($id > 0) $prefix .= '[' . $id . ']';
+ $OUT .= '';
} else {
// Begin with regular selection box here
if (!empty($prefix)) $prefix .= "_";
$type2 = $type;
- if ($id > 0) $type2 .= "[" . $id."]";
- $OUT .= " \n";
+ if ($id > 0) $type2 .= '[' . $id . ']';
+ $OUT .= '';
}
switch ($type) {
case 'day': // Day
for ($idx = 1; $idx < 32; $idx++) {
- $OUT .= "\n";
+ $OUT .= '>' . $idx . ' ';
} // END - for
break;
case 'month': // Month
- foreach ($GLOBALS['month_descr'] as $month => $descr) {
- $OUT .= "\n";
+ foreach ($GLOBALS['month_descr'] as $idx => $descr) {
+ $OUT .= ' ';
} // END - for
break;
@@ -1211,19 +1237,18 @@ function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 're
// Check if the default value is larger than minimum and bigger than actual year
if (($default > $minYear) && ($default >= $year)) {
for ($idx = $year; $idx < ($year + 11); $idx++) {
- $OUT .= " \n";
+ $OUT .= '>' . $idx . ' ';
} // END - for
} elseif ($default == -1) {
// Current year minus 1
- for ($idx = $startYear; $idx <= ($year + 1); $idx++)
- {
- $OUT .= "" . $idx." \n";
- }
+ for ($idx = $startYear; $idx <= ($year + 1); $idx++) {
+ $OUT .= '' . $idx . ' ';
+ } // END - for
} else {
// Get current year and subtract the configured minimum age
- $OUT .= "<" . $minYear." \n";
+ $OUT .= '<' . $minYear . ' ';
// Calculate earliest year depending on extension version
if (isExtensionInstalledAndNewer('order', '0.2.1')) {
// Use configured minimum age
@@ -1235,41 +1260,41 @@ function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 're
// Construct year selection list
for ($idx = $minYear; $idx <= $year; $idx++) {
- $OUT .= "\n";
+ $OUT .= '>' . $idx . ' ';
} // END - for
}
break;
case 'sec':
case 'min':
- for ($idx = '0'; $idx < 60; $idx+=5) {
+ for ($idx = 0; $idx < 60; $idx+=5) {
if (strlen($idx) == 1) $idx = '0' . $idx;
- $OUT .= "\n";
+ $OUT .= '>' . $idx . ' ';
} // END - for
break;
case 'hour':
- for ($idx = '0'; $idx < 24; $idx++) {
+ for ($idx = 0; $idx < 24; $idx++) {
if (strlen($idx) == 1) $idx = '0' . $idx;
- $OUT .= "\n";
+ $OUT .= '>' . $idx . ' ';
} // END - for
break;
case 'yn':
- $OUT .= " 6) || (empty($img_code)) || (getConfig('code_length') == '0')) {
// Stop execution of function here because of over-sized code length
- debug_report_bug('img_code ' . $img_code .' has invalid length. img_code()=' . strlen($img_code) . ' code_length=' . getConfig('code_length'));
+ debug_report_bug(__FUNCTION__, __LINE__, 'img_code ' . $img_code .' has invalid length. img_code()=' . strlen($img_code) . ' code_length=' . getConfig('code_length'));
} elseif ($headerSent === false) {
// Return an HTML code here
- return " \n";
+ return ' ';
}
// Load image
@@ -1368,8 +1393,7 @@ function generateImageOrCode ($img_code, $headerSent = true) {
// Is it readable?
if (isFileReadable($img)) {
// Switch image type
- switch (getConfig('img_type'))
- {
+ switch (getConfig('img_type')) {
case 'jpg':
// Okay, load image and hide all errors
$image = imagecreatefromjpeg($img);
@@ -1379,7 +1403,7 @@ function generateImageOrCode ($img_code, $headerSent = true) {
// Okay, load image and hide all errors
$image = imagecreatefrompng($img);
break;
- }
+ } // END - switch
} else {
// Exit function here
logDebugMessage(__FUNCTION__, __LINE__, sprintf("File for image type %s not found.", getConfig('img_type')));
@@ -1399,7 +1423,7 @@ function generateImageOrCode ($img_code, $headerSent = true) {
switch (getConfig('img_type')) {
case 'jpg': imagejpeg($image); break;
case 'png': imagepng($image); break;
- }
+ } // END - switch
// Remove image from memory
imagedestroy($image);
@@ -1473,137 +1497,137 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align =
);
} else {
// Generate table
- $OUT = "\n";
- $OUT .= "
\n";
- $OUT .= "\n";
+ $OUT = '';
+ $OUT .= '
';
+ $OUT .= '';
if (isInString('Y', $display) || (empty($display))) {
- $OUT .= " {--_YEARS--}
\n";
- }
+ $OUT .= '{--_YEARS--}
';
+ } // END - if
if (isInString('M', $display) || (empty($display))) {
- $OUT .= " {--_MONTHS--}
\n";
- }
+ $OUT .= '{--_MONTHS--}
';
+ } // END - if
if (isInString('W', $display) || (empty($display))) {
- $OUT .= " {--_WEEKS--}
\n";
- }
+ $OUT .= '{--_WEEKS--}
';
+ } // END - if
if (isInString('D', $display) || (empty($display))) {
- $OUT .= " {--_DAYS--}
\n";
- }
+ $OUT .= '{--_DAYS--}
';
+ } // END - if
if (isInString('h', $display) || (empty($display))) {
- $OUT .= " {--_HOURS--}
\n";
- }
+ $OUT .= '{--_HOURS--}
';
+ } // END - if
if (isInString('m', $display) || (empty($display))) {
- $OUT .= " {--_MINUTES--}
\n";
- }
+ $OUT .= '{--_MINUTES--}
';
+ } // END - if
if (isInString('s', $display) || (empty($display))) {
- $OUT .= " {--_SECONDS--}
\n";
- }
+ $OUT .= '{--_SECONDS--}
';
+ } // END - if
- $OUT .= " \n";
- $OUT .= "\n";
+ $OUT .= ' ';
+ $OUT .= '';
if (isInString('Y', $display) || (empty($display))) {
// Generate year selection
- $OUT .= " \n";
- for ($idx = '0'; $idx <= 10; $idx++) {
- $OUT .= " ';
+ for ($idx = 0; $idx <= 10; $idx++) {
+ $OUT .= ' \n";
- }
- $OUT .= " \n";
+ $OUT .= '>' . $idx . '';
+ } // END - for
+ $OUT .= '';
} else {
$OUT .= ' ';
}
if (isInString('M', $display) || (empty($display))) {
// Generate month selection
- $OUT .= " \n";
- for ($idx = '0'; $idx <= 11; $idx++)
- {
- $OUT .= " ';
+ for ($idx = 0; $idx <= 11; $idx++) {
+ $OUT .= ' \n";
- }
- $OUT .= " \n";
+ $OUT .= '>' . $idx . '';
+ } // END - for
+ $OUT .= '';
} else {
$OUT .= ' ';
}
if (isInString('W', $display) || (empty($display))) {
// Generate week selection
- $OUT .= " \n";
- for ($idx = '0'; $idx <= 4; $idx++) {
- $OUT .= " ';
+ for ($idx = 0; $idx <= 4; $idx++) {
+ $OUT .= ' \n";
- }
- $OUT .= " \n";
+ $OUT .= '>' . $idx . '';
+ } // END - for
+ $OUT .= '';
} else {
$OUT .= ' ';
}
if (isInString('D', $display) || (empty($display))) {
// Generate day selection
- $OUT .= " \n";
- for ($idx = '0'; $idx <= 31; $idx++) {
- $OUT .= " ';
+ for ($idx = 0; $idx <= 31; $idx++) {
+ $OUT .= ' \n";
- }
- $OUT .= " \n";
+ $OUT .= '>' . $idx . '';
+ } // END - for
+ $OUT .= '';
} else {
$OUT .= ' ';
}
if (isInString('h', $display) || (empty($display))) {
// Generate hour selection
- $OUT .= " \n";
- for ($idx = '0'; $idx <= 23; $idx++) {
- $OUT .= " ';
+ for ($idx = 0; $idx <= 23; $idx++) {
+ $OUT .= ' \n";
- }
- $OUT .= " \n";
+ $OUT .= '>' . $idx . '';
+ } // END - for
+ $OUT .= '';
} else {
$OUT .= ' ';
}
if (isInString('m', $display) || (empty($display))) {
// Generate minute selection
- $OUT .= " \n";
- for ($idx = '0'; $idx <= 59; $idx++) {
- $OUT .= " ';
+ for ($idx = 0; $idx <= 59; $idx++) {
+ $OUT .= ' \n";
- }
- $OUT .= " \n";
+ $OUT .= '>' . $idx . '';
+ } // END - for
+ $OUT .= '';
} else {
$OUT .= ' ';
}
if (isInString('s', $display) || (empty($display))) {
// Generate second selection
- $OUT .= " \n";
- for ($idx = '0'; $idx <= 59; $idx++) {
- $OUT .= " ';
+ for ($idx = 0; $idx <= 59; $idx++) {
+ $OUT .= ' \n";
- }
- $OUT .= " \n";
+ $OUT .= '>' . $idx . '';
+ } // END - for
+ $OUT .= '';
} else {
$OUT .= ' ';
}
- $OUT .= " \n";
- $OUT .= "
\n";
- $OUT .= "
\n";
- // Return generated HTML code
+ $OUT .= ' ';
+ $OUT .= '
';
+ $OUT .= '
';
}
+
+ // Return generated HTML code
return $OUT;
}
@@ -1616,22 +1640,31 @@ function createTimestampFromSelections ($prefix, $postData) {
$SWITCH = '0';
$TEST = date('Y', time()) / 4;
$M1 = date('m', time());
+
// If so and if current time is before 02/29 and estimated time is after 02/29 then add 86400 seconds (one day)
if ((floor($TEST) == $TEST) && ($M1 == '02') && ($postData[$prefix . '_mo'] > '02')) $SWITCH = getConfig('ONE_DAY');
+
// First add years...
$ret += $postData[$prefix . '_ye'] * (31536000 + $SWITCH);
+
// Next months...
$ret += $postData[$prefix . '_mo'] * 2628000;
+
// Next weeks
$ret += $postData[$prefix . '_we'] * 604800;
+
// Next days...
$ret += $postData[$prefix . '_da'] * 86400;
+
// Next hours...
$ret += $postData[$prefix . '_ho'] * 3600;
+
// Next minutes..
$ret += $postData[$prefix . '_mi'] * 60;
+
// And at last seconds...
$ret += $postData[$prefix . '_se'];
+
// Return calculated value
return $ret;
}
@@ -1644,7 +1677,7 @@ function createFancyTime ($stamp) {
foreach($data as $k => $v) {
if ($v > 0) {
// Value is greater than 0 "eval" data to return string
- eval("\$ret .= \", \".\$v.\" {--_".strtoupper($k)."--}\";");
+ eval('$ret .= ", ".$v." {--_' . strtoupper($k) . '--}";');
break;
} // END - if
} // END - foreach
@@ -1655,7 +1688,7 @@ function createFancyTime ($stamp) {
$ret = substr($ret, 2);
} else {
// Zero seconds
- $ret = "0 {--_SECONDS--}";
+ $ret = '0 {--_SECONDS--}';
}
// Return fancy time string
@@ -1666,8 +1699,8 @@ function createFancyTime ($stamp) {
function addEmailNavigation ($PAGES, $offset, $show_form, $colspan, $return=false) {
$TOP = '';
if ($show_form === false) {
- $TOP = " top";
- }
+ $TOP = ' top';
+ } // END - if
$NAV = '';
for ($page = 1; $page <= $PAGES; $page++) {
@@ -1695,7 +1728,10 @@ function addEmailNavigation ($PAGES, $offset, $show_form, $colspan, $return=fals
}
// Add seperator if we have not yet reached total pages
- if ($page < $PAGES) $NAV .= ' | ';
+ if ($page < $PAGES) {
+ // Add it
+ $NAV .= '|';
+ } // END - if
} // END - for
// Define constants only once
@@ -1734,7 +1770,7 @@ function extractHostnameFromUrl (&$script) {
if (isInString('/', $host)) $host = substr($host, 0, strpos($host, '/'));
// Generate relative URL
- //* DEBUG: */ print("SCRIPT=" . $script.' ');
+ //* DEBUG: */ print('SCRIPT=' . $script.' ');
if (substr(strtolower($script), 0, 7) == 'http://') {
// But only if http:// is in front!
$script = substr($script, (strlen($url) + 7));
@@ -1743,7 +1779,7 @@ function extractHostnameFromUrl (&$script) {
$script = substr($script, (strlen($url) + 8));
}
- //* DEBUG: */ print("SCRIPT=" . $script.' ');
+ //* DEBUG: */ print('SCRIPT=' . $script.' ');
if (substr($script, 0, 1) == '/') $script = substr($script, 1);
// Return host name
@@ -1857,7 +1893,7 @@ function sendRawRequest ($host, $request) {
$resolver = new HostnameResolver();
// Open connection
- //* DEBUG: */ die("SCRIPT=" . $script.' ');
+ //* DEBUG: */ die('SCRIPT=' . $script.' ');
if ($useProxy === true) {
// Resolve hostname into IP address
$ip = $resolver->resolveHostname(compileRawCode(getConfig('proxy_host')));
@@ -2062,13 +2098,13 @@ function isUrlValid ($URL, $compile=true) {
// Generate a list of administrative links to a given userid
function generateMemberAdminActionLinks ($userid, $status = '') {
// Make sure userid is a number
- if ($userid != bigintval($userid)) debug_report_bug('userid is not a number!');
+ if ($userid != bigintval($userid)) debug_report_bug(__FUNCTION__, __LINE__, 'userid is not a number!');
// Define all main targets
$targetArray = array('del_user', 'edit_user', 'lock_user', 'add_points', 'sub_points');
// Begin of navigation links
- $OUT = '[ ';
+ $OUT = '[';
foreach ($targetArray as $tar) {
$OUT .= ' 0)) {
+ } elseif ((isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (getConfig('def_refid') > 0)) {
// Set default refid as refid in URL
$GLOBALS['refid'] = getConfig('def_refid');
} else {
@@ -3134,10 +3168,10 @@ function shutdown () {
// Check if not in installation phase and the link is up
if ((!isInstallationPhase()) && (SQL_IS_LINK_UP())) {
// Close link
- SQL_CLOSE(__FILE__, __LINE__);
+ SQL_CLOSE(__FUNCTION__, __LINE__);
} elseif (!isInstallationPhase()) {
// No database link
- addFatalMessage(__FILE__, __LINE__, getMessage('NO_DB_LINK_SHUTDOWN'));
+ addFatalMessage(__FUNCTION__, __LINE__, getMessage('NO_DB_LINK_SHUTDOWN'));
}
// Stop executing here
@@ -3152,7 +3186,7 @@ function initMemberId () {
// Setter for member id
function setMemberId ($memberid) {
// We should not set member id to zero
- if ($memberid == '0') debug_report_bug('Userid should not be set zero.');
+ if ($memberid == '0') debug_report_bug(__FUNCTION__, __LINE__, 'Userid should not be set zero.');
// Set it secured
$GLOBALS['member_id'] = bigintval($memberid);
@@ -3205,7 +3239,7 @@ function getExtraTitle () {
// Is the extra title set?
if (!isExtraTitleSet()) {
// No, then abort here
- debug_report_bug('extra_title is not set!');
+ debug_report_bug(__FUNCTION__, __LINE__, 'extra_title is not set!');
} // END - if
// Return it
@@ -3247,12 +3281,12 @@ function generateExtensionNotInstalledMessage ($ext_name) {
} // END - if
// Default message
- $message = getMaskedMessage('EXTENSION_PROBLEM_EXT_NOT_INSTALLED', $ext_name);
+ $message = getMaskedMessage('EXTENSION_PROBLEM_EXTENSION_NOT_INSTALLED', $ext_name);
// Is an admin logged in?
if (isAdmin()) {
// Then output admin message
- $message = getMaskedMessage('ADMIN_EXTENSION_PROBLEM_EXT_NOT_INSTALLED', $ext_name);
+ $message = getMaskedMessage('ADMIN_EXTENSION_PROBLEM_EXTENSION_NOT_INSTALLED', $ext_name);
} // END - if
// Return prepared message
@@ -3300,7 +3334,7 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
$files = array();
// Open directory
- $dirPointer = opendir(getConfig('PATH') . $baseDir) or app_die(__FUNCTION__, __LINE__, 'Cannot read directory ' . basename($baseDir) . '.');
+ $dirPointer = opendir(getConfig('PATH') . $baseDir) or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot read directory ' . basename($baseDir) . '.');
// Read all entries
while ($baseFile = readdir($dirPointer)) {
@@ -3374,7 +3408,7 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
}
} else {
// We found .php file but should not search for them, why?
- debug_report_bug('We should find files with extension=' . $extension . ', but we found a PHP script.');
+ debug_report_bug(__FUNCTION__, __LINE__, 'We should find files with extension=' . $extension . ', but we found a PHP script.');
}
} elseif (substr($baseFile, -4, 4) == $extension) {
// Other, generic file found
@@ -3453,7 +3487,7 @@ function initCacheInstance () {
$GLOBALS['cache_instance'] = new CacheSystem();
if ($GLOBALS['cache_instance']->getStatus() != 'done') {
// Failed to initialize cache sustem
- addFatalMessage(__FILE__, __LINE__, '(' . __LINE__ . ' ): ' . getMessage('CACHE_CANNOT_INITIALIZE'));
+ addFatalMessage(__FUNCTION__, __LINE__, '(' . __LINE__ . ' ): ' . getMessage('CACHE_CANNOT_INITIALIZE'));
} // END - if
}
@@ -3539,16 +3573,16 @@ function determinePageTitle () {
$pageTitle = '[-- ' . getConfig('MAIN_TITLE') . ' - ' . getModuleTitle(getModule()) . ' --]';
} elseif ((isInstalled()) && (!isAdminRegistered())) {
// Installed but no admin registered
- $pageTitle = getMessage('SETUP_OF_MXCHANGE');
+ $pageTitle = getMessage('SETUP_OF_MAILER');
} elseif ((!isInstalled()) || (!isAdminRegistered())) {
// Installation mode
- $pageTitle = getMessage('INSTALLATION_OF_MXCHANGE');
+ $pageTitle = getMessage('INSTALLATION_OF_MAILER');
} else {
// Configuration not found!
$pageTitle = getMessage('NO_CONFIG_FOUND_TITLE');
// Do not add the fatal message in installation mode
- if ((!isInstalling()) && (!isConfigurationLoaded())) addFatalMessage(__FILE__, __LINE__, getMessage('NO_CONFIG_FOUND'));
+ if ((!isInstalling()) && (!isConfigurationLoaded())) addFatalMessage(__FUNCTION__, __LINE__, getMessage('NO_CONFIG_FOUND'));
}
// Return title
@@ -3577,9 +3611,6 @@ function flushTemplateCache ($template, $eval) {
// Generate FQFN
$FQFN = generateCacheFqfn($template);
- // Replace username with a call
- $eval = str_replace('$username', '".getUsername()."', $eval);
-
// And flush it
writeToFile($FQFN, $eval, true);
} // END - if
@@ -3735,7 +3766,7 @@ function sendModeMails ($mod, $modes) {
}
// Generates a 'selection box' from given array
-function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionContent='') {
+function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionContent = '', $extraName = '') {
// Start the output
$OUT = '
{--PLEASE_SELECT--} ';
@@ -3745,7 +3776,7 @@ function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionCo
// Add the entry
if (empty($optionContent)) {
// ... from template
- $OUT .= loadTemplate('select_' . $name . '_option', true, $option);
+ $OUT .= loadTemplate('select_' . $name . $extraName . '_option', true, $option);
} else {
// Direct HTML code
$OUT .= ' ' . $option[$optionContent] . ' ';
@@ -3763,7 +3794,7 @@ function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionCo
);
// Load template and return it
- return loadTemplate('select_' . $name . '_box', true, $content);
+ return loadTemplate('select_' . $name . $extraName . '_box', true, $content);
}
// Get a module from filename and access level
@@ -3784,7 +3815,7 @@ function getModuleFromFileName ($file, $accessLevel) {
break;
default: // Unsupported file name / access level
- debug_report_bug('Unsupported file name=' . basename($file) . '/access level=' . $accessLevel);
+ debug_report_bug(__FUNCTION__, __LINE__, 'Unsupported file name=' . basename($file) . '/access level=' . $accessLevel);
break;
}
@@ -3840,6 +3871,9 @@ function isSpider () {
// Prepares the header for HTML output
function loadHtmlHeader () {
+ // Enable HTML templates
+ enableTemplateHtml();
+
// Run two filters:
// 1.) pre_page_header (mainly loads the page_header template and includes
// meta description)
@@ -3871,10 +3905,10 @@ function addPageHeaderFooter () {
// Generates meta description for current module and 'what' value
function generateMetaDescriptionCode () {
- // Only include from guest area
- if (getModule() == 'index') {
+ // Only include from guest area and if sql_patches has correct version
+ if ((getModule() == 'index') && (isExtensionInstalledAndNewer('sql_patches', '0.1.6'))) {
// Construct dynamic description
- $DESCR = '{?MAIN_TITLE?} '.trim(getConfig('title_middle')) . ' ' . getTitleFromMenu('guest', getWhat());
+ $DESCR = '{?MAIN_TITLE?} ' . trim(getConfig('title_middle')) . ' ' . getTitleFromMenu('guest', getWhat());
// Output it directly
$GLOBALS['page_header'] .= ' ';