+// Translates the "pool type" into human-readable
+function translatePoolType ($type) {
+ // Return "translation"
+ return sprintf("{--POOL_TYPE_%s--}", strtoupper($type));
+}
+
+// "Translates" given time unit
+function translateTimeUnit ($unit) {
+ // Default is unknown
+ $message = '{%message,TIME_UNIT_UNKNOWN=' . $unit . '%}';
+
+ // "Detect" it
+ switch ($unit) {
+ case 'Y': // Years
+ $message = '{--TIME_UNIT_YEAR--}';
+ break;
+
+ case 'M': // Months
+ $message = '{--TIME_UNIT_MONTH--}';
+ break;
+
+ case 'W': // Weeks
+ $message = '{--TIME_UNIT_WEEK--}';
+ break;
+
+ case 'D': // Days
+ $message = '{--TIME_UNIT_DAY--}';
+ break;
+
+ case 'h': // Hours
+ $message = '{--TIME_UNIT_HOUR--}';
+ break;
+
+ case 'm': // Minute
+ $message = '{--TIME_UNIT_MINUTE--}';
+ break;
+
+ case 's': // Seconds
+ $message = '{--TIME_UNIT_SECOND--}';
+ break;
+
+ default: // Unknown value detected
+ logDebugMessage(__FUNCTION__, __LINE__, 'Unknown time unit ' . $unit . ' detected.');
+ break;
+ } // END - switch
+
+ // Return message
+ return $message;
+}
+
+// Displays given message in admin_settings_saved template
+function displayMessage ($message, $return = false) {
+ // Load the template
+ return loadTemplate('admin_settings_saved', $return, $message);
+}
+
+// Generates a selection box for (maybe) given gender
+function generateGenderSelectionBox ($selectedGender = '') {
+ // Start the HTML code
+ $out = '<select name="gender" size="1" class="form_select">';
+
+ // Add options
+ $out .= generateOptionList('/ARRAY/', array('M', 'F', 'C'), array('{--GENDER_M--}', '{--GENDER_F--}', '{--GENDER_C--}'), $selectedGender);
+
+ // Finish HTML code
+ $out .= '</select>';
+
+ // Return the code
+ 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 = '<select name="' . $fieldName . '" size="1" class="form_select">';
+
+ // Add options
+ $out .= generateOptionList('/ARRAY/', $unitArray, $messageIds, $defaultUnit);
+
+ // Finish HTML code
+ $out .= '</select>';
+
+ // 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 code
+//-----------------------------------------------------------------------------
+
+// Color-switch helper function
+function doTemplateColorSwitch ($template, $clear = false, $return = true) {
+ // Is it there?
+ if (!isset($GLOBALS['color_switch'][$template])) {
+ // Initialize it
+ initTemplateColorSwitch($template);
+ } elseif ($clear === false) {
+ // Switch color if called from loadTemplate()
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SWITCH:' . $template);
+ $GLOBALS['color_switch'][$template] = 3 - $GLOBALS['color_switch'][$template];
+ }
+
+ // Return CSS class name
+ if ($return === true) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'RETURN:' . $template . '=' . $GLOBALS['color_switch'][$template]);
+ return 'switch_sw' . $GLOBALS['color_switch'][$template];
+ } // END - if
+}
+
+// Helper function for extension registration link
+function doTemplateExtensionRegistrationLink ($template, $clear, $ext_name) {
+ // Default is all non-productive
+ $OUT = '<div style="cursor:help" title="{%message,ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK_TITLE=' . $ext_name . '%}">{--ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK--}</div>';
+
+ // Is the given extension non-productive?
+ if (isExtensionProductive($ext_name)) {
+ // Productive code
+ $OUT = '<a title="{--ADMIN_REGISTER_EXTENSION_TITLE--}" href="{%url=modules.php?module=admin&what=extensions&reg_ext=' . $ext_name . '%}">{--ADMIN_REGISTER_EXTENSION--}</a>';
+ } // END - if
+
+ // Return code
+ return $OUT;
+}
+
+// Helper function to create bonus mail admin links
+function doTemplateAdminBonusMailLinks ($template, $clear, $bonusId) {
+ // Call the inner function
+ return generateAdminMailLinks('bid', $bonusId);
+}
+
+// Helper function to create member mail admin links
+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 = '<div class="bad" style="cursor:help" title="{%message,ADMIN_CONFIG_ENTRY_MISSING=' . $configEntry . '%}">!' . $configEntry . '!</div>';
+
+ // Generate the HTML code
+ if (isConfigEntrySet($configEntry)) {
+ // Configuration entry is found
+ $OUT = '<select name="' . $configEntry . '" class="form_select" size="1">
+{%config,generateYesNoOptionList=' . $configEntry . '%}
+</select>';
+ } // 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 = '<select name="' . $formField . '" class="form_select" size="1">
+{%pipe,generateYesNoOptionList%}
+</select>';
+
+ // 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 = '<select name="' . $formField . '" class="form_select" size="1">
+{%pipe,generateYesNoOptionList=N%}
+</select>';
+
+ // 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'];
+}
+