* $Author:: $ *
* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009 - 2012 by Mailer Developer Team *
+ * Copyright (c) 2009 - 2013 by Mailer Developer Team *
* For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
enableTemplateHtml($insertComments);
// Init counter
- $count = 0;
+ $totalCompilations = 0;
// Compile all out
- while (((isInString('{--', $code)) || (isInString('{DQUOTE}', $code)) || (isInString('{?', $code)) || (isInString('{%', $code) !== FALSE)) && ($count < 7)) {
+ while (((isInString('{--', $code)) || (isInString('{DQUOTE}', $code)) || (isInString('{?', $code)) || (isInString('{%', $code) !== FALSE)) && ($totalCompilations < 7)) {
// Init common variables
$content = array();
$newContent = '';
// Compile it
- //* DEBUG: */ debugOutput('<pre>'.linenumberCode($code).'</pre>');
+ //* DEBUG: */ debugOutput('<pre>'.lineNumberCode($code).'</pre>');
$eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code), $enableCodes)) . '";';
- //* DEBUG: */ if (!$insertComments) print('EVAL=<pre>'.linenumberCode($eval).'</pre>');
+ //* DEBUG: */ if (!$insertComments) print('EVAL=<pre>'.lineNumberCode($eval).'</pre>');
eval($eval);
- //* DEBUG: */ if (!$insertComments) print('NEW=<pre>'.linenumberCode($newContent).'</pre>');
+ //* DEBUG: */ if (!$insertComments) print('NEW=<pre>'.lineNumberCode($newContent).'</pre>');
//* DEBUG: */ die('<pre>'.encodeEntities($newContent).'</pre>');
// Was that eval okay?
if (empty($newContent)) {
// Something went wrong!
- reportBug(__FUNCTION__, __LINE__, 'Evaluation error:<pre>' . linenumberCode($eval) . '</pre>', FALSE);
+ reportBug(__FUNCTION__, __LINE__, 'Evaluation error:<pre>' . lineNumberCode($eval) . '</pre>', FALSE);
} // END - if
// Use it again
} // END - if
// Count round
- $count++;
+ $totalCompilations++;
} // END - while
// Add debugging data in HTML code, if mode is enabled
if ((isDebugModeEnabled()) && ($insertComments === TRUE) && (isHtmlOutputMode())) {
// Add loop count
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'isDebugModeEnabled()=' . intval(isDebugModeEnabled()) . ',insertComments=' . intval($insertComments) . ',isHtmlOutputMode()=' . intval(isHtmlOutputMode()));
- $code .= '<!-- Total compilation loop=' . $count . ' //-->';
+ $code .= '<!-- Total compilation loop=' . $totalCompilations . ' //-->';
} // END - if
// Return the compiled code
// Use configured min age or fixed?
if (isExtensionInstalledAndNewer('other', '0.2.1')) {
// Configured
- $startYear = $year - getConfig('min_age');
+ $startYear = $year - getMinAge();
} else {
// Fixed 16 years
$startYear = $year - 16;
} // END - for
break;
+ case 'mn': // Months, numeric
+ for ($idx = 0; $idx <= 12; $idx++) {
+ $OUT .= '<option value="' . $idx . '"';
+ if ($default == $idx) $OUT .= ' selected="selected"';
+ $OUT .= '>{%pipe,padLeftZero=' . $idx . '%}</option>';
+ } // END - for
+ break;
+
case 'we': // Weeks
for ($idx = 0; $idx <= 4; $idx++) {
$OUT .= ' <option value="' . $idx . '"';
break;
case 'da': // Days
- for ($idx = 0; $idx < 32; $idx++) {
+ for ($idx = 0; $idx <= 31; $idx++) {
$OUT .= '<option value="' . $idx . '"';
if ($default == $idx) $OUT .= ' selected="selected"';
- $OUT .= '>' .padLeftZero($idx) . '</option>';
+ $OUT .= '>{%pipe,padLeftZero=' . $idx . '%}</option>';
} // END - for
break;
case 'ho': // Hours
- for ($idx = 0; $idx < 24; $idx++) {
+ for ($idx = 0; $idx <= 23; $idx++) {
if (strlen($idx) == 1) $idx = 0 . $idx;
$OUT .= '<option value="' . $idx . '"';
if ($default == $idx) $OUT .= ' selected="selected"';
case 'mi': // Minutes
case 'se': // Seconds
- for ($idx = 0; $idx < 60; $idx+=5) {
+ for ($idx = 0; $idx <= 59; $idx+=5) {
if (strlen($idx) == 1) $idx = 0 . $idx;
$OUT .= '<option value="' . $idx . '"';
if ($default == $idx) $OUT .= ' selected="selected"';
// Time unit -> field name
'unit_field' => array(
'Y' => 'ye',
- 'M' => 'mo',
+ 'M' => 'mn',
'W' => 'we',
'D' => 'da',
'h' => 'ho',
// Load the template
$GLOBALS['__page_footer'] .= loadTemplate('show_timings', TRUE, $content);
+
+ // Is debug enabled?
+ if (isDebugModeEnabled()) {
+ // Log loading of total includes
+ //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Loaded includes: ' . count($GLOBALS['inc_loaded']) . ', readable files: ' . count($GLOBALS['file_readable']));
+ } // END - if
}
/**
}
// Print code with line numbers
-function linenumberCode ($code) {
+function lineNumberCode ($code) {
// By default copy the code
$codeE = $code;
return loadTemplate('admin_settings_saved', $return, $message);
}
+// Displays given error message in admin_settings_saved template
+function displayErrorMessage ($message, $return = FALSE) {
+ // Load the template
+ return loadTemplate('admin_settings_unsaved', $return, $message);
+}
+
// Generates a selection box for (maybe) given gender
function generateGenderSelectionBox ($selectedGender = '', $fieldName = 'gender') {
// Start the HTML code
return $OUT;
}
+// Tries to anonymize some sensitive data (e.g. IP address, user agent, referrer, etc.)
+function anonymizeSensitiveData ($data) {
+ // Trim it
+ $data = trim($data);
+
+ // Is it empty?
+ if (empty($data)) {
+ // Then add three dashes
+ $data = '---';
+ } elseif (isUrlValid($data)) {
+ // Is a referrer, so is it black-listed?
+ if (isAdmin()) {
+ // Is admin, has always priority
+ $data = '[<a href="{%pipe,generateFrametesterUrl=' . $data . '%}" target="_blank">{--ADMIN_TEST_URL--}</a>]';
+ } elseif ((isExtensionActive('blacklist')) && (isUrlBlacklisted($data))) {
+ // Yes, so replace it with text
+ $data = '<em>{--URL_IS_BLACKLISTED--}</em>';
+ } else {
+ // A member is viewing this referral URL
+ $data = '[<a href="{%pipe,generateDereferrerUrl=' . $data . '%}" target="_blank">{--MEMBER_TEST_URL--}</a>]';
+ }
+ } elseif (isIp4AddressValid($data)) {
+ // Is an IPv4 address
+ $ipArray = explode('.', $data);
+
+ // Only display first 2 octets
+ $data = $ipArray[0] . '.' . $ipArray[1] . '.?.?';
+ } else {
+ // Generic data
+ $data = '<em>{--DATA_IS_HIDDEN--}</em>';
+ }
+
+ // Return it (hopefully) anonymized
+ return $data;
+}
+
+/**
+ * Removes all comments, tabs and new-line characters to compact the content
+ *
+ * @param $uncompactedContent The uncompacted content
+ * @return $compactedContent The compacted content
+ */
+function compactContent ($uncompactedContent) {
+ // First, remove all tab/new-line/revert characters
+ $compactedContent = str_replace(chr(9), '', str_replace(PHP_EOL, '', str_replace(chr(13), '', $uncompactedContent)));
+
+ // Make a space after >
+ $compactedContent = str_replace(array('>', ' '), array('> ', ' '), $compactedContent);
+
+ // Then regex all comments like <!-- //--> away
+ preg_match_all('/<!--[\w\W]*?(\/\/){0,1}-->/', $compactedContent, $matches);
+
+ // Do we have entries?
+ if (isset($matches[0][0])) {
+ // Remove all
+ foreach ($matches[0] as $match) {
+ // Remove the match
+ $compactedContent = str_replace($match, '', $compactedContent);
+ } // END - foreach
+ } // END - if
+
+ // Return compacted content
+ return $compactedContent;
+}
+
//-----------------------------------------------------------------------------
// Template helper functions for EL code
//-----------------------------------------------------------------------------
return loadTemplate($theTemplate, TRUE, $content);
}
-// Tries to anonymize some sensitive data (e.g. IP address, user agent, referrer, etc.)
-function anonymizeSensitiveData ($data) {
- // Trim it
- $data = trim($data);
+// Output HTML code for favicon.ico, if found
+function doTemplateMetaFavIcon ($templateName, $clear = FALSE) {
+ // Default is not found
+ $out = '';
- // Is it empty?
- if (empty($data)) {
- // Then add three dashes
- $data = '---';
- } elseif (isUrlValid($data)) {
- // Is a referrer, so is it black-listed?
- if (isAdmin()) {
- // Is admin, has always priority
- $data = '[<a href="{%pipe,generateFrametesterUrl=' . $data . '%}" target="_blank">{--ADMIN_TEST_URL--}</a>]';
- } elseif (isUrlBlacklisted($data)) {
- // Yes, so replace it with text
- $data = '<em>{--URL_IS_BLACKLISTED--}</em>';
- } else {
- // A member is viewing this referral URL
- $data = '[<a href="{%pipe,generateDereferrerUrl=' . $data . '%}" target="_blank">{--MEMBER_TEST_URL--}</a>]';
- }
- } elseif (isIp4AddressValid($data)) {
- // Is an IPv4 address
- $ipArray = explode('.', $data);
-
- // Only display first 2 octets
- $data = $ipArray[0] . '.' . $ipArray[1] . '.?.?';
- } else {
- // Generic data
- $data = '<em>{--DATA_IS_HIDDEN--}</em>';
- }
-
- // Return it (hopefully) anonymized
- return $data;
-}
-
-/**
- * Removes all comments, tabs and new-line characters to compact the content
- *
- * @param $uncompactedContent The uncompacted content
- * @return $compactedContent The compacted content
- */
-function compactContent ($uncompactedContent) {
- // First, remove all tab/new-line/revert characters
- $compactedContent = str_replace(chr(9), '', str_replace(PHP_EOL, '', str_replace(chr(13), '', $uncompactedContent)));
-
- // Make a space after >
- $compactedContent = str_replace(array('>', ' '), array('> ', ' '), $compactedContent);
-
- // Then regex all comments like <!-- //--> away
- preg_match_all('/<!--[\w\W]*?(\/\/){0,1}-->/', $compactedContent, $matches);
-
- // Do we have entries?
- if (isset($matches[0][0])) {
- // Remove all
- foreach ($matches[0] as $match) {
- // Remove the match
- $compactedContent = str_replace($match, '', $compactedContent);
- } // END - foreach
- } // END - if
+ // Check all common extensions
+ foreach (array('ico', 'gif', 'png') as $extension) {
+ // Is the file there?
+ if (isFileReadable(getPath() . 'favicon.' . $extension)) {
+ // Then use this and abort
+ $out = '<link rel="shortcut icon" href="http://www.wds66.com/favicon.ico" type="image/' . $extension . '" />';
+ break;
+ } // END - if
+ } // END - while
- // Return compacted content
- return $compactedContent;
+ // Return code
+ return $out;
}
// [EOF]