فهرست منبع

Changed to use citation property (not uniquename as before) and to show the title if no citation is present

Stephen Ficklin 12 سال پیش
والد
کامیت
18e5a3afeb
1فایلهای تغییر یافته به همراه24 افزوده شده و 6 حذف شده
  1. 24 6
      tripal_pub/includes/pub_search.inc

+ 24 - 6
tripal_pub/includes/pub_search.inc

@@ -38,15 +38,33 @@ function tripal_pub_search_page() {
     $rows = array();
     $i = $page * $limit + 1;
     while($pub = db_fetch_object($pubs)) {
-      $citation =  $pub->uniquename;
-      if ($pub->nid) {
-        $citation = l($pub->uniquename,'node/' . $pub->nid, array('attributes' => array('target' => '_blank')));
+      // get the citation for this publication
+      $values = array(
+        'pub_id' => $pub->pub_id, 
+        'type_id' => array(
+          'name' => 'Citation',
+        ),
+      );
+      $citation_rec = tripal_core_generate_chado_var('pubprop', $values); 
+      $citation_rec = tripal_core_expand_chado_vars($citation_rec, 'field', 'pubprop.value');
+      // if we have the citation then use it, otherwise, just use the title
+      if ($citation_rec->value) {
+        $citation = $citation_rec->value;
+        if ($pub->nid) {
+          $citation = l($citation_rec->value ,'node/' . $pub->nid, array('attributes' => array('target' => '_blank')));
+        }
+      } 
+      else {
+        $citation = $pub->title;
+        if ($pub->nid) {
+          $citation = l($pub->title ,'node/' . $pub->nid, array('attributes' => array('target' => '_blank')));
+        }
       }
-      $rows[] = array(number_format($i), $pub->pyear, $citation);
+      $rows[] = array(number_format($i) . ".", $pub->pyear, $citation);
       $i++;
     }
 
-    $headers = array('', 'Year', 'Citation');
+    $headers = array('', 'Year', 'Publication');
     $table = theme('table', $headers, $rows);   
   
     // join all to form the results
@@ -365,4 +383,4 @@ function tripal_pub_get_search_results($search_array, $limit, $pager_id) {
   $count = "SELECT count(*) FROM ($select $from $where $order) as t1";
   //dpm(array($mode, $sql, $args));
   return chado_pager_query($sql, $limit, $pager_id, $count, $args);
-}
+}