| 
					
				 | 
			
			
				@@ -0,0 +1,380 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<?php  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Because we are using AJAX with a node form we need to provide a callback 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * for the chado_pub node form.  This callback is different from the  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * default 'chado_pub_form' callback 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function tripal_pub_forms($form_id, $args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $forms = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if($form_id == 'chado_pub_node_form') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $forms[$form_id] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      'callback' => 'chado_pub_node_form', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      'callback arguments' => array($args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return $forms; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * This is the chado_pub node form callback. The arguments 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * are out of order from a typical form because it's a defined callback  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function chado_pub_node_form($form_state, $node) {    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tripal_core_ahah_init_form(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $type = node_get_types('type', $node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $pub = $node->pub; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $pub_id = $pub->pub_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_title        = $form_state['values']['title']        ? $form_state['values']['title']       : $pub->title; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_uniquename   = $form_state['values']['uniquename']   ? $form_state['values']['uniquename']  : $pub->uniquename; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_type_id      = $form_state['values']['type_id']      ? $form_state['values']['type_id']     : $pub->type_id->cvterm_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_volume       = $form_state['values']['volume']       ? $form_state['values']['volume']      : $pub->volume; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_volumetitle  = $form_state['values']['volumetitle']  ? $form_state['values']['volumetitle'] : $pub->volumetitle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_series_name  = $form_state['values']['series_name']  ? $form_state['values']['series_name'] : $pub->series_name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_issue        = $form_state['values']['issue']        ? $form_state['values']['issue']       : $pub->issue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_pyear        = $form_state['values']['pyear']        ? $form_state['values']['pyear']       : $pub->pyear; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_pages        = $form_state['values']['pages']        ? $form_state['values']['pages']       : $pub->pages; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_miniref      = $form_state['values']['miniref']      ? $form_state['values']['miniref']     : $pub->miniref; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_publisher    = $form_state['values']['publisher']    ? $form_state['values']['publisher']   : $pub->publisher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_pubplace     = $form_state['values']['pubplace']     ? $form_state['values']['pubplace']    : $pub->pubplace; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_is_obsolete  = $form_state['values']['is_obsolete']  ? $form_state['values']['is_obsolete'] : $pub->is_obsolete;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // get the defaults first from the database and then from the form_state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $default_type = $pub->type_id->cvterm_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['pub_id'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'hidden', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#value' => (isset($node->pub_id)) ? $node->pub_id->pub_id : NULL , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // get the list of publication types.  In the Tripal publication 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // ontologies these are all grouped under the term 'Publication Type' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // we want the default to be 'Journal Article' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $sql = " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    SELECT CVTS.cvterm_id, CVTS.name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FROM {cvtermpath} CVTP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      INNER JOIN {cvterm} CVTS ON CVTP.subject_id = CVTS.cvterm_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      INNER JOIN {cvterm} CVTO ON CVTP.object_id = CVTO.cvterm_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      INNER JOIN {cv} ON CVTO.cv_id = CV.cv_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    WHERE CV.name = 'tripal_pub' and CVTO.name = 'Publication Type' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ORDER BY CVTS.name ASC  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $results = chado_query($sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $pub_types = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  while ($pub_type = db_fetch_object($results)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $pub_types[$pub_type->cvterm_id] = $pub_type->name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // if we don't have a default type then set the default to be 'Journal Article' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (strcmp($pub_type->name,"Journal Article") == 0 and !$d_type_id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_type_id = $pub_type->cvterm_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['type_id'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'select', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Publication Type'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#options' => $pub_types, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#required' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_type_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Article Title. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['title'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textfield', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => check_plain($type->title_label), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_title, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#required' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['series_name'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textfield', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Series Name (e.g. Journal Name)'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#description' => t('Full name of (journal) series.'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_series_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#required' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['pyear'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textfield', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Publication Year'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_pyear, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#required' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['uniquename'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textarea', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Citation'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_uniquename, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#description' => t('All publications must have a unique citation. Please enter the full citation for this publication.  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      For PubMed style citations list  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      the last name of the author followed by initials. Each author should be separated by a comma. Next comes  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      the title, followed by the series title (e.g. journal name), publication date (3 character Month, day, 4  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      digit year), volume, issue and page numbers. You may also use HTML to provide a link in the citation.   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Below is an example: <pre>Medeiros PM, Ladio AH, Santos AM, Albuquerque UP. <a href="http://www.ncbi.nlm.nih.gov/pubmed/23462414" target="_blank">Does the selection of medicinal plants by Brazilian local populations  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        suffer taxonomic influence?</a> J Ethnopharmacol. 2013 Apr 19; 146(3):842-52. PubMed PMID: 23462414</pre>'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#required' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // get publication properties list and create the array that will be used for selecting a property type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $sql = " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    SELECT CVTS.cvterm_id, CVTS.name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FROM {cvtermpath} CVTP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      INNER JOIN {cvterm} CVTS ON CVTP.subject_id = CVTS.cvterm_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      INNER JOIN {cvterm} CVTO ON CVTP.object_id = CVTO.cvterm_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      INNER JOIN {cv} ON CVTO.cv_id = CV.cv_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    WHERE CV.name = 'tripal_pub' and CVTO.name = 'Publication Details' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ORDER BY CVTS.name ASC  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $prop_types = chado_query($sql);   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $num_properties = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $d_properties = array();   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $properties = array();   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  while ($prop = db_fetch_object($prop_types)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $properties[$prop->cvterm_id] = $prop->name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // if any of the properties match the fields in the pub table then we want to include those  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // automatically 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if($prop->name == 'Volume' and $d_volume) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['name'] =  $prop->name;      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['id'] = $prop->cvterm_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['value'] = $d_volume; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $num_properties++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if($prop->name == 'Volume Title' and $d_volumetitle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['name'] =  $prop->name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['id'] = $prop->cvterm_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['value'] = $d_volumetitle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $num_properties++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if($prop->name == 'Issue' and $d_issue) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['name'] =  $prop->name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['id'] = $prop->cvterm_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['value'] = $d_issue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $num_properties++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if($prop->name == 'Pages' and $d_pages) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['name'] =  $prop->name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['id'] = $prop->cvterm_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $d_properties[$num_properties][0]['value'] = $d_pages; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $num_properties++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // get the properties for this publication 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if($pub_id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $sql = " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      SELECT CVT.cvterm_id, CVT.name, PP.value, PP.rank 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      FROM {pubprop} PP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        INNER JOIN {cvterm} CVT on CVT.cvterm_id = PP.type_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      WHERE PP.pub_id = %d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ORDER BY CVT.name, PP.rank 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $pub_props = chado_query($sql, $pub_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    while ($prop = db_fetch_object($pub_props)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // skip properties that were handled above 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if($prop->name == "Volume" or $prop->name == "Volume Title" or  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         $prop->name == "Issue"  or $prop->name == "Pages" or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         $prop->name == "Citation") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // add new properties that weren't handled yet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(array_key_exists($prop->cvterm_id, $properties)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $d_properties[$num_properties][$prop->rank]['name']  =  $prop->name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $d_properties[$num_properties][$prop->rank]['id']    = $prop->cvterm_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $d_properties[$num_properties][$prop->rank]['value'] = $prop->value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $num_properties++;  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // build the fields for the properties   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  for ($i = 0; $i < $num_properties; $i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    foreach ($d_properties[$i] as $rank => $d_property) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $form['properties'][$i][$rank]["prop_id-$i-$rank"] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#type'          => 'select', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#options'       => $properties, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#default_value' => $d_property['id'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $rows = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if  (preg_match('/Abstract/', $d_property['name'])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $rows = 10; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $form['properties'][$i][$rank]["prop_value-$i-$rank"] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#type'          => 'textarea', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#options'       => $properties, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#default_value' => $d_property['value'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#cols'          => 20, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#rows'          => $rows 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $form['properties'][$i][$rank]["remove-$i-$rank"] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#type'         => 'image_button', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#value'        => t('Remove'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#src'          => drupal_get_path('theme', 'tripal') . '/images/minus.png', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#ahah' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'path'    => "tripal_pub/properties/minus/$i", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'wrapper' => 'chado-pub-details', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'event'   => 'click', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'method'  => 'replace', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ),  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '#attributes' => array('onClick' => 'return false;'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if($i == $num_properties - 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $form['properties'][$i][$rank]["add-$i-$rank"] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          '#type'         => 'image_button',       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          '#value'        => t('Add'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          '#src'          => drupal_get_path('theme', 'tripal') . '/images/add.png', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          '#ahah' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'path'    => "tripal_pub/properties/add/$i", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'wrapper' => 'chado-pub-details', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'event'   => 'click', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'method'  => 'replace',           
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ),    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          '#attributes' => array('onClick' => 'return false;'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['volume'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textfield', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Volume'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_volume 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['issue'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textfield', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Issue'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_issue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['pages'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textfield', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Pages'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#description' => t('Page number range[s], e.g. 457--459, viii + 664pp, lv--lvii.'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_pages 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['volumetitle'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textfield', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Volume Title'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#description' => t('Title of part if one of a series.'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_volumetitle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['miniref'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textfield', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Mini-Ref'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_miniref 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['publisher'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textfield', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Publisher Name'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_publisher 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['pubplace'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'textfield', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Place of Publication'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_pubplace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['is_obsolete'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'checkbox', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#title' => t('Is Obsolete? (Check for Yes)'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#required' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#default_value' => $d_isobsolete 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return $form; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function theme_chado_pub_node_form($form) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $rows = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if ($form['properties']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    foreach ($form['properties'] as $i => $ranks) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (is_numeric($i)) {     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        foreach ($ranks as $rank => $elements) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (is_numeric($rank)) {           
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $rows[] = array(   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              array('data' => drupal_render($elements["prop_id-$i-$rank"]), 'width' => '20%'),     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              drupal_render($elements["prop_value-$i-$rank"]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              array('data' => drupal_render($elements["add-$i-$rank"]) . drupal_render($elements["remove-$i-$rank"]), 'width' => '5%'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $headers = array('Property Type','Value', ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $markup = '<div id="chado-pub-details">'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $markup .= drupal_render($form['pub_id']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $markup .= drupal_render($form['title']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $markup .= drupal_render($form['type_id']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $markup .= drupal_render($form['series_name']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $markup .= drupal_render($form['pyear']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $markup .= drupal_render($form['uniquename']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $markup .= "<b>Include Additional Details</b>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $markup .= theme('table', $headers, $rows); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $markup .= "</div>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['properties'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'markup', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#value' =>  $markup, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return drupal_render($form); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function tripal_pub_property_add() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $status = TRUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // prepare and render the form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form = tripal_core_ahah_prepare_form();    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $data = theme('node_form', $form); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // bind javascript events to the new objects that will be returned  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // so that AHAH enabled elements will work. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $settings = tripal_core_ahah_bind_events(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // return the updated JSON 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  drupal_json( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      'status'   => $status,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      'data'     => $data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      'settings' => $settings, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    )   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function tripal_pub_property_delete() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $status = TRUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // prepare and render the form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form = tripal_core_ahah_prepare_form();    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $data = theme('chado_pub_node_form', $form);   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // bind javascript events to the new objects that will be returned  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // so that AHAH enabled elements will work. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $settings = tripal_core_ahah_bind_events(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // return the updated JSON 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  drupal_json( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      'status'   => $status,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      'data'     => $data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      'settings' => $settings, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    )   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |