|  | @@ -9,7 +9,6 @@
 | 
	
		
			
				|  |  |   * @param $form_state
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function tripal_chado_migrate_form($form, &$form_state) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |    $form['overview_vert_tabs'] = array(
 | 
	
		
			
				|  |  |      '#type' => 'vertical_tabs'
 | 
	
		
			
				|  |  |    );
 | 
	
	
		
			
				|  | @@ -816,7 +815,6 @@ function tripal_chado_migrate_url_alias_for_selected_types($tv2_content_types =
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  |   * Migrate images for all chado_organism
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  | - * @param unknown $tv2_content_types
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function tripal_chado_migrate_organism_images () {
 | 
	
		
			
				|  |  |    // Get all organism entities
 | 
	
	
		
			
				|  | @@ -839,23 +837,74 @@ function tripal_chado_migrate_organism_images () {
 | 
	
		
			
				|  |  |      ->condition('id', $nid)
 | 
	
		
			
				|  |  |      ->execute()
 | 
	
		
			
				|  |  |      ->fetchField();
 | 
	
		
			
				|  |  | -    // If there is an image, add it to the organism entity
 | 
	
		
			
				|  |  | -    if ($fid) {
 | 
	
		
			
				|  |  | -      $file = file_load($fid);
 | 
	
		
			
				|  |  | -      // Add a record to the file_usage table
 | 
	
		
			
				|  |  | -      file_usage_add($file, 'file', 'TripalEntity', $entity_id);
 | 
	
		
			
				|  |  | -      // Attached it to the entity
 | 
	
		
			
				|  |  | -      $entities = entity_load('TripalEntity', array($entity_id));
 | 
	
		
			
				|  |  | -      $entity = $entities[$entity_id];
 | 
	
		
			
				|  |  | -      $image_file = (array) $file;
 | 
	
		
			
				|  |  | -      $image = array(
 | 
	
		
			
				|  |  | -        'und' => array(
 | 
	
		
			
				|  |  | -          0 =>$image_file
 | 
	
		
			
				|  |  | -        )
 | 
	
		
			
				|  |  | -      );
 | 
	
		
			
				|  |  | -      $entity->data__image = $image;
 | 
	
		
			
				|  |  | -      field_attach_update('TripalEntity', $entity);
 | 
	
		
			
				|  |  | +    // check if the image was added using the old interface.
 | 
	
		
			
				|  |  | +    if (!$fid) {
 | 
	
		
			
				|  |  | +      $sql = 
 | 
	
		
			
				|  |  | +         "SELECT genus,species,nid 
 | 
	
		
			
				|  |  | +          FROM {organism} O 
 | 
	
		
			
				|  |  | +          INNER JOIN chado_organism CO ON O.organism_id = CO.organism_id 
 | 
	
		
			
				|  |  | +          WHERE O.organism_id = :organism_id";
 | 
	
		
			
				|  |  | +      $chado_org = chado_query($sql, array(':organism_id' => $organism->record_id))->fetchObject();
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      if ($chado_org) {
 | 
	
		
			
				|  |  | +        $base_path = realpath('.');
 | 
	
		
			
				|  |  | +        $image_dir = tripal_get_files_dir('tripal_organism') . "/images";
 | 
	
		
			
				|  |  | +        $image_name =  $chado_org->genus . "_" . $chado_org->species . ".jpg";
 | 
	
		
			
				|  |  | +        $image_path = "$base_path/$image_dir/$image_name";
 | 
	
		
			
				|  |  | +        // image files are stored as 'genus_species.jpg'
 | 
	
		
			
				|  |  | +        $file =NULL;
 | 
	
		
			
				|  |  | +        if (file_exists($image_path)) {
 | 
	
		
			
				|  |  | +          $handle = fopen($image_path, 'r');
 | 
	
		
			
				|  |  | +          $file = file_save_data($handle, "public://$image_name");
 | 
	
		
			
				|  |  | +          fclose($handle);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // last possible case: image files are stored as 'organism_id.jpg'
 | 
	
		
			
				|  |  | +        else {
 | 
	
		
			
				|  |  | +          $image_name = $chado_org->nid . ".jpg";
 | 
	
		
			
				|  |  | +          $image_path = "$base_path/$image_dir/$image_name";
 | 
	
		
			
				|  |  | +          if (file_exists($image_path)) {
 | 
	
		
			
				|  |  | +            $handle = fopen($image_path, 'r');
 | 
	
		
			
				|  |  | +            $file = file_save_data($handle, "public://$image_name");
 | 
	
		
			
				|  |  | +            fclose($handle);
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if($file){
 | 
	
		
			
				|  |  | +          tripal_chado_migrate_organism_image_add_file($file->fid, $entity_id);
 | 
	
		
			
				|  |  | +        }        
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    else {
 | 
	
		
			
				|  |  | +      // If there is an image, add it to the organism entity
 | 
	
		
			
				|  |  | +      tripal_chado_migrate_organism_image_add_file ($fid, $entity_id);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 
 | 
	
		
			
				|  |  | + * Add image file for the organism entity
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * @param unknown $fid
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +function tripal_chado_migrate_organism_image_add_file ($fid, $entity_id) {
 | 
	
		
			
				|  |  | +  if ($fid && $entity_id) {
 | 
	
		
			
				|  |  | +    $file = file_load($fid);
 | 
	
		
			
				|  |  | +    // Add a record to the file_usage table
 | 
	
		
			
				|  |  | +    file_usage_add($file, 'file', 'TripalEntity', $entity_id);
 | 
	
		
			
				|  |  | +    // Attached it to the entity
 | 
	
		
			
				|  |  | +    $entities = entity_load('TripalEntity', array($entity_id));
 | 
	
		
			
				|  |  | +    $entity = $entities[$entity_id];
 | 
	
		
			
				|  |  | +    $image_file = (array) $file;
 | 
	
		
			
				|  |  | +    $image = array(
 | 
	
		
			
				|  |  | +      'und' => array(
 | 
	
		
			
				|  |  | +        0 =>$image_file
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +    $entity->data__image = $image;
 | 
	
		
			
				|  |  | +    field_attach_update('TripalEntity', $entity);
 | 
	
		
			
				|  |  | +    entity_get_controller('TripalEntity')->resetCache(array($entity_id));
 | 
	
		
			
				|  |  | +    // Add a record to the field_data_data__image table
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  |  }
 |