X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ftemplate-functions.php;h=4c8ec10877a6f8e879e3f29d259a7aa73b00738a;hb=f5e20f888168b9fd812387af20b2c3812bda00d4;hp=25e899ee11d3d8ec3ad2063ed8183d6ebb1bf3a4;hpb=cf911469f718afb27ef9d239d375c7fe002cdc5e;p=mailer.git diff --git a/inc/template-functions.php b/inc/template-functions.php index 25e899ee11..4c8ec10877 100644 --- a/inc/template-functions.php +++ b/inc/template-functions.php @@ -17,7 +17,7 @@ * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * * Copyright (c) 2009 - 2011 by Mailer Developer Team * - * For more information visit: http://www.mxchange.org * + * For more information visit: http://mxchange.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -70,13 +70,8 @@ function debugOutput ($message) { // "Fixes" an empty string into three dashes (use for templates) function fixEmptyContentToDashes ($str) { - // Trim the string - $str = trim($str); - - // Is the string empty? - if (empty($str)) { - $str = '---'; - } // END - if + // Call inner function + $str = fixNullEmptyToDashes($str, 3); // Return string return $str; @@ -115,23 +110,32 @@ function outputHtml ($htmlCode, $newLine = true) { outputRawCode($htmlCode); // That's why you don't need any \n at the end of your HTML code... :-) - if ($newLine === true) print("\n"); + if ($newLine === true) { + print("\n"); + } // END - if } else { // Render mode for old or lame servers... $GLOBALS['output'] .= $htmlCode; // That's why you don't need any \n at the end of your HTML code... :-) - if ($newLine === true) $GLOBALS['output'] .= "\n"; + if ($newLine === true) { + $GLOBALS['output'] .= "\n"; + } // END - if } break; case 'direct': // If we are switching from render to direct output rendered code - if ((!empty($GLOBALS['output'])) && (getPhpCaching() != 'on')) { outputRawCode($GLOBALS['output']); $GLOBALS['output'] = ''; } + if ((!empty($GLOBALS['output'])) && (getPhpCaching() != 'on')) { + outputRawCode($GLOBALS['output']); + $GLOBALS['output'] = ''; + } // END - if // The same as above... ^ outputRawCode($htmlCode); - if ($newLine === true) print("\n"); + if ($newLine === true) { + print("\n"); + } // END - if break; default: @@ -167,7 +171,7 @@ function outputHtml ($htmlCode, $newLine = true) { outputRawCode($GLOBALS['output']); } else { // And flush all headers - flushHeaders(); + flushHttpHeaders(); } } @@ -187,26 +191,26 @@ function compileFinalOutput () { // Compress it? /** * @TODO On some pages this is buggy - if (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos('gzip', $_SERVER['HTTP_ACCEPT_ENCODING']) !== null)) { + if (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (isInStringIgnoreCase('gzip', $_SERVER['HTTP_ACCEPT_ENCODING']))) { // Compress it for HTTP gzip $GLOBALS['output'] = gzencode($GLOBALS['output'], 9); // Add header - sendHeader('Content-Encoding: gzip'); - } elseif (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos('deflate', $_SERVER['HTTP_ACCEPT_ENCODING']) !== null)) { + addHttpHeader('Content-Encoding: gzip'); + } elseif (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (isInStringIgnoreCase('deflate', $_SERVER['HTTP_ACCEPT_ENCODING']))) { // Compress it for HTTP deflate $GLOBALS['output'] = gzcompress($GLOBALS['output'], 9); // Add header - sendHeader('Content-Encoding: deflate'); + addHttpHeader('Content-Encoding: deflate'); } */ // Add final length - sendHeader('Content-Length: ' . strlen($GLOBALS['output'])); + addHttpHeader('Content-Length: ' . strlen($GLOBALS['output'])); // Flush all headers - flushHeaders(); + flushHttpHeaders(); } // Main compilation loop @@ -218,7 +222,7 @@ function doFinalCompilation ($code, $insertComments = true, $enableCodes = true) $count = 0; // Compile all out - while (((strpos($code, '{--') !== false) || (strpos($code, '{DQUOTE}') !== false) || (strpos($code, '{?') !== false) || (strpos($code, '{%') !== false)) && ($count < 7)) { + while (((isInString('{--', $code)) || (isInString('{DQUOTE}', $code)) || (isInString('{?', $code)) || (isInString('{%', $code) !== false)) && ($count < 7)) { // Init common variables $content = array(); $newContent = ''; @@ -240,8 +244,11 @@ function doFinalCompilation ($code, $insertComments = true, $enableCodes = true) // Use it again $code = $newContent; - // Compile the final code - $code = compileRawCode($code); + // Compile the final code if insertComments is true + if ($insertComments == true) { + // ... because SQL queries shall keep OPEN_CONFIG and such in + $code = compileRawCode($code); + } // END - if // Count round $count++; @@ -271,14 +278,18 @@ function outputRawCode ($htmlCode) { // 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) { + // @TODO Remove these sanity checks if all is fine if (!is_bool($return)) { - // @TODO Remove this sanity-check if all is fine + // $return has to be boolean debug_report_bug(__FUNCTION__, __LINE__, 'return[] is not bool (' . gettype($return) . ')'); } elseif (!is_string($template)) { // $template has to be string debug_report_bug(__FUNCTION__, __LINE__, 'template[] is not string (' . gettype($template) . ')'); } + // Init returned content + $ret = ''; + // Set current template $GLOBALS['current_template'] = $template; @@ -290,9 +301,6 @@ function loadTemplate ($template, $return = false, $content = array(), $compileC // Make all template names lowercase $template = strtolower($template); - // Init some data - $ret = ''; - // Base directory $basePath = sprintf("%stemplates/%s/html/", getPath(), getLanguage()); $extraPath = detectExtraTemplatePath($template); @@ -315,17 +323,16 @@ function loadTemplate ($template, $return = false, $content = array(), $compileC $GLOBALS['tpl_content'][$template] = readFromFile($FQFN); // Do we have to compile the code? - $ret = ''; - 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)) { + if ((isInString('$', $GLOBALS['tpl_content'][$template])) || (isInString('{--', $GLOBALS['tpl_content'][$template])) || (isInString('{?', $GLOBALS['tpl_content'][$template])) || (isInString('{%', $GLOBALS['tpl_content'][$template]))) { // Normal HTML output? - if (isHtmlOutputMode()) { + if ((isHtmlOutputMode()) && (substr($template, 0, 3) != 'js_')) { // Add surrounding HTML comments to help finding bugs faster $ret = '' . $GLOBALS['tpl_content'][$template] . ''; // Prepare eval() command $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($ret), false, true, true, $compileCode) . '";'; } elseif (substr($template, 0, 3) == 'js_') { - // JavaScripts don't like entities and timings + // JavaScripts don't like entities, dollar signs and timings $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['tpl_content'][$template]), false, true, true, $compileCode) . '");'; } else { // Prepare eval() command, other output doesn't like entities, maybe @@ -342,7 +349,7 @@ function loadTemplate ($template, $return = false, $content = array(), $compileC } elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) { // Only admins shall see this warning or when installation mode is active $ret = '
- {--TEMPLATE_404--} + {--TEMPLATE_404--}
(' . $template . ') @@ -434,10 +441,7 @@ function detectExtraTemplatePath ($template) { } // Loads an email template and compiles it -function loadEmailTemplate ($template, $content = array(), $userid = '0', $loadUserData = true) { - // @TODO $DATA is deprecated and should be avoided and replaced with $content - global $DATA; - +function loadEmailTemplate ($template, $content = array(), $userid = NULL, $loadUserData = true) { // Make sure all template names are lowercase! $template = strtolower($template); @@ -457,6 +461,7 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0', $loadU } // END - if // Load user's data + // @DEPRECATED Loading the user data by given userid is deprecated because it is not related to template loading //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UID=' . $userid . ',template=' . $template . ',content[]=' . gettype($content)); if ((isValidUserId($userid)) && (is_array($content))) { // If nickname extension is installed, fetch nickname as well @@ -474,7 +479,7 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0', $loadU } // Merge data if valid - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'content()=' . count($content) . ' - PRE!'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'content()=' . count($content) . ' - BEFORE!'); if ((isUserDataValid()) && ($loadUserData === true)) { // It is valid $content = merge_array($content, getUserDataArray()); @@ -518,8 +523,6 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0', $loadU
{--TEMPLATE_CONTENT--}:
' . print_r($content, true) . '
- {--TEMPLATE_DATA--}: -
' . print_r($DATA, true) . '
'; // Debug mode not active? Then remove the HTML tags @@ -538,12 +541,14 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0', $loadU $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."; + if (function_exists('error_get_last')) { + // Add last error and some lines for better overview + $newContent .= "\n--------------------------------------\nDebug:\n".print_r(error_get_last(), true)."--------------------------------------\nPlease don't alter these informations!\nThanx."; + } // END - if } // END - if // Remove content and data unset($content); - unset($DATA); // Return content return $newContent; @@ -555,7 +560,9 @@ function getMenuCssClasses ($data) { $content = explode('|', $data); // Non-existent index 2 will happen in menu blocks - if (!isset($content[2])) $content[2] = ''; + if (!isset($content[2])) { + $content[2] = ''; + } // END - if // Re-construct the array: 0=visible,1=locked,2=prefix $content['visible'] = $content[0]; @@ -570,7 +577,7 @@ function getMenuCssClasses ($data) { // Generate XHTML code for the CAPTCHA function generateCaptchaCode ($code, $type, $type, $userid) { - return 'Code ' . $code . ''; + return 'Code ' . $code . ''; } // Compiles the given HTML/mail code @@ -600,7 +607,7 @@ function compileCode ($code, $simple = false, $constants = true, $full = true, $ return $code; } -// Compiles the code (use compileCode() only for HTML because of the comments) +// Compiles the code // @TODO $simple/$constants are deprecated function compileRawCode ($code, $simple = false, $constants = true, $full = true, $compileCode = true) { // Is the code a string or shall we not compile? @@ -626,9 +633,30 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true // Compile QUOT and other non-HTML codes $code = str_replace($secChars['to'], $secChars['from'], $code); + // Find $fooBar entries + preg_match_all('/\$(.){0,}/', $code, $matches); + + // Are some matches found? + if ((count($matches) > 0) && (count($matches[0]) > 0)) { + // Scan all matches for not $content + foreach ($matches[0] as $match) { + // Trim match + $match = trim($match); + + // Is the first part not $content and not empty? + if ((!empty($match)) && (substr($match, 0, 8) != '$content')) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'match=' . $match); + // Then replace $ with $ + $matchSecured = str_replace('$', '$', $match); + + // And in $code as well + $code = str_replace($match, $matchSecured, $code); + } // END - if + } // END - if + } // END - if + // Find $content[bla][blub] entries - // @TODO Do only use $content and deprecate $DATA in templates - preg_match_all('/\$(content|DATA)((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches); + preg_match_all('/\$content((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches); // Are some matches found? if ((count($matches) > 0) && (count($matches[0]) > 0)) { @@ -659,12 +687,12 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true } // END - if // Take all string elements - if ((is_string($matches[4][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key.'_' . $matches[4][$key]]))) { + if ((is_string($matches[3][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key.'_' . $matches[3][$key]]))) { // Replace it in the code //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',match=' . $match); $newMatch = str_replace('[', "['", str_replace(']', "']", $match)); $code = str_replace($match, '".' . $newMatch . '."', $code); - $matchesFound[$key . '_' . $matches[4][$key]] = 1; + $matchesFound[$key . '_' . $matches[3][$key]] = 1; $matchesFound[$match] = true; } elseif (!isset($matchesFound[$match])) { // Not yet replaced! @@ -851,15 +879,11 @@ function generateImageOrCode ($img_code, $headerSent = true) { } // Create selection box or array of splitted timestamp -function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = 'center', $return_array=false) { +function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = 'center', $asArray = false) { // Do not continue if ONE_DAY is absend if (!isConfigEntrySet('ONE_DAY')) { - // And return the timestamp itself or empty array - if ($return_array === true) { - return array(); - } else { - return $timestamp; - } + // Abort here + debug_report_bug(__FUNCTION__, __LINE__, 'Configuration entry ONE_DAY is absend. timestamp=' . $timestamp . ',prefix=' . $prefix . ',align=' . $align . ',asArray=' . intval($asArray)); } // END - if // Calculate 2-seconds timestamp @@ -908,16 +932,16 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = // // Now we convert them in seconds... // - if ($return_array) { + if ($asArray === true) { // Just put all data in an array for later use $OUT = array( - 'YEARS' => $Y, - 'MONTHS' => $M, - 'WEEKS' => $W, - 'DAYS' => $D, - 'HOURS' => $h, - 'MINUTES' => $m, - 'SECONDS' => $s + 'Y' => $Y, + 'M' => $M, + 'W' => $W, + 'D' => $D, + 'h' => $h, + 'm' => $m, + 's' => $s ); } else { // Generate table @@ -926,31 +950,31 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = $OUT .= ''; if (isInString('Y', $display) || (empty($display))) { - $OUT .= '
{--_YEARS--}'; + $OUT .= '
{--TIME_UNIT_YEAR--}'; } // END - if if (isInString('M', $display) || (empty($display))) { - $OUT .= '
{--_MONTHS--}'; + $OUT .= '
{--TIME_UNIT_MONTH--}'; } // END - if if (isInString('W', $display) || (empty($display))) { - $OUT .= '
{--_WEEKS--}'; + $OUT .= '
{--TIME_UNIT_WEEK--}'; } // END - if if (isInString('D', $display) || (empty($display))) { - $OUT .= '
{--_DAYS--}'; + $OUT .= '
{--TIME_UNIT_DAY--}'; } // END - if if (isInString('h', $display) || (empty($display))) { - $OUT .= '
{--_HOURS--}'; + $OUT .= '
{--TIME_UNIT_HOUR--}'; } // END - if if (isInString('m', $display) || (empty($display))) { - $OUT .= '
{--_MINUTES--}'; + $OUT .= '
{--TIME_UNIT_MINUTE--}'; } // END - if if (isInString('s', $display) || (empty($display))) { - $OUT .= '
{--_SECONDS--}'; + $OUT .= '
{--TIME_UNIT_SECOND--}'; } // END - if $OUT .= ''; @@ -1199,6 +1223,9 @@ function debug_report_bug ($F, $L, $message = '', $sendEmail = true) { die(''); } // END - if + // Set HTTP status to 500 (e.g. for AJAX requests) + setHttpStatus('500 Internal Server Error'); + // Set this function as called $GLOBALS[__FUNCTION__] = true; @@ -1242,7 +1269,9 @@ function debug_report_bug ($F, $L, $message = '', $sendEmail = true) { // Compile characters which are allowed in URLs function compileUriCode ($code, $simple = true) { // Compile constants - if ($simple === false) $code = str_replace('{--', '".', str_replace('--}', '."', $code)); + if ($simple === false) { + $code = str_replace('{--', '".', str_replace('--}', '."', $code)); + } // END - if // Compile QUOT and other non-HTML codes $code = str_replace('{DOT}', '.', @@ -1263,17 +1292,18 @@ function compileUriCode ($code, $simple = true) { // Handle message codes from URL function handleCodeMessage () { - if (isGetRequestParameterSet('code')) { + // Is 'code' set? + if (isGetRequestElementSet('code')) { // Default extension is 'unknown' $ext = 'unknown'; // Is extension given? - if (isGetRequestParameterSet('ext')) { - $ext = getRequestParameter('ext'); + if (isGetRequestElementSet('ext')) { + $ext = getRequestElement('ext'); } // END - if // Convert the 'code' parameter from URL to a human-readable message - $message = getMessageFromErrorCode(getRequestParameter('code')); + $message = getMessageFromErrorCode(getRequestElement('code')); // Load message template loadTemplate('message', false, $message); @@ -1393,42 +1423,54 @@ function linenumberCode ($code) { // Determines the right page title function determinePageTitle () { + // Init page title + $pageTitle = ''; + // Config and database connection valid? if ((isConfigLocalLoaded()) && (isConfigurationLoaded()) && (SQL_IS_LINK_UP()) && (isExtensionInstalledAndNewer('sql_patches', '0.1.6'))) { - // Init title - $TITLE = ''; - // Title decoration enabled? - if ((isTitleDecorationEnabled()) && (getConfig('title_left') != '')) $TITLE .= trim(getConfig('title_left')) . ' '; + if ((isTitleDecorationEnabled()) && (getConfig('title_left') != '')) { + $pageTitle .= '{%config,trim=title_left%} '; + } // END - if // Do we have some extra title? if (isExtraTitleSet()) { - // Then prepent it - $TITLE .= getExtraTitle() . ' by '; + // Then prepend it + $pageTitle .= '{%pipe,getExtraTitle%} by '; } // END - if // Add main title - $TITLE .= getMainTitle(); + $pageTitle .= '{?MAIN_TITLE?}'; // Add title of module? (middle decoration will also be added!) if ((isModuleTitleEnabled()) || ((!isWhatSet()) && (!isActionSet())) || (getModule() == 'admin')) { - $TITLE .= ' ' . trim(getConfig('title_middle')) . ' {DQUOTE} . getModuleTitle(getModule()) . {DQUOTE}'; + $pageTitle .= ' {%config,trim=title_middle%} {DQUOTE} . getModuleTitle(getModule()) . {DQUOTE}'; } // END - if // Add title from what file - $mode = ''; - if (getModule() == 'login') $mode = 'member'; - elseif (getModule() == 'index') $mode = 'guest'; - if ((!empty($mode)) && (isWhatTitleEnabled())) $TITLE .= ' ' . trim(getConfig('title_middle')) . ' ' . getTitleFromMenu($mode, getWhat()); + $menuMode = ''; + if (getModule() == 'login') { + $menuMode = 'member'; + } elseif (getModule() == 'index') { + $menuMode = 'guest'; + } elseif (getModule() == 'admin') { + $menuMode = 'admin'; + } elseif (getModule() == 'sponsor') { + $menuMode = 'sponsor'; + } - // Add title decorations? (right) - if ((isTitleDecorationEnabled()) && (getConfig('title_right') != '')) $TITLE .= ' ' . trim(getConfig('title_right')); + // Add middle part (always in admin area!) + if ((!empty($menuMode)) && ((isWhatTitleEnabled()) || ($menuMode == 'admin'))) { + $pageTitle .= ' {%config,trim=title_middle%} ' . getTitleFromMenu($menuMode, getWhat()); + } // END - if - // Remember title in constant for the template - $pageTitle = $TITLE; + // Add title decorations? (right) + if ((isTitleDecorationEnabled()) && (getConfig('title_right') != '')) { + $pageTitle .= ' {%config,trim=title_right%}'; + } // END - if } elseif ((isInstalled()) && (isAdminRegistered())) { // Installed, admin registered but no ext-sql_patches - $pageTitle = '[-- ' . getMainTitle() . ' - ' . getModuleTitle(getModule()) . ' --]'; + $pageTitle = '[-- {?MAIN_TITLE?} - {%pipe,getModule,getModuleTitle%} --]'; } elseif ((isInstalled()) && (!isAdminRegistered())) { // Installed but no admin registered $pageTitle = '{--INSTALLER_OF_MAILER_NO_ADMIN--}'; @@ -1540,7 +1582,7 @@ function sendModeMails ($mod, $modes) { $hash = encodeHashForCookie(getUserData('password')); // Does the hash match or should we change it? - if (($hash == getSession('u_hash')) || (postRequestParameter('pass1') == postRequestParameter('pass2'))) { + if (($hash == getSession('u_hash')) || (postRequestElement('pass1') == postRequestElement('pass2'))) { // Load the data $content = getUserDataArray(); @@ -1555,7 +1597,7 @@ function sendModeMails ($mod, $modes) { switch ($mode) { case 'normal': break; // Do not add any special lines case 'email': // Email was changed! - $content['message'] = '{--MEMBER_CHANGED_EMAIL--}' . ': ' . postRequestParameter('old_email') . "\n"; + $content['message'] = '{--MEMBER_CHANGED_EMAIL--}' . ': ' . postRequestElement('old_email') . "\n"; break; case 'password': // Password was changed @@ -1571,7 +1613,7 @@ function sendModeMails ($mod, $modes) { if (isExtensionActive('country')) { // Replace code with description - $content['country'] = generateCountryInfo(postRequestParameter('country_code')); + $content['country'] = generateCountryInfo(postRequestElement('country_code')); } // END - if // Merge content with data from POST @@ -1599,16 +1641,16 @@ function sendModeMails ($mod, $modes) { default: // Unsupported module! logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unsupported module %s detected.", $mod)); - $content['message'] = '{--UNKNOWN_MODULE--}'; + $content['message'] = '{--UNKNOWN_MODULE--}'; break; } // END - switch } else { // Passwords mismatch - $content['message'] = '{--MEMBER_PASSWORD_ERROR--}'; + $content['message'] = '{--MEMBER_PASSWORD_ERROR--}'; } } else { // Could not load profile - $content['message'] = '{--MEMBER_CANNOT_LOAD_PROFILE--}'; + $content['message'] = '{--MEMBER_CANNOT_LOAD_PROFILE--}'; } // Send email to user if required @@ -1634,7 +1676,7 @@ function sendModeMails ($mod, $modes) { } // Generates a 'selection box' from given array -function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionContent = '', $extraName = '') { +function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionContent = '', $extraName = '', $templateName = '') { // Start the output $OUT = ''; - // Add the options + // Add options $out .= generateOptionList('/ARRAY/', array('M', 'F', 'C'), array('{--GENDER_M--}', '{--GENDER_F--}', '{--GENDER_C--}'), $selectedGender); // Finish HTML code @@ -1768,8 +1866,64 @@ function generateGenderSelectionBox ($selectedGender = '') { return $out; } +// Generates a selection box for given default value +function generateTimeUnitSelectionBox ($defaultUnit, $fieldName, $unitArray) { + // Init variables + $messageIds = array(); + + // Generate message id array + foreach ($unitArray as $unit) { + // "Translate" it + $messageIds[] = translateTimeUnit($unit); + } // END - foreach + + // Start the HTML code + $out = ''; + + // Return the code + return $out; +} + +// Function to add style tag (wether display:none/block) +function addStyleMenuContent ($menuMode, $mainAction, $action) { + // Do we have foo_menu_javascript enabled? + if ((!isConfigEntrySet($menuMode . '_menu_javascript')) || (getConfig($menuMode . '_menu_javascript') == 'N')) { + // Silently abort here, not enabled + return ''; + } // END - if + + // Is action=mainAction? + if ($action == $mainAction) { + // Add "menu open" style + return ' style="display:block"'; + } else { + return ' style="display:none"'; + } +} + +// Function to add onclick attribute +function addJavaScriptMenuContent ($menuMode, $mainAction, $action, $what) { + // Do we have foo_menu_javascript enabled? + if ((!isConfigEntrySet($menuMode . '_menu_javascript')) || (getConfig($menuMode . '_menu_javascript') == 'N')) { + // Silently abort here, not enabled + return ''; + } // END - if + + // Prepare output + $OUT = ' onclick="return changeMenuFoldState(' . $menuMode . ', ' . $mainAction . ', ' . $action . ', ' . $what . ')'; + + // Return output + return $OUT; +} + //----------------------------------------------------------------------------- -// Template helper functions for EL +// Template helper functions for EL code //----------------------------------------------------------------------------- // Color-switch helper function @@ -1792,9 +1946,9 @@ function doTemplateColorSwitch ($template, $clear = false, $return = true) { } // Helper function for extension registration link -function doTemplateExtensionRegistrationLink ($template, $dummy, $ext_name) { +function doTemplateExtensionRegistrationLink ($template, $clear, $ext_name) { // Default is all non-productive - $OUT = '{--ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK--}'; + $OUT = '
{--ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK--}
'; // Is the given extension non-productive? if (isExtensionProductive($ext_name)) { @@ -1807,16 +1961,77 @@ function doTemplateExtensionRegistrationLink ($template, $dummy, $ext_name) { } // Helper function to create bonus mail admin links -function doTemplateAdminBonusMailLinks ($template, $dummy, $bonusId) { +function doTemplateAdminBonusMailLinks ($template, $clear, $bonusId) { // Call the inner function return generateAdminMailLinks('bid', $bonusId); } // Helper function to create member mail admin links -function doTemplateAdminMemberMailLinks ($template, $dummy, $mailId) { +function doTemplateAdminMemberMailLinks ($template, $clear, $mailId) { // Call the inner function return generateAdminMailLinks('mid', $mailId); } +// Helper function to create a selection box for YES/NO configuration entries +function doTemplateConfigurationYesNoSelectionBox ($template, $clear, $configEntry) { + // Default is a "missing entry" warning + $OUT = '
!' . $configEntry . '!
'; + + // Generate the HTML code + if (isConfigEntrySet($configEntry)) { + // Configuration entry is found + $OUT = ''; + } // END - if + + // Return it + return $OUT; +} + +// Helper function to create a selection box for YES/NO form fields +function doTemplateYesNoSelectionBox ($template, $clear, $formField) { + // Generate the HTML code + $OUT = ''; + + // Return it + return $OUT; +} + +// Helper function to create a selection box for YES/NO form fields, by NO is default +function doTemplateNoYesSelectionBox ($template, $clear, $formField) { + // Generate the HTML code + $OUT = ''; + + // Return it + return $OUT; +} + +// Helper function to add extra content for member area (module=login) +function doTemplateMemberFooterExtras ($template, $clear) { + // Is a member logged in? + if (!isMember()) { + // This shall not happen + debug_report_bug(__FUNCTION__, __LINE__, 'Please use this template helper only for logged-in members.'); + } // END - if + + // Init filter data + $filterData = array( + 'userid' => getMemberId(), + 'template' => $template, + 'output' => '', + ); + + // Run the filter chain + $filterData = runFilterChain('member_footer_extras', $filterData); + + // Return output + return $filterData['output']; +} + // [EOF] ?>