|
@@ -5,141 +5,126 @@ $organism = $variables['node']->organism;
|
|
|
// get the list of available sequence ontology terms for which
|
|
|
// we will build drupal pages from features in chado. If a feature
|
|
|
// is not one of the specified typse we won't build a node for it.
|
|
|
-$allowed_types = variable_get('chado_browser_feature_types', 'gene mRNA');
|
|
|
+$allowed_types = variable_get('chado_browser_feature_types');
|
|
|
$allowed_types = preg_replace("/[\s\n\r]+/", " ", $allowed_types);
|
|
|
$so_terms = explode(' ', $allowed_types);
|
|
|
|
|
|
-// get the feature_id's of the feature that belong to this organism. But we only
|
|
|
-// want 25 and we want a pager to let the user cycle between pages of features.
|
|
|
-// so we, use the chado_select_record API function to get the results and
|
|
|
-// generate the pager. The function is smart enough to know which page the user is
|
|
|
-// on and retrieves the proper set of features
|
|
|
-$element = 0; // an index to specify the pager if more than one is on the page
|
|
|
-$num_per_page = 25; // the number of features to show per page
|
|
|
-$values = array(
|
|
|
- 'organism_id' => $organism->organism_id,
|
|
|
- 'type_id' => array(
|
|
|
- 'name' => $so_terms
|
|
|
- ),
|
|
|
-);
|
|
|
-$columns = array('feature_id');
|
|
|
-$options = array(
|
|
|
- 'pager' => array(
|
|
|
- 'limit' => $num_per_page,
|
|
|
- 'element' => $element
|
|
|
- ),
|
|
|
- 'order_by' => array('name' => 'ASC'),
|
|
|
-);
|
|
|
-$results = chado_select_record('feature', $columns, $values, $options);
|
|
|
+// Don't show the browser if there are no terms
|
|
|
+if (count($so_terms) > 0) {
|
|
|
|
|
|
-// now that we have all of the feature IDs, we want to expand each one so that we
|
|
|
-// have all of the neccessary values, including the node ID, if one exists, and the
|
|
|
-// cvterm type name.
|
|
|
-$features = array();
|
|
|
-foreach ($results as $result) {
|
|
|
- $values = array('feature_id' => $result->feature_id);
|
|
|
+ // get the feature_id's of the feature that belong to this organism. But we only
|
|
|
+ // want 25 and we want a pager to let the user cycle between pages of features.
|
|
|
+ // so we, use the chado_select_record API function to get the results and
|
|
|
+ // generate the pager. The function is smart enough to know which page the user is
|
|
|
+ // on and retrieves the proper set of features
|
|
|
+ $element = 0; // an index to specify the pager if more than one is on the page
|
|
|
+ $num_per_page = 25; // the number of features to show per page
|
|
|
+ $values = array(
|
|
|
+ 'organism_id' => $organism->organism_id,
|
|
|
+ 'type_id' => array(
|
|
|
+ 'name' => $so_terms
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ $columns = array('feature_id');
|
|
|
$options = array(
|
|
|
- 'include_fk' => array(
|
|
|
- 'type_id' => 1
|
|
|
- )
|
|
|
+ 'pager' => array(
|
|
|
+ 'limit' => $num_per_page,
|
|
|
+ 'element' => $element
|
|
|
+ ),
|
|
|
+ 'order_by' => array('name' => 'ASC'),
|
|
|
);
|
|
|
- $features[] = chado_generate_var('feature', $values, $options);
|
|
|
-}
|
|
|
+ $results = chado_select_record('feature', $columns, $values, $options);
|
|
|
|
|
|
-if (count($features) > 0) { ?>
|
|
|
- <div class="tripal_organism-data-block-desc tripal-data-block-desc">The following browser provides a quick view for new visitors. Use the searching mechanism to find specific features.</div> <?php
|
|
|
+ // now that we have all of the feature IDs, we want to expand each one so that we
|
|
|
+ // have all of the neccessary values, including the node ID, if one exists, and the
|
|
|
+ // cvterm type name.
|
|
|
+ $features = array();
|
|
|
+ foreach ($results as $result) {
|
|
|
+ $values = array('feature_id' => $result->feature_id);
|
|
|
+ $options = array(
|
|
|
+ 'include_fk' => array(
|
|
|
+ 'type_id' => 1
|
|
|
+ )
|
|
|
+ );
|
|
|
+ $features[] = chado_generate_var('feature', $values, $options);
|
|
|
+ }
|
|
|
|
|
|
- // the $headers array is an array of fields to use as the colum headers.
|
|
|
- // additional documentation can be found here
|
|
|
- // https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_table/7
|
|
|
- $headers = array('Feature Name' ,'Unique Name', 'Type');
|
|
|
+ if (count($features) > 0) { ?>
|
|
|
+ <div class="tripal_organism-data-block-desc tripal-data-block-desc">The following browser provides a quick view for new visitors. Use the searching mechanism to find specific features.</div> <?php
|
|
|
|
|
|
- // the $rows array contains an array of rows where each row is an array
|
|
|
- // of values for each column of the table in that row. Additional documentation
|
|
|
- // can be found here:
|
|
|
- // https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_table/7
|
|
|
- $rows = array();
|
|
|
+ // the $headers array is an array of fields to use as the colum headers.
|
|
|
+ // additional documentation can be found here
|
|
|
+ // https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_table/7
|
|
|
+ $headers = array('Feature Name' ,'Unique Name', 'Type');
|
|
|
|
|
|
- // let admins know they can customize the terms that appear in the list
|
|
|
- print tripal_set_message("Administrators, you can specify the feature types ".
|
|
|
- "that should appear in this browser or remove it from the list of resources ".
|
|
|
- "by navigating to the ".
|
|
|
- l("Tripal feature settings page", "admin/tripal/chado/tripal_feature/configuration", array('attributes' => array('target' => '_blank'))),
|
|
|
- TRIPAL_INFO,
|
|
|
- array('return_html' => 1)
|
|
|
- );
|
|
|
+ // the $rows array contains an array of rows where each row is an array
|
|
|
+ // of values for each column of the table in that row. Additional documentation
|
|
|
+ // can be found here:
|
|
|
+ // https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_table/7
|
|
|
+ $rows = array();
|
|
|
+
|
|
|
+ // let admins know they can customize the terms that appear in the list
|
|
|
+ print tripal_set_message("Administrators, you can specify the feature types ".
|
|
|
+ "that should appear in this browser or remove it from the list of resources ".
|
|
|
+ "by navigating to the ".
|
|
|
+ l("Tripal feature settings page", "admin/tripal/chado/tripal_feature/configuration", array('attributes' => array('target' => '_blank'))),
|
|
|
+ TRIPAL_INFO,
|
|
|
+ array('return_html' => 1)
|
|
|
+ );
|
|
|
|
|
|
- foreach ($features as $feature){
|
|
|
- $fname = $feature->name;
|
|
|
- if (property_exists($feature, 'nid')) {
|
|
|
- $fname = l($fname, "node/$feature->nid", array('attributes' => array('target' => '_blank')));
|
|
|
+ foreach ($features as $feature){
|
|
|
+ $fname = $feature->name;
|
|
|
+ if (property_exists($feature, 'nid')) {
|
|
|
+ $fname = l($fname, "node/$feature->nid", array('attributes' => array('target' => '_blank')));
|
|
|
+ }
|
|
|
+ $rows[] = array(
|
|
|
+ $fname,
|
|
|
+ $feature->uniquename,
|
|
|
+ $feature->type_id->name
|
|
|
+ );
|
|
|
}
|
|
|
- $rows[] = array(
|
|
|
- $fname,
|
|
|
- $feature->uniquename,
|
|
|
- $feature->type_id->name
|
|
|
+ // the $table array contains the headers and rows array as well as other
|
|
|
+ // options for controlling the display of the table. Additional
|
|
|
+ // documentation can be found here:
|
|
|
+ // https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_table/7
|
|
|
+ $table = array(
|
|
|
+ 'header' => $headers,
|
|
|
+ 'rows' => $rows,
|
|
|
+ 'attributes' => array(
|
|
|
+ 'id' => 'tripal_organism-table-features',
|
|
|
+ 'class' => 'tripal-data-table'
|
|
|
+ ),
|
|
|
+ 'sticky' => FALSE,
|
|
|
+ 'caption' => '',
|
|
|
+ 'colgroups' => array(),
|
|
|
+ 'empty' => '',
|
|
|
);
|
|
|
- }
|
|
|
- // the $table array contains the headers and rows array as well as other
|
|
|
- // options for controlling the display of the table. Additional
|
|
|
- // documentation can be found here:
|
|
|
- // https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_table/7
|
|
|
- $table = array(
|
|
|
- 'header' => $headers,
|
|
|
- 'rows' => $rows,
|
|
|
- 'attributes' => array(
|
|
|
- 'id' => 'tripal_organism-table-features',
|
|
|
- 'class' => 'tripal-data-table'
|
|
|
- ),
|
|
|
- 'sticky' => FALSE,
|
|
|
- 'caption' => '',
|
|
|
- 'colgroups' => array(),
|
|
|
- 'empty' => '',
|
|
|
- );
|
|
|
- // once we have our table array structure defined, we call Drupal's theme_table()
|
|
|
- // function to generate the table.
|
|
|
- print theme_table($table);
|
|
|
+ // once we have our table array structure defined, we call Drupal's theme_table()
|
|
|
+ // function to generate the table.
|
|
|
+ print theme_table($table);
|
|
|
|
|
|
- // the $pager array values that control the behavior of the pager. For
|
|
|
- // documentation on the values allows in this array see:
|
|
|
- // https://api.drupal.org/api/drupal/includes!pager.inc/function/theme_pager/7
|
|
|
- // here we add the paramter 'block' => 'feature_browser'. This is because
|
|
|
- // the pager is not on the default block that appears. When the user clicks a
|
|
|
- // page number we want the browser to re-appear with the page is loaded.
|
|
|
- $pager = array(
|
|
|
- 'tags' => array(),
|
|
|
- 'element' => $element,
|
|
|
- 'parameters' => array(
|
|
|
- 'block' => 'feature_browser'
|
|
|
- ),
|
|
|
- 'quantity' => $num_per_page,
|
|
|
- );
|
|
|
- print theme_pager($pager);
|
|
|
-}
|
|
|
-else { ?>
|
|
|
- <p>There are no results.</p><?php
|
|
|
- print tripal_set_message("
|
|
|
- Administrators, perform the following to show features in this browser:
|
|
|
- <ul>
|
|
|
- <li>Load features for this organism using the " .
|
|
|
- l("FASTA loader", 'admin/tripal/loaders/fasta_loader') . ", ".
|
|
|
- l("GFF Loader", 'admin/tripal/loaders/gff3_load') . " or ".
|
|
|
- l("Bulk Loader", 'admin/tripal/loaders/bulk'). "</li>
|
|
|
- <li>Sync the features that should have pages using the ".
|
|
|
- l("Sync features page", 'admin/tripal/chado/tripal_feature/sync'). "</li>
|
|
|
- <li>Return to this page to browse features.</li>
|
|
|
- <li>Ensure the user " .
|
|
|
- l("has permission", 'admin/people/permissions') . " to view the feature content</li>
|
|
|
- </ul>
|
|
|
- <br>
|
|
|
- <br>
|
|
|
- You can specify the feature types
|
|
|
- that should appear in this browser or remove it from the list of resources by navigating to the " .
|
|
|
- l("Tripal feature settings page", "admin/tripal/chado/tripal_feature/configuration", array('attributes' => array('target' => '_blank'))) . "
|
|
|
- The feature browser will not appear to site visitors unless features are present. ",
|
|
|
- TRIPAL_INFO,
|
|
|
- array('return_html' => 1));
|
|
|
-}
|
|
|
+ // the $pager array values that control the behavior of the pager. For
|
|
|
+ // documentation on the values allows in this array see:
|
|
|
+ // https://api.drupal.org/api/drupal/includes!pager.inc/function/theme_pager/7
|
|
|
+ // here we add the paramter 'block' => 'feature_browser'. This is because
|
|
|
+ // the pager is not on the default block that appears. When the user clicks a
|
|
|
+ // page number we want the browser to re-appear with the page is loaded.
|
|
|
+ $pager = array(
|
|
|
+ 'tags' => array(),
|
|
|
+ 'element' => $element,
|
|
|
+ 'parameters' => array(
|
|
|
+ 'block' => 'feature_browser'
|
|
|
+ ),
|
|
|
+ 'quantity' => $num_per_page,
|
|
|
+ );
|
|
|
+ print theme_pager($pager);
|
|
|
|
|
|
+ print tripal_set_message("
|
|
|
+ Administrators, please note that the feature browser will be retired in
|
|
|
+ a future version of Tripal.",
|
|
|
+ TRIPAL_INFO,
|
|
|
+ array('return_html' => 1));
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
|