All pastes #16583 Raw Edit

Something

public text v1 · immutable
#16583 ·published 2005-06-30 23:59 UTC
rendered paste body
/**
 * Return the term object matching a term ID.
 */
function taxonomy_get_term($tid) {
  // simple cache using a static var?
  return db_fetch_object(db_query('SELECT * FROM {term_data} WHERE tid = %d', $tid));
}

function _taxonomy_term_select($title, $name, $value, $vocabulary_id, $description, $multiple, $blank, $exclude = array()) {
  $tree = taxonomy_get_tree($vocabulary_id);
  $options = array();
	
  drupal_set_message("post -> " . var_export($_POST, true));

  if ($blank) {
    $options[0] = $blank;
  }
  if ($tree) {
    foreach ($tree as $term) {
      if (!in_array($term->tid, $exclude)) {
        $options[$term->tid] = _taxonomy_depth($term->depth, '-') . $term->name;
      }
    }
    if (!$blank && !$value) {
      // required but without a predefined value, so set first as predefined
      $value = $tree[0]->tid;
    }
  }

  // appear as checkboxes for multiple select hack (jordan willms 2005)  
  //drupal_set_message(var_export($options,true));

  if ($multiple)
  {	
		$rev = array_reverse($options,true);
		array_pop($rev);
		$options = array_reverse($rev, true);
		drupal_set_message(var_export($value, true));
		return form_checkboxes($title, $name . ($multiple ? '' : ']['), $value, $options, $description, NULL, TRUE);

  }
  else
  {
		return form_select($title, $name . ($multiple ? '' : ']['), $value, $options, $description, $multiple ? 'size="'. min(12, count($options)) .'"' : 0, $multiple);
   }

  
}