I had to do this and ended up doing it as follows: First, add the fields to the form. I generated the fields as follows, but you might have equal success by using hook_form_alter to move taxonomy fields to a new place. // This code in hook_form: // to add fields to this form, see _ocp_project_talent_fields method if ($fields = _ocp_project_talent_fields($i)) { $w = 0; foreach($fields as $field => $data) { $value = $_REQUEST['edit']['node_data'][$field] or $value = $node->node_data[$field]; // XXX should not have to do this, but we do for previews. hopefully will be fixed in drupal $form[$f_field]['node_data'][$field] = _taxonomy_term_select(t($data['label']), "node_data][$field", $value, $data['vid'], '', false, 'None'); $form[$f_field]['node_data'][$field]['#weight'] = $w++; } } That may look more complicated than it really is. The $fields data structure looks like: return array( 'agency' => array('label' => 'Agency', 'vid' => OCP_VID_AGENCY), 'director' => array('label' => 'Director', 'vid' => OCP_VID_TALENT), 'vfx_supervisor' => array('label' => 'VFX Supervisor', 'vid' => OCP_VID_TALENT), 'production_co' => array('label' => 'Production Company', 'vid' => OCP_VID_PRODUCTION_CO), ); Where each of the OCP_VID_... constants is a vocabulary id. So that's part 1, just getting the form fields in the place I want them. Again, simply moving the fields in form_alter may suffice. Next, handle the form_submit... function ocp_project_node_form_submit($form_id, $form_values) { // add our terms to node's taxonomy foreach (_ocp_project_talent_fields(1) as $label => $data) { if ($tid = $form_values['node_data'][$label]) { if (!in_array($tid, $form_values['taxonomy'])) { $form_values['taxonomy'][] = $tid; } } } // now let the default callback handle it... return node_form_submit($form_id, $form_values); } Basically, that submit callback puts the values where taxonomy.module expects them, and calls node_form_submit. Of course all this uses some knowledge of taxonomy methods and data structures that third-party module have no business messing with. So it may not work in future versions of Drupal. I hope that helps, -Dave On Tuesday 27 June 2006 19:49, Angela Byron wrote:
I found an old thread where this was asked about but it didn't seem to have a resolution: http://lists.drupal.org/archives/development/ 2006-03/msg00511.html
Basically, I'd like the ability to take the stuff in the "categories" fieldset (specifically, free-tagging vocabs, but any and all is good), assign it some arbitrarily weight, and place it elsewhere in the form.
Anyone have any pearls of wisdom? I hereby volunteer to write up a nice little tutorial about it for the handbook if someone can throw me some sample code.
Thanks a lot, -Angie