123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <?php
- function tripal_entities_add_page() {
- $item = menu_get_item();
- $content = system_admin_menu_block($item);
-
- if (count($content) == 1) {
- $item = array_shift($content);
- drupal_goto($item['href']);
- }
- return theme('tripal_entities_add_list', array('content' => $content));
- }
- 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 = tripal_set_message(
- t('This page is for adding biological data to your site. However, before you can add data you have to specify what types of data your site will support. For example, if you want to add genes to be displayed to users, you must first create a data type "gene".'),
- TRIPAL_INFO,
- array('return_html' => TRUE)
- );
- $output .= '<p>' . t('You have not created any biological data types yet. Go to the <a href="@create-content">data type creation page</a> to add a new biological data 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;
-
- $form['entity_form_vtabs'] = array(
- '#type' => 'vertical_tabs',
- '#weight' => 999,
- );
-
- 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
- );
- }
-
-
- $form_state['BioData'] = $entity;
- $form['#prefix'] = "<div id='$bundle_id-entity-form'>";
- $form['#suffix'] = "</div>";
- return $form;
- }
- function tripal_entities_entity_form_ajax_callback($form, $form_state) {
-
- return $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);
- }
- }
- 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';
- }
- }
- 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;
- }
- 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");
- }
- }
|