+ sendAdminNotification('{--ADMIN_NEW_ACCOUNT_SUBJECT--}', 'admin_register_done', $content, $filterData['register_insert_id']);
+
+ // All fine
+ return TRUE;
+}
+
+// Initialize extra registration SQL
+function initExtraRegistrationSql () {
+ $GLOBALS['register_sql_columns'] = '';
+ $GLOBALS['register_sql_data'] = '';
+}
+
+// Add extra column for registration SQL
+function addExtraRegistrationColumns ($column) {
+ // Add column
+ $GLOBALS['register_sql_columns'] .= $column;
+}
+
+// Add extra data for registration SQL
+function addExtraRegistrationData ($data) {
+ // Add column
+ $GLOBALS['register_sql_data'] .= $data;
+}
+
+//-----------------------------------------------------------------------------
+// Wrapper functions for ext-register
+//-----------------------------------------------------------------------------
+
+// Getter for 'display_refid'
+function getDisplayRefid () {
+ // Is the cache entry set?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // No, so determine it
+ $GLOBALS[__FUNCTION__] = getConfig('display_refid');
+ } // END - if
+
+ // Return cached entry
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Checks whether 'display_refid' is "Y"
+function isDisplayRefidEnabled () {
+ // Is the cache entry set?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // No, so determine it
+ $GLOBALS[__FUNCTION__] = (getDisplayRefid() == 'Y');
+ } // END - if
+
+ // Return cached entry
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for 'ip_timeout'
+function getIpTimeout () {
+ // Is the cache entry set?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // No, so determine it
+ $GLOBALS[__FUNCTION__] = getConfig('ip_timeout');
+ } // END - if
+
+ // Return cached entry
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for 'register_default'
+function getRegisterDefault () {
+ // Is the cache entry set?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // No, so determine it
+ $GLOBALS[__FUNCTION__] = getConfig('register_default');
+ } // END - if
+
+ // Return cached entry
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Checks whether 'register_default' is "YES"
+function isRegisterDefaultEnabled () {
+ // Is the cache entry set?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // No, so determine it
+ $GLOBALS[__FUNCTION__] = (getRegisterDefault() == 'Y');
+ } // END - if
+
+ // Return cached entry
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for 'register_generate_password_empty'
+function getRegisterGeneratePasswordEmpty () {
+ // Is the cache entry set?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // No, so determine it
+ $GLOBALS[__FUNCTION__] = getConfig('register_generate_password_empty');
+ } // END - if
+
+ // Return cached entry
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Checks whether 'register_generate_password_empty' is "YES"
+function isRegisterGeneratePasswordEmptyEnabled () {
+ // Is the cache entry set?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // No, so determine it
+ $GLOBALS[__FUNCTION__] = (getRegisterGeneratePasswordEmpty() == 'Y');
+ } // END - if
+
+ // Return cached entry
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for 'default_registration_provider'
+function getDefaultRegistrationProvider () {
+ // Is the cache entry set?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // No, so determine it
+ $GLOBALS[__FUNCTION__] = getConfig('default_registration_provider');
+ } // END - if
+
+ // Return cached entry
+ return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for least_cats
+function getLeastCats () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('least_cats');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// ----------------------------------------------------------------------------
+// Template helper functions
+// ----------------------------------------------------------------------------
+
+// Template helper for generating a category selection table for admin area with given configuration entry
+function doTemplateAdminRegisterCategoryTable ($templateName, $clear = FALSE, $configEntry) {
+ // Call the inner function
+ return registerGenerateCategoryTable('admin', $configEntry);
+}
+
+// Template helper for generating a list of all activated user registration provider
+function doTemplateGuestRegistrationList ($templateName, $clear = FALSE) {
+ // Init output
+ $content = '';
+
+ // Default is only activated provider
+ $addSql = " AND `provider_is_active`='Y'";
+
+ // Is admin logged-in?
+ if (isAdmin()) {
+ // Then show all
+ $addSql = '';
+ } // END - if
+
+ // Search for all
+ $result = sqlQuery("SELECT
+ `provider_name`,
+ `provider_extension`
+FROM
+ `{?_MYSQL_PREFIX?}_user_register_provider`
+WHERE
+ `provider_extension` != 'register'
+ " . $addSql . "
+ORDER BY
+ `provider_name` ASC", __FUNCTION__, __LINE__);
+
+ // Are there entries?
+ if (sqlNumRows($result) > 0) {
+ // Loop through all
+ $row = '';
+ while ($content = sqlFetchArray($result)) {
+ // Load row template
+ $row .= loadTemplate('guest_registration_provider_row', TRUE, $content);
+ } // END - while
+
+ // Load main template
+ $content = loadTemplate('guest_registration_provider', TRUE, $row);
+ } else {
+ // Nothing found
+ $content = returnMessage('{--GUEST_EXTRA_REGISTRATION_PROVIDER_404--}');
+ }
+
+ // Free result
+ sqlFreeResult($result);
+
+ // Return the generated content
+ return $content;
+}
+
+// ----------------------------------------------------------------------------
+// "Translator" functions
+// ----------------------------------------------------------------------------
+
+function translateRegistrationProviderName ($providerName) {
+ // "Translate it"
+ return '{--REGISTRATION_PROVIDER_' . strtoupper($providerName) . '--}';