ソースを参照

Chado Node API -URLs: implemented for library nodes

Lacey Sanderson 10 年 前
コミット
400cd8e08e

+ 14 - 0
tripal_library/includes/tripal_library.admin.inc

@@ -66,5 +66,19 @@ function tripal_library_admin() {
   // This sub-form handles it's own validation & submit
   chado_add_admin_form_set_title($form, $form_state, $details);
 
+  // URL ALIAS
+  $details = array(
+    'module' => 'tripal_library',
+    'content_type' => 'chado_library',
+    'options' => array(
+      '/library/[library.library_id]' => 'Library ID',
+      '/library/[library.organism_id>organism.genus]/[library.organism_id>organism.species]/[library.type_id>cvterm.name]/[library.uniquename]' => 'Unique Contraint: Includes the name, uniquename, type and scientific name'
+    ),
+  );
+
+  // This call adds the configuration form to your current form
+  // This sub-form handles it's own validation & submit
+  chado_add_admin_form_set_url($form, $form_state, $details);
+
   return system_settings_form($form);
 }

+ 15 - 6
tripal_library/includes/tripal_library.chado_node.inc

@@ -613,6 +613,9 @@ function tripal_library_node_insert($node) {
       // Now get the title
       $node->title = chado_get_node_title($node);
 
+      // Now use the API to set the path.
+      chado_set_node_url($node);
+
       break;
   }
 }
@@ -628,15 +631,12 @@ function tripal_library_node_update($node) {
   switch ($node->type) {
     case 'chado_library':
 
-      $library_id = chado_get_id_from_nid('library', $node->nid);
-      $values = array('library_id' => $library_id);
-      $library = chado_generate_var('library', $values);
-      $library = chado_expand_var($library, 'field', 'library.uniquename');
-      $node->library = $library;
-
       // Now get the title
       $node->title = chado_get_node_title($node);
 
+      // Now use the API to set the path.
+      chado_set_node_url($node);
+
       break;
   }
 }
@@ -650,3 +650,12 @@ function tripal_library_node_update($node) {
 function chado_library_chado_node_default_title_format() {
   return '[library.name], [library.uniquename] ([library.type_id>cvterm.name])';
 }
+
+/**
+ * Implements hook_chado_node_default_url_format().
+ *
+ * Designates a default URL format for library nodes.
+ */
+function chado_library_chado_node_default_url_format() {
+  return '/library/[library.organism_id>organism.genus]/[library.organism_id>organism.species]/[library.type_id>cvterm.name]/[library.uniquename]';
+}