+// 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
+ if (!isset($GLOBALS['time_units'][$unit])) {
+ // Not found
+ logDebugMessage(__FUNCTION__, __LINE__, 'Unknown time unit ' . $unit . ' detected.');
+ } else {
+ // Translate it with generic function
+ $message = translateGeneric('TIME_UNIT' , $GLOBALS['time_units'][$unit]);
+ }
+
+ // 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 = '', $fieldName = 'gender') {
+ // 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
+ );
+
+ // 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
+ array_push($messageIds, '{%pipe,translateTimeUnit=' . $unit . '%}');
+ } // END - foreach
+
+ // Start the HTML code
+ $out = '<select name="' . $fieldName . '" size="1" class="form_select">';
+
+ // Add options
+ $out .= generateOptions('/ARRAY/', $unitArray, $messageIds, $defaultUnit);
+
+ // Finish HTML code
+ $out .= '</select>';
+
+ // Return the code
+ return $out;
+}
+
+// Function to add style tag (whether 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 ($templateName, $clear = false, $return = true) {
+ // Is it there?
+ if (!isset($GLOBALS['color_switch'][$templateName])) {
+ // Initialize it
+ initTemplateColorSwitch($templateName);
+ } elseif ($clear === false) {
+ // Switch color if called from loadTemplate()
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SWITCH:' . $templateName);
+ $GLOBALS['color_switch'][$templateName] = 3 - $GLOBALS['color_switch'][$templateName];
+ }
+
+ // Return CSS class name
+ if ($return === true) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'RETURN:' . $templateName . '=' . $GLOBALS['color_switch'][$templateName]);
+ return 'switch_sw' . $GLOBALS['color_switch'][$templateName];
+ } // END - if
+}
+
+// Helper function for extension registration link
+function doTemplateExtensionRegistrationLink ($templateName, $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 (isExtensionDeprecated($ext_name)) {
+ // Is deprecated
+ $OUT = '<span title="{--ADMIN_EXTENSION_IS_DEPRECATED_TITLE--}">---</span>';
+ } elseif (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>';
+ }
+
+ // Return code
+ return $OUT;
+}
+
+// Helper function to create bonus mail admin links
+function doTemplateAdminBonusMailLinks ($templateName, $clear, $bonusId) {
+ // Call the inner function
+ return generateAdminMailLinks('bid', $bonusId);
+}
+
+// Helper function to create member mail admin links
+function doTemplateAdminMemberMailLinks ($templateName, $clear, $mailId) {
+ // Call the inner function
+ return generateAdminMailLinks('mid', $mailId);
+}
+
+// Helper function to create a selection box for YES/NO configuration entries
+function doTemplateConfigurationYesNoSelectionBox ($templateName, $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,generateYesNoOptions=' . $configEntry . '%}
+</select>';
+ } // END - if
+
+ // Return it
+ return $OUT;
+}
+
+// Helper function to create a selection box for YES/NO form fields
+function doTemplateYesNoSelectionBox ($templateName, $clear, $formField) {
+ // Generate the HTML code
+ $OUT = '<select name="' . $formField . '" class="form_select" size="1">
+{%pipe,generateYesNoOptions%}
+</select>';
+
+ // Return it
+ return $OUT;
+}
+
+// Helper function to create a selection box for YES/NO form fields, by NO is default
+function doTemplateNoYesSelectionBox ($templateName, $clear, $formField) {
+ // Generate the HTML code
+ $OUT = '<select name="' . $formField . '" class="form_select" size="1">
+{%pipe,generateYesNoOptions=N%}
+</select>';
+
+ // Return it
+ return $OUT;
+}
+
+// Helper function to add extra content for member area (module=login)
+function doTemplateMemberFooterExtras ($templateName, $clear) {
+ // Is a member logged in?
+ if (!isMember()) {
+ // This shall not happen
+ reportBug(__FUNCTION__, __LINE__, 'Please use this template helper only for logged-in members.');
+ } // END - if
+
+ // Init filter data
+ $filterData = array(
+ // Current user's id number
+ 'userid' => getMemberId(),
+ // Name of used template
+ 'template' => $templateName,
+ // Target array for gathered data
+ '__data' => array(),
+ // Where the HTML output will go
+ '__output' => '',
+ );
+
+ // Run the filter chain
+ $filterData = runFilterChain('member_footer_extras', $filterData);
+
+ // Return output
+ return $filterData['__output'];
+}
+
+/**
+ * Helper function to determine whether current userid is set, if none is set,
+ * return a zero, else an EL code is being returned as of this function is used
+ * only in templates.
+ *
+ * @param $templateName Name of template (unused)
+ * @param $clear Wether to clear something (unused)
+ * @return $userId Wether zero or EL code snippet
+ */
+function doTemplateUserId ($templateName, $clear) {
+ // By default no userid is set
+ $userId = '0';
+
+ // Is there a user id currently set?
+ if (isCurrentUserIdSet()) {
+ // Then get the current user id
+ $userId = getCurrentUserId();
+ } // END - if
+
+ // Return it
+ return $userId;
+}
+
+// Template helper function to generate "Terms&Conditions" link (EL code again)
+function doTemplateGetTermsConditionsLink ($templateName, $clear) {
+ /*
+ * Use default link by default ;-) This link, however, will become
+ * deprecated once ext-terms is rolled out.
+ */
+ $linkCode = '{%url=modules.php?module=index&what=agb%}';
+
+ // Is ext-terms installed?
+ if (isExtensionInstalled('terms')) {
+ // Then use that link (only 'what' has changed)
+ $linkCode = '{%url=modules.php?module=index&what=terms%}';
+ } // END - if
+
+ // Return link (EL) code
+ return $linkCode;
+}
+
+// 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'),
+ );
+
+ // Handle it over to generateSelectionBoxFromArray()
+ $content = generateSelectionBoxFromArray($lockedModes, 'points_locked_mode', 'mode', '', '', '', $default);
+
+ // Return prepared content
+ return $content;
+}
+
+// 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'),
+ );
+
+ // Handle it over to generateSelectionBoxFromArray()
+ $content = generateSelectionBoxFromArray($paymentMethods, 'points_payment_method', 'method', '', '', '', $default);
+
+ // Return prepared content
+ return $content;
+}
+