Index: modules/project/release/project_release.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release.module,v retrieving revision 1.5 diff -u -p -r1.5 project_release.module --- modules/project/release/project_release.module 28 Dec 2006 00:45:29 -0000 1.5 +++ modules/project/release/project_release.module 28 Dec 2006 19:31:10 -0000 @@ -1094,9 +1094,9 @@ function project_release_alter_release_f elseif ($tids = variable_get('project_release_active_compatibility_tids', '')) { // We don't have the term since we're adding a new release. // Restrict to the active terms (if any). - foreach ($form['taxonomy'][$vid]['#options'] as $tid => $name) { - if ($tid && $tids[$tid]) { - $options[$tid] = check_plain($name); + foreach ($tids as $tid) { + if (($obj = project_get_taxonomy_option($form, $vid, $tid))) { + $options[$tid] = $obj; } } if (!empty($options)) { Index: modules/project/project.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/project.module,v retrieving revision 1.259 diff -u -p -r1.259 project.module --- modules/project/project.module 22 Dec 2006 23:53:20 -0000 1.259 +++ modules/project/project.module 28 Dec 2006 19:31:11 -0000 @@ -942,3 +942,22 @@ function project_autocomplete($string) { function project_use_taxonomy() { return module_exists('taxonomy') && taxonomy_get_tree(_project_get_vid()); } + +/** + * Taxonomy arrays are no longer simple (tid => name) mappings, but + * instead use objects in a somewhat counter-intuative way. This + * helper method extracts the right option out of the form array for + * the specific taxonomy id (tid) you're looking for. + */ +function project_get_taxonomy_option($form, $vid, $tid) { + if (!isset($form['taxonomy'][$vid])) { + return NULL; + } + foreach ($form['taxonomy'][$vid]['#options'] as $key => $obj) { + if (isset($obj->option[$tid])) { + return $obj; + } + } + return NULL; +} + Index: modules/cvslog/cvs.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cvslog/cvs.module,v retrieving revision 1.134 diff -u -p -r1.134 cvs.module --- modules/cvslog/cvs.module 28 Dec 2006 02:06:46 -0000 1.134 +++ modules/cvslog/cvs.module 28 Dec 2006 19:31:13 -0000 @@ -786,7 +786,7 @@ function cvs_alter_project_release_form( if (isset($post_val)) { if (is_numeric($post_val) && !empty($post_val) && db_result(db_query('SELECT COUNT(*) FROM {term_data} WHERE tid = %d AND vid = %d', $post_val, $vid))) { $version->version_api_tid = $post_val; - $options[$post_val] = _cvs_get_option_from_taxo($form, $vid, $post_val); + $options[$post_val] = project_get_taxonomy_option($form, $vid, $post_val); $form['taxonomy'][$vid]['#options'] = $options; $form['taxonomy'][$vid]['#default_value'] = $post_val; $needs_api_none = false; @@ -899,7 +899,7 @@ function cvs_alter_project_release_form( } if (isset($form['taxonomy'][$vid])) { $tid = $version->version_api_tid; - $options[$tid] = _cvs_get_option_from_taxo($form, $vid, $tid); + $options[$tid] = project_get_taxonomy_option($form, $vid, $tid); $form['taxonomy'][$vid]['#options'] = $options; $form['taxonomy'][$vid]['#default_value'] = $tid; } @@ -1037,19 +1037,6 @@ function _cvs_alter_project_release_form $form['#redirect'] = FALSE; } -function _cvs_get_option_from_taxo($form, $vid, $tid) { - if (!isset($form['taxonomy'][$vid])) { - return NULL; - } - foreach ($form['taxonomy'][$vid]['#options'] as $key => $obj) { - if (isset($obj->option[$tid])) { - return $obj; - } - } - return NULL; -} - - /** * pre_render callback for the project_release node form. We use this * to set the required form attribute back to TRUE on the body field,