| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 | <?php/** * */function tripal_entities_add_page() {  $item = menu_get_item();  $content = system_admin_menu_block($item);  // Bypass the node/add listing if only one content type is available.  if (count($content) == 1) {    $item = array_shift($content);    drupal_goto($item['href']);  }  return theme('tripal_entities_add_list', array('content' => $content));}/** * Returns HTML for a list of available node types for node creation. * * @param $variables *   An associative array containing: *   - content: An array of content types. * * @ingroup themeable */function theme_tripal_entities_add_list($variables) {  $content = $variables['content'];  $output = '';  if ($content) {    $output = '<dl class="node-type-list">';    foreach ($content as $item) {      $output .= '<dt>' . l($item['title'], $item['href'], $item['localized_options']) . '</dt>';      $output .= '<dd>' . filter_xss_admin($item['description']) . '</dd>';    }    $output .= '</dl>';  }  else {    $output = '<p>' . t('You have not created any biological types yet. Go to the <a href="@create-content">content type creation page</a> to add a new content type.', array('@create-content' => url('admin/structure/BioData/add'))) . '</p>';  }  return $output;}/** * */function tripal_entities_entity_form($form, &$form_state, $dbxref_id = '', $entity = NULL) {  $bundle_id = 'dbxref_' . $dbxref_id;  // Add a vertical tabs element  $form['entity_form_vtabs'] = array(    '#type' => 'vertical_tabs',    '#weight' => 999,  );  // If the entity doesn't exist then create one.  if (!$entity) {    $entity = entity_get_controller('BioData')->create(array('bundle' => $bundle_id));    field_attach_form('BioData', $entity, $form, $form_state);    $form['add_button'] = array(      '#type' => 'submit',      '#value' => t('Save'),      '#name' => 'add_data',      '#weight' => 1000    );  }  else {    field_attach_form('BioData', $entity, $form, $form_state);    $form['update_button'] = array(      '#type' => 'submit',      '#value' => t('Update'),      '#name' => 'update_data',      '#weight' => 1000    );    $form['delete_button'] = array(      '#type' => 'submit',      '#value' => t('Delete'),      '#name' => 'delete_data',      '#weight' => 1001    );  }  // The entity object must be added to the $form_state in order for  // the Entity API to work. It must have a key of the entity name.  $form_state['BioData'] = $entity;  $form['#prefix'] = "<div id='$bundle_id-entity-form'>";  $form['#suffix'] = "</div>";  return $form;}/** * An Ajax callback for the tripal_entities_entity_form. */function tripal_entities_entity_form_ajax_callback($form, $form_state) {  // return the form so Drupal can update the content on the page  return $form;}/** * Implements hook_validate() for the tripal_entities_entity_form. */function tripal_entities_entity_form_validate($form, &$form_state) {  if (array_key_exists('clicked_button', $form_state) and      $form_state['clicked_button']['#name'] =='add_data') {    $entity = $form_state['BioData'];    field_attach_form_validate('BioData', $entity, $form, $form_state);  }}/** * Implements hook_submit() for the tripal_entities_entity_form. */function tripal_entities_entity_form_submit($form, &$form_state) {  $entity = $form_state['BioData'];  if ($form_state['clicked_button']['#name'] =='cancel') {    $form_state['redirect'] = "BioData/" . $entity->id;  }  if ($form_state['clicked_button']['#name'] =='update_data' or      $form_state['clicked_button']['#name'] =='add_data') {    $entityform = entity_ui_controller('BioData')->entityFormSubmitBuildEntity($form, $form_state);    if ($entityform->save()) {      $form_state['redirect'] = "BioData/" . $entity->id;    }    else {      drupal_set_message('Cannot save entity', 'error');    }  }  if ($form_state['clicked_button']['#name'] =='delete_data') {    $form_state['redirect'] = 'BioData/' . $entity->id .'/delete';  }}/** * Form callback: confirmation form for deleting a tripal_entity. * * @param $tripal_entity The *          tripal_entity to delete * * @see confirm_form() */function tripal_entities_entity_delete_form($form, &$form_state, $entity) {  $form_state['entity'] = $entity;  $form['#submit'][] = 'tripal_entities_entity_delete_form_submit';  $form = confirm_form($form,      t('Click the delete button below to confirm deletion of the record titled: %title',          array('%title' => $entity->title)), 'admin/content/tripal_entity',      '<p>' .t('This action cannot be undone.') .'</p>', t('Delete'), t('Cancel'), 'confirm');  return $form;}/** * Submit callback for tripal_entity_delete_form */function tripal_entities_entity_delete_form_submit($form, &$form_state) {  $entity = $form_state['entity'];  $entity_controller = new TripalEntityController($entity->type);  if ($entity_controller->delete($entity)) {    drupal_set_message(t('The record title "%name" has been deleted.', array('%name' => $entity->title)));    $form_state['redirect'] = 'admin/content/tripal_entitys';  }  else {    drupal_set_message(t('The tripal_entity %name was not deleted.', array('%name' => $entity->title)), "error");  }}
 |