X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ftemplate-functions.php;h=b675c6b6dc522617cd22de76010508efe72eed31;hp=66867e69630e46f9f0df4bb19af038ec3e130a3a;hb=e8ca54fe91872ab95a6ffdc4f1268bf18889021d;hpb=27272fdaa3ad8895e6b55ec77658ad5c1f80e89c
diff --git a/inc/template-functions.php b/inc/template-functions.php
index 66867e6963..b675c6b6dc 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 *
@@ -185,9 +183,11 @@ function compileFinalOutput () {
} // 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');
@@ -198,6 +198,7 @@ function compileFinalOutput () {
// Add header
sendHeader('Content-Encoding: deflate');
}
+ */
// Add final length
sendHeader('Content-Length: ' . strlen($GLOBALS['output']));
@@ -212,10 +213,10 @@ function doFinalCompilation ($code, $insertComments = true, $enableCodes = true)
enableTemplateHtml($insertComments);
// Init counter
- $cnt = 0;
+ $count = 0;
// Compile all out
- while (((strpos($code, '{--') !== false) || (strpos($code, '{DQUOTE}') !== false) || (strpos($code, '{?') !== false) || (strpos($code, '{%') !== false)) && ($cnt < 5)) {
+ while (((strpos($code, '{--') !== false) || (strpos($code, '{DQUOTE}') !== false) || (strpos($code, '{?') !== false) || (strpos($code, '{%') !== false)) && ($count < 5)) {
// Init common variables
$content = array();
$newContent = '';
@@ -223,8 +224,9 @@ function doFinalCompilation ($code, $insertComments = true, $enableCodes = true)
// Compile it
//* DEBUG: */ debugOutput('
'.linenumberCode($code).'
');
$eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code), false, true, $enableCodes)) . '";';
- //* DEBUG: */ if (!$insertComments) print(''.linenumberCode($eval).'
');
+ //* DEBUG: */ if (!$insertComments) print('EVAL='.linenumberCode($eval).'
');
eval($eval);
+ //* DEBUG: */ if (!$insertComments) print('NEW='.linenumberCode($newContent).'
');
//* DEBUG: */ die(''.encodeEntities($newContent).'
');
// Was that eval okay?
@@ -237,7 +239,7 @@ function doFinalCompilation ($code, $insertComments = true, $enableCodes = true)
$code = $newContent;
// Count round
- $cnt++;
+ $count++;
} // END - while
// Return the compiled code
@@ -274,7 +276,6 @@ 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/", getPath(), getLanguage());
@@ -295,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 (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 = '
- {--TEMPLATE_404--}
+ {--TEMPLATE_404--}
(' . $template . ')
@@ -414,7 +415,7 @@ function detectExtraTemplatePath ($template) {
}
// Loads an email template and compiles it
-function loadEmailTemplate ($template, $content = array(), $userid = '0') {
+function loadEmailTemplate ($template, $content = array(), $userid = '0', $loadUserData = true) {
global $DATA;
// Make sure all template names are lowercase!
@@ -428,7 +429,7 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') {
$content['expiration'] = '{--MAIL_WILL_NEVER_EXPIRE--}';
} elseif (isConfigEntrySet('auto_purge')) {
// Create nice date string
- $content['expiration'] = createFancyTime(getAutoPurge());
+ $content['expiration'] = '{%pipe,getAutoPurge,createFancyTime%}';
} else {
// Missing entry
$content['expiration'] = '{--MAIL_NO_CONFIG_AUTO_PURGE--}';
@@ -451,7 +452,7 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') {
// Merge data if valid
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "content()=".count($content)." - PRE
");
- if (isUserDataValid()) {
+ if ((isUserDataValid()) && ($loadUserData === true)) {
$content = merge_array($content, getUserDataArray());
} // END - if
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "content()=".count($content)." - AFTER
");
@@ -476,11 +477,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 = '
@@ -494,7 +495,10 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') {
';
// 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--}';
@@ -503,7 +507,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.";
@@ -647,7 +651,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 = 'form_select') {
$OUT = '';
if ($type == 'yn') {
@@ -762,9 +766,9 @@ function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 're
// Insert the code in $img_code into jpeg or PNG image
function generateImageOrCode ($img_code, $headerSent = true) {
// Is the code size oversized or shouldn't we display it?
- if ((strlen($img_code) > 6) || (empty($img_code)) || (getConfig('code_length') == '0')) {
+ if ((strlen($img_code) > 6) || (empty($img_code)) || (getCodeLength() == '0')) {
// Stop execution of function here because of over-sized code length
- debug_report_bug(__FUNCTION__, __LINE__, '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=' . getCodeLength());
} elseif ($headerSent === false) {
// Return an HTML code here
return '
';
@@ -774,26 +778,24 @@ function generateImageOrCode ($img_code, $headerSent = true) {
$img = sprintf("%s/theme/%s/images/code_bg.%s",
getPath(),
getCurrentTheme(),
- getConfig('img_type')
+ getImgType()
);
// Is it readable?
if (isFileReadable($img)) {
// Switch image type
- switch (getConfig('img_type')) {
- case 'jpg':
- // Okay, load image and hide all errors
+ switch (getImgType()) {
+ case 'jpg': // Okay, load image and hide all errors
$image = imagecreatefromjpeg($img);
break;
- case 'png':
- // Okay, load image and hide all errors
+ case 'png': // 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')));
+ // Silently log the error
+ logDebugMessage(__FUNCTION__, __LINE__, sprintf("File for image-type %s in theme %s not found.", getImgType(), getCurrentTheme()));
return;
}
@@ -804,10 +806,10 @@ function generateImageOrCode ($img_code, $headerSent = true) {
imagestring($image, 5, 14, 2, $img_code, $text_color);
// Return to browser
- sendHeader('Content-Type: image/' . getConfig('img_type'));
+ setContentType('image/' . getImgType());
// Output image with matching image factory
- switch (getConfig('img_type')) {
+ switch (getImgType()) {
case 'jpg': imagejpeg($image); break;
case 'png': imagepng($image); break;
} // END - switch
@@ -838,7 +840,7 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align =
$M2 = getMonth(time() + $timestamp);
// 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') && ($M2 > '02')) $SWITCH = getConfig('ONE_DAY');
+ if ((floor($TEST) == $TEST) && ($M1 == '02') && ($M2 > '02')) $SWITCH = getOneDay();
// First of all years...
$Y = abs(floor($timestamp / (31536000 + $SWITCH)));
@@ -847,19 +849,19 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align =
$M = abs(floor($timestamp / 2628000 - $Y * 12));
//* DEBUG: */ debugOutput('M=' . $M);
// Next weeks
- $W = abs(floor($timestamp / 604800 - $Y * ((365 + $SWITCH / getConfig('ONE_DAY')) / 7) - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) / 7)));
+ $W = abs(floor($timestamp / 604800 - $Y * ((365 + $SWITCH / getOneDay()) / 7) - ($M / 12 * (365 + $SWITCH / getOneDay()) / 7)));
//* DEBUG: */ debugOutput('W=' . $W);
// Next days...
- $D = abs(floor($timestamp / 86400 - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY'))) - $W * 7));
+ $D = abs(floor($timestamp / 86400 - $Y * (365 + $SWITCH / getOneDay()) - ($M / 12 * (365 + $SWITCH / getOneDay())) - $W * 7));
//* DEBUG: */ debugOutput('D=' . $D);
// Next hours...
- $h = abs(floor($timestamp / 3600 - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) * 24) - $W * 7 * 24 - $D * 24));
+ $h = abs(floor($timestamp / 3600 - $Y * (365 + $SWITCH / getOneDay()) * 24 - ($M / 12 * (365 + $SWITCH / getOneDay()) * 24) - $W * 7 * 24 - $D * 24));
//* DEBUG: */ debugOutput('h=' . $h);
// Next minutes..
- $m = abs(floor($timestamp / 60 - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 60 - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 60) - $W * 7 * 24 * 60 - $D * 24 * 60 - $h * 60));
+ $m = abs(floor($timestamp / 60 - $Y * (365 + $SWITCH / getOneDay()) * 24 * 60 - ($M / 12 * (365 + $SWITCH / getOneDay()) * 24 * 60) - $W * 7 * 24 * 60 - $D * 24 * 60 - $h * 60));
//* DEBUG: */ debugOutput('m=' . $m);
// And at last seconds...
- $s = abs(floor($timestamp - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 3600 - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 3600) - $W * 7 * 24 * 3600 - $D * 24 * 3600 - $h * 3600 - $m * 60));
+ $s = abs(floor($timestamp - $Y * (365 + $SWITCH / getOneDay()) * 24 * 3600 - ($M / 12 * (365 + $SWITCH / getOneDay()) * 24 * 3600) - $W * 7 * 24 * 3600 - $D * 24 * 3600 - $h * 3600 - $m * 60));
//* DEBUG: */ debugOutput('s=' . $s);
// Is seconds zero and time is < 60 seconds?
@@ -1033,19 +1035,25 @@ function generateMemberAdminActionLinks ($userid) {
$OUT = '[';
foreach ($targetArray as $tar) {
- $OUT .= '
{--ADMIN_';
+ $OUT .= '_TITLE--}">{--ADMIN_USER_ACTION_LINK_';
if (($tar == 'lock_user') && ($status == 'LOCKED')) {
// Locked accounts shall be unlocked
$OUT .= 'UNLOCK_USER';
+ } elseif ($tar == 'del_user') {
+ // @TODO Deprecate this thing
+ $OUT .= 'DELETE_USER';
} else {
// All other status is fine
$OUT .= strtoupper($tar);
@@ -1071,10 +1079,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?
@@ -1087,28 +1095,28 @@ function generateEmailLink ($email, $table = 'admins') {
// Output error messages in a fasioned way and die...
function app_die ($F, $L, $message) {
// Check if Script is already dieing and not let it kill itself another 1000 times
- if (!isset($GLOBALS['app_died'])) {
- // Make sure, that the script realy realy diese here and now
- $GLOBALS['app_died'] = true;
+ if (isset($GLOBALS['app_died'])) {
+ // Script tried to kill itself twice
+ die('[' . __FUNCTION__ . ':' . __LINE__ . ']: Script wanted to kill itself more than once! Raw message=' . $message . ', file/function=' . $F . ', line=' . $L);
+ } // END - if
- // Set content type as text/html
- setContentType('text/html');
+ // Make sure, that the script realy realy diese here and now
+ $GLOBALS['app_died'] = true;
- // Load header
- loadIncludeOnce('inc/header.php');
+ // Set content type as text/html
+ setContentType('text/html');
- // Rewrite message for output
- $message = sprintf(getMessage('MAILER_HAS_DIED'), basename($F), $L, $message);
+ // Load header
+ loadIncludeOnce('inc/header.php');
- // Load the message template
- loadTemplate('app_die_message', false, $message);
+ // Rewrite message for output
+ $message = sprintf(getMessage('MAILER_HAS_DIED'), basename($F), $L, $message);
- // Load footer
- loadIncludeOnce('inc/footer.php');
- } else {
- // Script tried to kill itself twice
- die('['.__FUNCTION__.':'.__LINE__.']: Script wanted to kill itself more than once! Raw message=' . $message . ', file/function=' . $F . ', line=' . $L);
- }
+ // Load the message template
+ loadTemplate('app_die_message', false, $message);
+
+ // Load footer
+ loadIncludeOnce('inc/footer.php');
}
// Display parsing time and number of SQL queries in footer
@@ -1126,7 +1134,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
@@ -1313,7 +1323,7 @@ function linenumberCode ($code) {
// Add code
$r .= '' . encodeEntities($c) . ' ';
- }
+ } // END - foreach
return '' . $r . '
';
}
@@ -1452,6 +1462,9 @@ function escapeJavaScriptQuotes ($str) {
// Send out mails depending on the 'mod/modes' combination
// @TODO Lame description for this function
function sendModeMails ($mod, $modes) {
+ // Init user data
+ $content = array ();
+
// Load hash
if (fetchUserData(getMemberId())) {
// Extract salt from cookie
@@ -1515,61 +1528,59 @@ function sendModeMails ($mod, $modes) {
$sub_mem = '{--MEMBER_CHANGED_DATA--}';
// Output success message
- $content = '{--MEMBER_MYDATA_MAIL_SENT--}';
+ $content['message'] = '{--MEMBER_MYDATA_MAIL_SENT--}';
break;
default: // Unsupported module!
logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unsupported module %s detected.", $mod));
- $content = '{--UNKNOWN_MODULE--}';
+ $content['message'] = '{--UNKNOWN_MODULE--}';
break;
} // END - switch
} else {
// Passwords mismatch
- $content = '{--MEMBER_PASSWORD_ERROR--}';
+ $content['message'] = '{--MEMBER_PASSWORD_ERROR--}';
}
} else {
// Could not load profile
- $content = '{--MEMBER_CANNOT_LOAD_PROFILE--}';
+ $content['message'] = '{--MEMBER_CANNOT_LOAD_PROFILE--}';
}
// Send email to user if required
- if ((!empty($sub_mem)) && (!empty($message))) {
+ if ((!empty($sub_mem)) && (!empty($message)) && (!empty($content['email']))) {
// Send member mail
sendEmail($content['email'], $sub_mem, $message);
} // END - if
// Send only if no other error has occured
- if (empty($content)) {
- if ((!empty($sub_adm)) && (!empty($message_admin))) {
- // Send admin mail
- sendAdminNotification($sub_adm, $message_admin, $content, getMemberId());
- } elseif (isAdminNotificationEnabled()) {
- // Cannot send mails to admin!
- $content = '{--CANNOT_SEND_ADMIN_MAILS--}';
- } else {
- // No mail to admin
- $content = '{--MEMBER_MYDATA_MAIL_SENT--}';
- }
- } // END - if
+ if ((!empty($sub_adm)) && (!empty($message_admin)) && (isAdminNotificationEnabled())) {
+ // Send admin mail
+ sendAdminNotification($sub_adm, $message_admin, $content, getMemberId());
+ } elseif (isAdminNotificationEnabled()) {
+ // Cannot send mails to admin!
+ $content['message'] = '{--CANNOT_SEND_ADMIN_MAILS--}';
+ } else {
+ // No mail to admin
+ $content['message'] = '{--MEMBER_MYDATA_MAIL_SENT--}';
+ }
// Load template
- loadTemplate('admin_settings_saved', false, $content);
+ loadTemplate('admin_settings_saved', false, $content['message']);
}
// Generates a 'selection box' from given array
function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionContent = '', $extraName = '') {
// Start the output
- $OUT = '