123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- // API.
- require_once 'includes/tripal_jbrowse_page.api.inc';
- // Include files.
- require_once 'includes/tripal_jbrowse_page.listing.inc';
- /**
- * Implements hook_menu().
- */
- function tripal_jbrowse_page_menu() {
- $items = [];
- $items['jbrowse'] = [
- 'title' => 'JBrowse',
- 'description' => 'A listing of available JBrowse instances.',
- 'page callback' => 'tripal_jbrowse_page_listing_page',
- 'access arguments' => ['access content'],
- 'type' => MENU_NORMAL_ITEM,
- ];
- $instances = tripal_jbrowse_mgmt_get_instances();
- foreach ($instances as $instance) {
- $path = 'jbrowse/'.$instance->organism->genus . '/' . $instance->organism->species;
- $items[$path] = [
- 'title' => $instance->title,
- 'description' => $instance->description,
- 'page callback' => 'tripal_jbrowse_page_page',
- 'page arguments' => [1, 2],
- 'access arguments' => ['access content'],
- 'type' => MENU_NORMAL_ITEM,
- ];
- }
- return $items;
- }
- /**
- * Implements hook_theme().
- */
- function tripal_jbrowse_page_theme($existing, $type, $theme, $path) {
- $items = array(
- 'jbrowse_instance_public_listing' => array(
- // Don't specify the path in the template name.
- // Unless you have your template inside a directory within this module.
- 'template' => 'theme/jbrowse-instance--public-listing',
- 'variables' => array('instances' => []),
- ),
- );
- return $items;
- }
- /**
- * Redirect to the JBrowse Instance.
- */
- function tripal_jbrowse_page_page($genus, $species) {
- $instance = tripal_jbrowse_page_get_instance_id([
- 'genus' => $genus,
- 'species' => $species
- ],
- ['load_instance' => TRUE]);
- $query_params = tripal_jbrowse_mgmt_build_http_query($instance);
- $settings = tripal_jbrowse_mgmt_get_settings();
- $url = url($settings['link'],['query' => $query_params]);
- drupal_goto($url, array('external' => TRUE));
- return '';
- }
|