Browse Source

Restored proper handling of CGI parameters to GBrowse

E.Cannon 7 years ago
parent
commit
dca6681071
1 changed files with 19 additions and 2 deletions
  1. 19 2
      includes/blast_ui.linkouts.inc

+ 19 - 2
includes/blast_ui.linkouts.inc

@@ -152,10 +152,27 @@ function tripal_blast_generate_linkout_link($url_prefix, $hit, $info, $options =
 
   if (isset($hit->{'linkout_id'})) {
     $hit_url = $url_prefix . $hit->{'linkout_id'};
+    
+    // Split out the CGI params, if any
+    $params = array();
+    if (!$paramstr=strstr($hit_url, '?')) {
+      $url_prefix = $hit_url;
+    }
+    else {
+      $url_parts = preg_split("/\?/", $hit_url);
+      $url_prefix = $url_parts[0];
+      $param_list = preg_split("/\&/", $url_parts[1]);
+
+      foreach ($param_list as $param) {
+        $param_parts = preg_split("/=/", $param, 2);
+        $params[$param_parts[0]] = $param_parts[1];
+      }
+    }//URL contains CGI parameters
+    
     return l(
       $hit->{'linkout_id'},
-      $hit_url,
-      array('attributes' => array('target' => '_blank'))
+      $url_prefix,
+      array('attributes' => array('target' => '_blank'), 'query' => $params)
     );
   }
   else {