$item) { $organism = chado_select_record('organism', array('genus', 'species'), array('organism_id' => $item['value'])); $content = '' . $organism[0]->genus .' ' . $organism[0]->species . ''; $element[$delta] = array( '#type' => 'markup', '#markup' => $content, ); } } /** * * @param $field_name * @param $widget * @param $form * @param $form_state * @param $field * @param $instance * @param $langcode * @param $items * @param $delta * @param $element */ function tripal_chado_organism_select_widget(&$widget, $form, $form_state, $field, $instance, $langcode, $items, $delta, $element) { $options = tripal_get_organism_select_options(FALSE); $widget['value'] = array( '#type' => 'select', '#title' => $element['#title'], '#description' => $element['#description'], '#options' => $options, '#default_value' => count($items) > 0 ? $items[0]['value'] : 0, '#required' => $element['#required'], '#weight' => isset($element['#weight']) ? $element['#weight'] : 0, '#delta' => $delta, '#element_validate' => array('tripal_chado_organism_select_widget_validate'), ); $widget['add_organism'] = array( '#type' => 'item', '#markup' => l('Add a new species', 'admin/content/bio_data/add/species', array('attributes' => array('target' => '_blank'))), ); } /** * Callback function for validating the tripal_chado_organism_select_widget. */ function tripal_chado_organism_select_widget_validate($element, &$form_state) { $field_name = $element['#parents'][0]; // If the form ID is field_ui_field_edit_form, then the user is editing the // field's values in the manage fields form of Drupal. We don't want // to validate it as if it were being used in a data entry form. if ($form_state['build_info']['form_id'] =='field_ui_field_edit_form') { return; } $organism_id = tripal_chado_get_field_form_values($field_name, $form_state); if (!$organism_id) { form_error($element, t("Please specify an organism.")); } }