'Search Biological Data', 'description' => 'Listings of the various biological data available categorized by type.', 'page callback' => 'tripal_views_biological_data_page', 'access arguments' => array('access content'), 'expanded' => TRUE, 'type' => MENU_NORMAL_ITEM, ); $items['admin/tripal/views'] = array( 'title' => 'Views Integration', 'description' => 'Integration with Drupal Views', 'page callback' => 'theme', 'page arguments' => array('tripal_views_admin'), 'access arguments' => array('manage tripal_views_integration'), 'type' => MENU_NORMAL_ITEM ); $items['admin/tripal/views/integration/list'] = array( 'title' => 'List of Integrated Tables', 'description' => 'Provide a list of all integrated tables and allows for adding new tables or editing already integrated tables.', 'page callback' => 'tripal_views_integration_setup_list', 'access arguments' => array('manage tripal_views_integration'), 'type' => MENU_NORMAL_ITEM, 'weight' => 0, ); $items['admin/tripal/views/integration/new'] = array( 'title' => 'Integrate A Table', 'page callback' => 'drupal_get_form', 'page arguments' => array('tripal_views_integration_form'), 'access arguments' => array('manage tripal_views_integration'), 'type' => MENU_NORMAL_ITEM, ); $items['admin/tripal/views/integration/edit/%'] = array( 'title' => 'Edit Views Integration', 'page callback' => 'drupal_get_form', 'page arguments' => array('tripal_views_integration_form', 5), 'access arguments' => array('manage tripal_views_integration'), 'type' => MENU_CALLBACK, ); $items['admin/tripal/views/integration/delete/%'] = array( 'title' => 'Delete Views Integration', 'page callback' => 'tripal_views_integration_delete', 'page arguments' => array(5), 'access arguments' => array('manage tripal_views_integration'), 'type' => MENU_CALLBACK, ); $items['admin/tripal/views/import'] = array( 'title' => 'Import Views Integration', 'page callback' => 'drupal_get_form', 'page arguments' => array('tripal_views_integration_import_form'), 'access arguments' => array('manage tripal_views_integration'), 'type' => MENU_NORMAL_ITEM, ); $items['admin/tripal/views/integration/export/%'] = array( 'title' => 'Import Views Integration', 'page callback' => 'drupal_get_form', 'page arguments' => array('tripal_views_integration_export_form', 5), 'access arguments' => array('manage tripal_views_integration'), 'type' => MENU_CALLBACK, ); // Menu item for the AJAX callback function that retrieves the // portion of the form that contains all of the fields for the table being integrated $items['tripal/views/integration/ajax/view_setup_table'] = array( 'title' => 'Import Views Integration', 'page callback' => 'tripal_views_integration_ajax_view_setup_table', 'page arguments' => array(), 'access arguments' => array('manage tripal_views_integration'), 'type' => MENU_CALLBACK, ); // Menu item for the AJAX callback function that retrieves the list of // column names for the table that is selected to be joined. $items['tripal/views/integration/ajax/join_field/%/%'] = array( 'title' => 'Import Views Integration', 'page callback' => 'tripal_views_integration_ajax_join_field', 'page arguments' => array(5, 6), 'access arguments' => array('manage tripal_views_integration'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_init(). */ function tripal_views_init() { // Need to ensure that all chado tables are integrated w/out making // the user go to views UI. It would be ideal to do this in a hook called only once // directly after install/enabling of the module but such a hook doesn't // exist in Drupal 6 $tripal_views = db_fetch_object(db_query("SELECT true as has_rows FROM {tripal_views}")); if (!$tripal_views->has_rows) { tripal_views_integrate_all_chado_tables(); } } /** * Implements hook_views_api() * * Purpose: Set the permission types that the chado module uses. * * @ingroup tripal_views */ function tripal_views_perm() { return array( 'manage tripal_views_integration', ); } /** * Implements hook_views_api() * * Purpose: Essentially this hook tells drupal that there is views support for * for this module which then includes tripal_views.views.inc where all the * views integration code is * * @ingroup tripal_views */ function tripal_views_views_api() { return array( 'api' => 2.0, ); } /** * Implements hook_theme() * * Purpose: this hook provides details about themable objects added by * this module * * @ingroup tripal_views */ function tripal_views_theme() { return array( 'tripal_views_integration_form' => array( 'arguments' => array('form' => NULL), 'template' => 'tripal_views_integration_fields_form', ), 'tripal_views_data_export_download_form' => array( 'arguments' => array('form' => NULL), 'template' => 'tripal_views_data_export_download_form', ), 'file_upload_combo' => array( 'arguments' => array('element' => NULL) ), 'sequence_combo' => array( 'arguments' => array('element' => NULL) ), // instructions page for the pub module 'tripal_views_admin' => array( 'template' => 'tripal_views_admin', 'arguments' => array(NULL), 'path' => drupal_get_path('module', 'tripal_views') . '/theme' ), ); } /** * Implements hook_coder_ignore(). * Defines the path to the file (tripal_views.coder_ignores.txt) where ignore rules for coder are stored */ function tripal_views_coder_ignore() { return array( 'path' => drupal_get_path('module', 'tripal_views'), 'line prefix' => drupal_get_path('module', 'tripal_views'), ); } /** * A landing page for all views of chado content. Simply lists all menu items that * are children of it. */ function tripal_views_biological_data_page() { $output = ''; $item = menu_get_item(); $content = system_admin_menu_block($item); $output .= '
'; foreach ($content as $item) { $output .= '
'. l($item['title'], $item['href'], $item['localized_options']) .'
'; $output .= '
'. $item['description'] .'
'; } $output .= '
'; return $output; } /* * */ function tripal_views_form_alter(&$form, &$form_state, $form_id) { if ($form_id == "tripal_views_integration_form") { // updating the form through the ahah callback sets the action of // the form to the ahah callback URL. We need to set it back // to the normal form URL if ($form_state['values']['setup_id']) { $form['#action'] = url("admin/tripal/views/integration/edit/" . $form_state['values']['setup_id']); } else { $form['#action'] = url("admin/tripal/views/integration/new"); } } }