* Kurzbeschreibung : Template-Funktionen *
* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009 - 2015 by Mailer Developer Team *
+ * Copyright (c) 2009 - 2016 by Mailer Developer Team *
* For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
$GLOBALS['color_switch'][$template] = 2;
}
-// "Getter" for color switch code
-function getColorSwitchCode ($template) {
+// "Renders" color switch code
+function renderColorSwitchCode ($template) {
// Prepare the code
- $code = "{DQUOTE} . doTemplateColorSwitch('" . $template . "', FALSE, FALSE) . {DQUOTE}";
+ $code = sprintf("{DQUOTE} . doTemplateColorSwitch('%s', FALSE, FALSE) . {DQUOTE}", $template);
// And return it
return $code;
}
-// Output HTML code directly or 'render' it. You addionally switch the new-line character off
+// Output HTML code directly or 'render' it. You can addionally switch the new-line character off
function outputHtml ($htmlCode = NULL, $newLine = TRUE) {
// Init output
if (!isset($GLOBALS['__output'])) {
// Compile all out
while (((isInString('{--', $code)) || (isInString('{DQUOTE}', $code)) || (isInString('{?', $code)) || (isInString('{%', $code) !== FALSE)) && ($totalCompilations < 7)) {
// Init common variables
- $content = array();
+ $content = [];
$newContent = '';
// Compile it
}
// Load a template file and return it's content (only it's name; do not use ' or ")
-function loadTemplate ($template, $return = FALSE, $content = array(), $compileCode = TRUE) {
+function loadTemplate ($template, $return = FALSE, $content = [], $compileCode = TRUE) {
// @TODO Remove these sanity checks if all is fine
if (!is_bool($return)) {
// $return has to be boolean
// Prepare eval() command
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
- $GLOBALS['template_eval']['html'][$template] = '$templateContent = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($code), TRUE, $compileCode) . '";';
+ $GLOBALS['template_eval']['html'][$template] = '$templateContent = "' . renderColorSwitchCode($template) . compileCode(escapeQuotes($code), TRUE, $compileCode) . '";';
} elseif (substr($template, 0, 3) == 'js_') {
// JavaScripts don't like entities, dollar signs and timings
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
// Add surrounding HTML comments to help finding bugs faster
$templateContent = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['template_content']['html'][$template] . '<!-- Template ' . $template . ' - End //-->';
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
- $GLOBALS['template_eval']['html'][$template] = '$templateContent = "' . getColorSwitchCode($template) . compileRawCode(escapeQuotes($templateContent), TRUE, $compileCode) . '";';
+ $GLOBALS['template_eval']['html'][$template] = '$templateContent = "' . renderColorSwitchCode($template) . compileRawCode(escapeQuotes($templateContent), TRUE, $compileCode) . '";';
} elseif (isAjaxOutputMode()) {
// AJAX (JSON content)
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
} // END - if
} elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) {
// Only admins shall see this warning or when installation mode is active
- $templateContent = '<div class="para">
+ $templateContent = sprintf('<div class="para">
{--TEMPLATE_404--}
</div>
<div class="para">
- (' . $template . ')
+ (%s)
</div>
<div class="para">
{--TEMPLATE_CONTENT--}:
- <pre>' . print_r($content, TRUE) . '</pre>
-</div>';
+ <pre>%s</pre>
+</div>',
+ $template,
+ print_r($content, TRUE)
+ );
} else {
// No file!
$GLOBALS['template_eval']['html'][$template] = '404';
}
// Loads an email template and compiles it
-function loadEmailTemplate ($template, $content = array(), $userid = NULL, $loadUserData = TRUE) {
+function loadEmailTemplate ($template, $content = [], $userid = NULL, $loadUserData = TRUE) {
// Make sure all template names are lowercase!
$template = strtolower($template);
$GLOBALS['template_eval']['email'][$template] = '$templateContent = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['template_content']['email'][$template])) . '");';
} elseif (!empty($template)) {
// Template file not found
- $templateContent = '<div class="para">
- {--TEMPLATE_404--}: ' . $template . '
+ $templateContent = sprintf('<div class="para">
+ {--TEMPLATE_404--}: %s
</div>
<div class="para">
{--TEMPLATE_CONTENT--}:
- <pre>' . print_r($content, TRUE) . '</pre>
-</div>';
+ <pre>%s</pre>
+</div>',
+ $template,
+ print_r($content, TRUE)
+ );
// Don't cache this, as there is no template to cache
$GLOBALS['template_eval']['email'][$template] = '404';
// Are some matches found?
if ((isFilledArray($matches)) && (isFilledArray($matches[0]))) {
// Replace all matches
- $matchesFound = array();
+ $matchesFound = [];
foreach ($matches[0] as $key => $match) {
// Fuzzy look has failed by default
$fuzzyFound = FALSE;
}
//
-function addSelectionBox ($type, $default, $prefix = '', $id = NULL, $class = 'form_select') {
+function addSelectionBox ($type, $default, $prefix = '', $id = NULL, $class = 'form_select', $allSteps = FALSE) {
$OUT = '';
if ($type == 'yn') {
case 'mi': // Minutes
case 'se': // Seconds
- for ($idx = 0; $idx <= 59; $idx+=5) {
+ // Default is 5 minutes/seconds step
+ $step = 5;
+
+ // All steps?
+ if ($allSteps === TRUE) {
+ // Then all steps
+ $step = 1;
+ } // END - if
+
+ for ($idx = 0; $idx <= 59; $idx += $step) {
$padded = padLeftZero($idx, 2);
$OUT .= '<option value="' . $padded . '"';
if ($default == $padded) $OUT .= ' selected="selected"';
}
// Create selection box or array of splitted timestamp
-function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = 'center', $asArray = FALSE) {
+function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = 'center', $asArray = FALSE, $allSteps = FALSE) {
// Do not continue if ONE_DAY is absend
if (!isConfigEntrySet('ONE_DAY')) {
// Abort here
} // END - if
// Put all calculated values in array
- $data = array(
+ $data = [
'Y' => $year,
'M' => $month,
'W' => $week,
'h' => $hour,
'm' => $minute,
's' => $second
- );
+ ];
//
// Now we convert them in seconds...
$OUT = $data;
} else {
// Init array
- $units = array(
+ $units = [
// Time unit -> field name
- 'unit_field' => array(
+ 'unit_field' => [
'Y' => 'ye',
'M' => 'mn',
'W' => 'we',
'h' => 'ho',
'm' => 'mi',
's' => 'se'
- ),
+ ],
// Time unit -> label
- 'unit_label' => array(
+ 'unit_label' => [
'Y' => 'YEAR',
'M' => 'MONTH',
'W' => 'WEEK',
'h' => 'HOUR',
'm' => 'MINUTE',
's' => 'SECOND'
- )
- );
+ ]
+ ];
// Generate table
$OUT = '<div align="' . $align . '">';
if (isInString($unit, $display) || (empty($display))) {
// Generate year selection
$OUT .= '<td align="center">';
- $OUT .= addSelectionBox($field, $data[$unit], $prefix, NULL, 'mini_select');
+ $OUT .= addSelectionBox($field, $data[$unit], $prefix, NULL, 'mini_select', $allSteps);
$OUT .= '</td>';
} else {
$OUT .= '<input type="hidden" name="' . $prefix . '_' . $field . '" value="0" />';
// Prepare output
// @TODO This can be easily moved out after the merge from EL branch to this is complete
- $content = array(
+ $content = [
'run_time' => $runTime,
'sql_time' => (getConfig('sql_time') * 1000),
- );
+ ];
// Load the template
$GLOBALS['__page_footer'] .= loadTemplate('show_timings', TRUE, $content);
// Send an email? (e.g. not wanted for evaluation errors)
if (($sendEmail === TRUE) && (!isInstaller()) && (isAdminRegistered())) {
// Prepare content
- $content = array(
+ $content = [
'message' => trim($message),
'backtrace' => trim(debug_get_mailable_backtrace())
- );
+ ];
// Send email to webmaster
sendAdminNotification('{--REPORT_BUG_SUBJECT--}', 'admin_report_bug', $content);
} // END - if
// Compile these by default
- $charsCompile = array(
- 'from' => array(
+ $charsCompile = [
+ 'from' => [
'{DOT}',
'{SLASH}',
'{QUOT}',
'{OPEN_SQR}',
'{CLOSE_SQR}',
'{PER}'
- ),
- 'to' => array(
+ ],
+ 'to' => [
'.',
'/',
chr(39),
'[',
']',
'%'
- )
- );
+ ]
+ ];
// Compile constants
if ($simple === FALSE) {
}
// Generates a 'selection box' from given array
-function generateSelectionBoxFromArray ($options, $name, $optionKey, $optionContent = '', $extraName = '', $templateName = '', $default = NULL, $nameElement = '', $allowNone = FALSE, $useDefaultAsArray = FALSE) {
- // options must be an array
- assert(is_array($options));
-
+function generateSelectionBoxFromArray (array $options, $name, $optionKey, $optionContent = '', $extraName = '', $templateName = '', $default = NULL, $nameElement = '', $allowNone = FALSE, $useDefaultAsArray = FALSE) {
// Default is empty
$addKey = '';
$OUT .= '</select>';
// Prepare output
- $content = array(
+ $content = [
'selection_box' => $OUT,
- );
+ ];
// Load template and return it
if (empty($templateName)) {
$OUT = '';
// Add them all together. This is maybe to simple
- foreach (array('__page_header', '__output', '__page_footer') as $pagePart) {
+ foreach (['__page_header', '__output', '__page_footer'] as $pagePart) {
// Add page part if set
if (isset($GLOBALS[$pagePart])) {
$OUT .= $GLOBALS[$pagePart];
return loadTemplate('admin_settings_unsaved', TRUE, $message);
}
-// Generates a selection box for (maybe) given gender
-function generateGenderSelectionBox ($selectedGender = '', $fieldName = 'gender') {
+// Generates a selection box for (maybe) given sex
+function generateSexSelectionBox ($selectedSex = '', $fieldName = 'sex') {
// Start the HTML code
$out = '<select name="' . $fieldName . '" size="1" class="form_select">';
// Add options
$out .= generateOptions(
'/ARRAY/',
- array(
+ [
'M',
'F',
'C'
- ), array(
- '{--GENDER_M--}',
- '{--GENDER_F--}',
- '{--GENDER_C--}'
- ),
- $selectedGender
+ ], [
+ '{--SEX_M--}',
+ '{--SEX_F--}',
+ '{--SEX_C--}'
+ ],
+ $selectedSex
);
// Finish HTML code
// Generates a selection box for given default value
function generateTimeUnitSelectionBox ($defaultUnit, $fieldName, $unitArray) {
// Init variables
- $messageIds = array();
+ $messageIds = [];
// Generate message id array
foreach ($unitArray as $unit) {
$compactedContent = str_replace(chr(9), '', str_replace(PHP_EOL, '', str_replace(chr(13), '', $uncompactedContent)));
// Make a space after >
- $compactedContent = str_replace(array('>', ' '), array('> ', ' '), $compactedContent);
+ $compactedContent = str_replace(['>', ' '], ['> ', ' '], $compactedContent);
// Then regex all comments like <!-- //--> away
preg_match_all('/<!--[\w\W]*?(\/\/){0,1}-->/', $compactedContent, $matches);
// Helper function to add extra content for guest area (module=index and others)
function doTemplateGuestFooterExtras ($templateName, $clear) {
// Init filter data
- $filterData = array(
+ $filterData = [
// Name of used template
'template' => $templateName,
// Target array for gathered data
- '__data' => array(),
+ '__data' => [],
// Where the HTML output will go
'__output' => '',
- );
+ ];
// Run the filter chain
$filterData = runFilterChain('guest_footer_extras', $filterData);
} // END - if
// Init filter data
- $filterData = array(
+ $filterData = [
// Current user's id number
'userid' => getMemberId(),
// Name of used template
'template' => $templateName,
// Target array for gathered data
- '__data' => array(),
+ '__data' => [],
// Where the HTML output will go
'__output' => '',
- );
+ ];
// Run the filter chain
$filterData = runFilterChain('member_footer_extras', $filterData);
// Template helper function to create selection box for "locked points mode"
function doTemplatePointsLockedModeSelectionBox ($templateName, $clear = FALSE, $default = NULL) {
// Init array
- $lockedModes = array(
- 0 => array('mode' => 'LOCKED'),
- 1 => array('mode' => 'UNLOCKED'),
- );
+ $lockedModes = [
+ 0 => ['mode' => 'LOCKED'],
+ 1 => ['mode' => 'UNLOCKED'],
+ ];
// Handle it over to generateSelectionBoxFromArray()
$content = generateSelectionBoxFromArray($lockedModes, 'points_locked_mode', 'mode', '', '', '', $default);
// Template helper function to create selection box for payment method
function doTemplatePointsPaymentMethodSelectionBox ($templateName, $clear = FALSE, $default = NULL) {
// Init array
- $paymentMethods = array(
- 0 => array('method' => 'DIRECT'),
- 1 => array('method' => 'REFERRAL'),
- );
+ $paymentMethods = [
+ 0 => ['method' => 'DIRECT'],
+ 1 => ['method' => 'REFERRAL'],
+ ];
// Handle it over to generateSelectionBoxFromArray()
$content = generateSelectionBoxFromArray($paymentMethods, 'points_payment_method', 'method', '', '', '', $default);
// Is the URL not NULL and not empty?
if ((!is_null($url)) && (!empty($url))) {
// Set HTML with EL code
- $url = '<a href="{%pipe,generateDereferrerUrl=' . $url . '%}" rel="external" target="_blank">{--ADMIN_TEST_URL--}</a>';
+ $url = sprintf('<a href="{%%pipe,generateDereferrerUrl=%s%%}" rel="external" target="_blank">{--ADMIN_TEST_URL--}</a>', $url);
} // END - if
// Return URL (or content) or dashes if empty
}
// Load another template and return its content
-function doTemplateLoadTemplate ($templateName, $clear = FALSE, $theTemplate, $content = array()) {
+function doTemplateLoadTemplate ($templateName, $clear = FALSE, $theTemplate, $content = []) {
// Load "the" template
return loadTemplate($theTemplate, TRUE, $content);
}
$out = '';
// Check all common extensions
- foreach (array('ico', 'gif', 'png') as $extension) {
+ foreach (['ico', 'gif', 'png'] as $extension) {
// Is the file there?
if (isFileReadable(getPath() . 'favicon.' . $extension)) {
// Then use this and abort
}
// [EOF]
-?>