Index: modules/project/release/project_release.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release.module,v retrieving revision 1.13 diff -u -p -r1.13 project_release.module --- modules/project/release/project_release.module 13 Jan 2007 07:38:10 -0000 1.13 +++ modules/project/release/project_release.module 15 Jan 2007 08:20:00 -0000 @@ -833,19 +833,37 @@ function project_release_compatibility_l * @see project_page_overview */ function project_release_version_filter_form($version = NULL) { + global $user; if ($terms = project_release_compatibility_list()) { - if (is_null($version)) { - $version = isset($_SESSION['project_version']) ? $_SESSION['project_version'] : variable_get('project_release_overview', -1); + if ($user->uid) { + if (is_null($version)) { + $version = isset($_SESSION['project_version']) ? $_SESSION['project_version'] : variable_get('project_release_overview', -1); + } + $form['version_tid'] = array( + '#type' => 'select', + '#default_value' => $version, + '#options' => $terms, + ); + $form['submit'] = array( + '#type' => 'submit', + '#value' => t('Go') + ); + } + else { + $destination = drupal_get_destination(); + $default_version = variable_get('project_release_overview', -1); + $form['version_tid'] = array( + '#type' => 'select', + '#default_value' => $default_version, + '#options' => array($default_version => $terms[$default_version]), + '#disabled' => TRUE, + ); + $register = ''; + if (variable_get('user_register', 1)) { + $register = ' or ' . l(t('register'), 'user/register', array(), $destination) .' '; + } + $form['version_login'] = array('#value' => l(t('Login'), 'user/login', array(), $destination) . $register . t('to modify filter.')); } - $form['version_tid'] = array( - '#type' => 'select', - '#default_value' => $version, - '#options' => $terms, - ); - $form['submit'] = array( - '#type' => 'submit', - '#value' => t('Go') - ); } return isset($form) ? $form : ''; } @@ -856,6 +874,14 @@ function project_release_version_filter_ } } +function project_release_version_filter_form_validate($form_id, $form_values, $form) { + global $user; + if (!$user->uid && $form_values['version_tid'] != variable_get('project_release_overview', -1)) { + $vocab = taxonomy_get_vocabulary(_project_release_get_api_vid()); + form_set_error('version_tid', t('You must login or register to modify the @vocab filter.', array('@vocab' => $vocab->name))); + } +} + function theme_project_release_version_filter_form($form) { if (project_release_get_api_taxonomy()) { $vocab = taxonomy_get_vocabulary(_project_release_get_api_vid());