Index: og_reg_keys.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/og_reg_keys/og_reg_keys.install,v retrieving revision 1.2 diff -u -p -r1.2 og_reg_keys.install --- og_reg_keys.install 26 Nov 2008 19:42:21 -0000 1.2 +++ og_reg_keys.install 14 Sep 2009 18:32:03 -0000 @@ -41,3 +41,18 @@ function og_reg_keys_install() { function og_reg_keys_uninstall() { drupal_uninstall_schema('og_reg_keys'); } + +/** + * This system variable haas moved to a tristate configuration. See the constant + * definitions in og_reg_keys.module. + */ +function og_reg_keys_update_6100() { + if (variable_get('og_reg_key_required', 1)) { + variable_set('og_reg_key_required', 0); + } + else { + variable_set('og_reg_key_required', 1); + } + + return array(); +} Index: og_reg_keys.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/og_reg_keys/og_reg_keys.module,v retrieving revision 1.2.2.1 diff -u -p -r1.2.2.1 og_reg_keys.module --- og_reg_keys.module 9 Jun 2009 19:30:40 -0000 1.2.2.1 +++ og_reg_keys.module 14 Sep 2009 18:32:03 -0000 @@ -6,6 +6,10 @@ * Provides group registration keys to restrict group access. */ +define('OG_REG_KEYS_REQUIRED', 0); +define('OG_REG_KEYS_NOT_REQUIRED_VISIBLE', 1); +define('OG_REG_KEYS_NOT_REQUIRED_NOT_VISIBLE', 2); + /** * Implementation of hook_help(). */ @@ -117,6 +121,9 @@ function og_reg_keys_user($op, &$edit, & form_set_error('og_reg_key', t('Not a valid group registration key.')); } } + } + else if (og_reg_keys_required_for_registration()) { + form_set_error('og_reg_key', t('Group registration key is required.')); } break; case 'insert': @@ -136,13 +143,15 @@ function og_reg_keys_user($op, &$edit, & // no redirect to node as this is someone adding users through the standard interface break; case 'register': - $form['og_reg_key'] = array( - '#type' => 'textfield', - '#title' => t('Group registration key'), - '#required' => variable_get('og_reg_key_required', 1), - '#description' => '', - '#size' => 64, - ); + if (og_reg_keys_visible_on_registration_form()) { + $form['og_reg_key'] = array( + '#type' => 'textfield', + '#title' => t('Group registration key'), + '#required' => og_reg_keys_required_for_registration(), + '#description' => _og_reg_keys_help_text(), + '#size' => 64, + ); + } return $form; break; @@ -240,11 +249,27 @@ function og_reg_keys_settings() { ); $form['og_reg_key_required'] = array( - '#type' => 'checkbox', - '#title' => t('Registration Key Required for new account creation'), - '#default_value' => variable_get('og_reg_key_required', 1), + '#type' => 'radios', + '#title' => t('Registration key control for new account creation'), + '#required' => TRUE, + '#options' => array( + OG_REG_KEYS_REQUIRED => t('Registration key is required for new account creation.'), + OG_REG_KEYS_NOT_REQUIRED_VISIBLE => + t('Registration key is not required for new account creation. Display it on the registration form.'), + OG_REG_KEYS_NOT_REQUIRED_NOT_VISIBLE => + t('Registration key is not required for new account creation. Do not display it on the registration form.'), + ), + '#default_value' => variable_get('og_reg_key_required', OG_REG_KEYS_REQUIRED), ); + $form['og_reg_keys_help_text'] = array( + '#type' => 'textarea', + '#title' => t('Registration help text'), + '#description' => t('Additional help text to be added to the user registration form.'), + '#default_value' => _og_reg_keys_help_text(), + '#required' => TRUE, + ); + return system_settings_form($form); } @@ -484,13 +509,15 @@ function og_reg_keys_register() { '#size' => 28, '#maxlength' => 64 ); - - $form['og_reg_key'] = array( - '#type' => 'textfield', - '#title' => t('Group registration key'), - '#required' => variable_get('og_reg_key_required', 1), - '#size' => 28, - ); + + if (og_reg_keys_visible_on_registration_form()) { + $form['og_reg_key'] = array( + '#type' => 'textfield', + '#title' => t('Group registration key'), + '#required' => og_reg_keys_required_for_registration(), + '#size' => 28, + ); + } $form['submit'] = array('#type' => 'submit', '#value' => t('Create account')); return $form; @@ -611,6 +638,13 @@ function og_reg_keys_validate_key($node) } /** + * Return the user account registration key help text. + */ +function _og_reg_keys_help_text() { + return variable_get('og_reg_keys_help_text', t("If you were given a registration key for this site you can use it here to join a group.")); +} + +/** * Return the group join message. */ function _og_reg_keys_message() { @@ -666,3 +700,23 @@ function _og_reg_keys_validate_user($nam return $error; } + +function og_reg_keys_required_for_registration() { + if (variable_get('og_reg_key_required', OG_REG_KEYS_REQUIRED) == + OG_REG_KEYS_REQUIRED){ + return true; + } + else { + return false; + } +} + +function og_reg_keys_visible_on_registration_form() { + $orkr = variable_get('og_reg_key_required', OG_REG_KEYS_REQUIRED); + if($orkr == OG_REG_KEYS_REQUIRED || $orkr == OG_REG_KEYS_NOT_REQUIRED_VISIBLE){ + return true; + } + else { + return false; + } +}