Browse Source

Added additional URL path types for features

spficklin 12 years ago
parent
commit
2e8941a30e

+ 15 - 7
tripal_feature/includes/syncFeatures.inc

@@ -127,12 +127,14 @@ function tripal_feature_set_urls($job_id = NULL) {
   $nodes = db_query($sql);
   while ($node = db_fetch_object($nodes)) {
     // now get the feature details
-    $feature_arr = tripal_core_chado_select('feature',
-      array('feature_id', 'name', 'uniquename'),
-      array('feature_id' => $node->feature_id));
-    $feature = $feature_arr[0];
-
-    tripal_feature_set_feature_url($node, $feature);
+    $sql = "SELECT * 
+            FROM feature F
+              INNER JOIN organism O on O.organism_id = F.organism_id
+            WHERE F.feature_id = %d";     
+    $feature = db_fetch_object(chado_query($sql, $node->feature_id));
+    if ($feature) {
+      tripal_feature_set_feature_url($node, $feature);
+    }
   }
 }
 /**
@@ -150,10 +152,16 @@ function tripal_feature_set_feature_url($node, $feature) {
     case 'feature unique name':
       $url_alias = $feature->uniquename;
       break;
+    case 'genus_species_uqname':
+      $url_alias = strtolower($feature->genus) . "/" . strtolower($feature->genus) . "_" . strtolower($feature->species) . "/" . $feature->uniquename;
+      break;
+    case 'genus species name':
+      $url_alias = strtolower($feature->genus) . "/" . strtolower($feature->genus) . "_" . strtolower($feature->species) . "/" . $feature->name;
+    	break;
     default:
       $url_alias = "$aprefix$feature->feature_id";
   }
-  print "Setting $alias_type as URL alias for $feature->name: node/$node->nid => $url_alias\n";
+  print "Setting URL alias for $feature->name: node/$node->nid => $url_alias\n";
   // remove any previous alias
   db_query("DELETE FROM {url_alias} WHERE src = '%s'", "node/$node->nid");
   // add the new alias

+ 13 - 7
tripal_feature/includes/tripal_feature.admin.inc

@@ -552,18 +552,24 @@ function get_tripal_feature_admin_form_url_set(&$form) {
 
   );
 
+  $options = array(
+    'internal ID'          => 'Internal ID (Chado feature_id)',
+    'feature unique name'  => 'Feature unique name',
+    'feature name'         => 'Feature name',
+    'genus_species_uqname' => 'Genus + species + unique name (e.g. http://your.site.url/[genus]/[genus]_[species]/[unique_name]',
+    'genus_species_name'   => 'Genus + species + name (e.g. http://your.site.url/[genus]/[genus]_[species]/[name]',
+  );
+  
   $form['url']['chado_feature_url'] = array(
-    '#title'       => t('Unique Identifier'),
-    '#type'        => 'radios',
-    '#description' => t('Choose an identifier type '.
+    '#title'         => t('Unique Identifier'),
+    '#type'          => 'radios',
+    '#description'   => t('Choose an identifier type '.
                         'from the list above that is guaranteed to be unique in your synced '.
                         'dataset. If in doubt it is safest to coose the internal ID. '.
                         'The descrpitor need not be unique amont the total dataset. '.
                         'It only need be unique among the synced dataset.'),
-    '#required'    => FALSE,
-    '#options'     => array('internal ID' => 'internal ID (Chado feature_id)',
-                            'feature unique name' => 'feature unique name',
-                            'feature name' => 'feature name'),
+    '#required'      => FALSE,
+    '#options'       => $options,
     '#default_value' => variable_get('chado_feature_url', 'internal ID'),
   );