Explorar el Código

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

Stephen Ficklin hace 12 años
padre
commit
18e5a3afeb
Se han modificado 1 ficheros con 24 adiciones y 6 borrados
  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);
-}
+}