Browse Source

Fix to GFF3 exporter

Stephen Ficklin 10 years ago
parent
commit
02976e1c8f
1 changed files with 22 additions and 4 deletions
  1. 22 4
      tripal_feature/includes/tripal_feature.gff_exporter.inc

+ 22 - 4
tripal_feature/includes/tripal_feature.gff_exporter.inc

@@ -2,6 +2,15 @@
 
 function tripal_feature_gff3_exporter($source, $filters) {
   
+  // Make sure the filters array is setup properly.
+  if (!array_key_exists('types', $filters) and
+      !array_key_exists('feature_id', $filters)) {
+    tripal_report_error("tripal_feature", TRIPAL_ERROR,
+    "Please provide one or more types to include in the exported GFF file.",
+    array());
+    exit;
+  }
+  
   $select = "
     SELECT SF.uniquename as landmark_uname, SF.name as landmark_name,
       F.feature_id, F.dbxref_id, F.uniquename, F.name, CVT.name as type,
@@ -34,11 +43,20 @@ function tripal_feature_gff3_exporter($source, $filters) {
       $args[':species'] = $filters['species'];
     }
   }
-  // Filter by types
+
   if (array_key_exists('types', $filters)) {
-    $where .= "AND CVT.name IN (:types) ";
-    $args[':types'] = $filters['types'];
+    if (is_array($filters['types'])) {
+      $where .= "AND CVT.name IN (:types) ";
+      $args[':types'] = $filters['types'];
+    }
+    else {
+      tripal_report_error("tripal_feature", TRIPAL_ERROR,
+      "The 'types' element of the filters array must be an array.",
+      array());
+      exit;
+    }
   }
+  
   // Filter by exact feature_id
   if (array_key_exists('feature_id', $filters)) {
     $where .= "AND F.feature_id = :feature_id ";
@@ -60,7 +78,7 @@ function tripal_feature_gff3_exporter($source, $filters) {
   }
 
   $sql = "$select $from $where $order";
-  
+
   // The SQL statement for feature properties.
   $props_sql = "
     SELECT CVT.name, FP.value