|  | @@ -721,6 +721,10 @@ function tripal_chado_migrate_selected_types($tv3_content_types) {
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  |      tripal_chado_publish_records($value);
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  | +    // Migrate Resource Titles/Blocks or Resource Links if available
 | 
	
		
			
				|  |  | +    tripal_chado_migrate_resource_blocks($bundle_name);
 | 
	
		
			
				|  |  | +    tripal_chado_migrate_resource_links($bundle_name);
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  |      // Migrate organism images
 | 
	
		
			
				|  |  |      if ($term->name == 'organism') {
 | 
	
		
			
				|  |  |        tripal_chado_migrate_organism_images($bundle_name);
 | 
	
	
		
			
				|  | @@ -933,4 +937,251 @@ function tripal_chado_migrate_get_biodata_tables ($chado_table) {
 | 
	
		
			
				|  |  |      array_push($tables, 'chado_' . $bundle->name);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    return $tables;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +function tripal_chado_migrate_resource_blocks($bundle_name) {
 | 
	
		
			
				|  |  | +  $entites = 
 | 
	
		
			
				|  |  | +    db_select('chado_' . $bundle_name, 'B')
 | 
	
		
			
				|  |  | +    ->fields('B', array('nid'))
 | 
	
		
			
				|  |  | +    ->execute();
 | 
	
		
			
				|  |  | +  while ($nid = $entites->fetchField()) {
 | 
	
		
			
				|  |  | +    // Only the latest revision is migrated
 | 
	
		
			
				|  |  | +    $sql = "
 | 
	
		
			
				|  |  | +      SELECT 
 | 
	
		
			
				|  |  | +        entity_id,
 | 
	
		
			
				|  |  | +        max(revision_id) AS vid,
 | 
	
		
			
				|  |  | +        delta,
 | 
	
		
			
				|  |  | +        (SELECT field_resource_titles_value 
 | 
	
		
			
				|  |  | +         FROM field_revision_field_resource_titles
 | 
	
		
			
				|  |  | +         WHERE entity_id = RT.entity_id
 | 
	
		
			
				|  |  | +         AND revision_id = max(RT.revision_id)
 | 
	
		
			
				|  |  | +         AND delta = RT.delta
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        (SELECT field_resource_blocks_value 
 | 
	
		
			
				|  |  | +         FROM field_revision_field_resource_blocks
 | 
	
		
			
				|  |  | +         WHERE entity_id = RT.entity_id
 | 
	
		
			
				|  |  | +         AND revision_id = max(RT.revision_id)
 | 
	
		
			
				|  |  | +         AND delta = RT.delta
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +      FROM field_revision_field_resource_titles RT
 | 
	
		
			
				|  |  | +      WHERE RT.entity_id = :nid
 | 
	
		
			
				|  |  | +      GROUP BY entity_id, delta
 | 
	
		
			
				|  |  | +      ORDER BY RT.delta
 | 
	
		
			
				|  |  | +    ";
 | 
	
		
			
				|  |  | +    $results = db_query($sql, array(':nid' => $nid));
 | 
	
		
			
				|  |  | +    while ($resource = $results->fetchObject()) {
 | 
	
		
			
				|  |  | +      $title = $resource->field_resource_titles_value;
 | 
	
		
			
				|  |  | +      $content = $resource->field_resource_blocks_value;
 | 
	
		
			
				|  |  | +      $delta = $resource->delta;
 | 
	
		
			
				|  |  | +      $nid = $resource->entity_id;
 | 
	
		
			
				|  |  | +      $entity_id = 
 | 
	
		
			
				|  |  | +        db_select('chado_' . $bundle_name, 'B')
 | 
	
		
			
				|  |  | +        ->fields('B', array('entity_id'))
 | 
	
		
			
				|  |  | +        ->condition('nid', $nid)
 | 
	
		
			
				|  |  | +        ->execute()
 | 
	
		
			
				|  |  | +        ->fetchField()
 | 
	
		
			
				|  |  | +       ;
 | 
	
		
			
				|  |  | +      // field name: (can not be longer than 32 chars)
 | 
	
		
			
				|  |  | +      // bio_data_<i>_resource_<title to lower case/space replaced with _/first 10 chars>
 | 
	
		
			
				|  |  | +      $field_name = $bundle_name . '_rsc_' . substr(preg_replace('/\s+/', '_', strtolower($title)), 0, 15);
 | 
	
		
			
				|  |  | +      // Create a field if it does not exist
 | 
	
		
			
				|  |  | +      if (!field_info_field($field_name)) {
 | 
	
		
			
				|  |  | +        field_create_field(array(
 | 
	
		
			
				|  |  | +          'field_name' => $field_name,
 | 
	
		
			
				|  |  | +          'type' => 'text',
 | 
	
		
			
				|  |  | +          'cardinality' => 1,
 | 
	
		
			
				|  |  | +          'locked' => FALSE,
 | 
	
		
			
				|  |  | +          'storage' => array(
 | 
	
		
			
				|  |  | +            'type' => 'field_sql_storage',
 | 
	
		
			
				|  |  | +          ),
 | 
	
		
			
				|  |  | +          'settings' => array(
 | 
	
		
			
				|  |  | +            'max_length' => 10485760,
 | 
	
		
			
				|  |  | +            'text_processing' => 1
 | 
	
		
			
				|  |  | +          )
 | 
	
		
			
				|  |  | +        ));
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      // Create field instance for the bundle if it does not exist
 | 
	
		
			
				|  |  | +      if (!field_info_instance('TripalEntity', $field_name, $bundle_name)) {
 | 
	
		
			
				|  |  | +        field_create_instance(array(
 | 
	
		
			
				|  |  | +          'field_name' => $field_name,
 | 
	
		
			
				|  |  | +          'entity_type' => 'TripalEntity',
 | 
	
		
			
				|  |  | +          'bundle' => $bundle_name,
 | 
	
		
			
				|  |  | +          'label' => $title,
 | 
	
		
			
				|  |  | +          'widget' => array(
 | 
	
		
			
				|  |  | +            'type' => 'text_textarea',
 | 
	
		
			
				|  |  | +          ),
 | 
	
		
			
				|  |  | +          'display' => array(
 | 
	
		
			
				|  |  | +            'default' => array(
 | 
	
		
			
				|  |  | +              'label' => 'above',
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +          ),
 | 
	
		
			
				|  |  | +          'settings' => array(
 | 
	
		
			
				|  |  | +            'text_processing' => 1,
 | 
	
		
			
				|  |  | +            'format' => 'full_html',
 | 
	
		
			
				|  |  | +            'term_vocabulary' => 'schema',
 | 
	
		
			
				|  |  | +            'term_name' => 'comment',
 | 
	
		
			
				|  |  | +            'term_accession' => 'comment',
 | 
	
		
			
				|  |  | +          ),
 | 
	
		
			
				|  |  | +        ));
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      // Migrate the field content
 | 
	
		
			
				|  |  | +      $ftable = 'field_data_' . $field_name;
 | 
	
		
			
				|  |  | +      $frtable = 'field_revision_' . $field_name;
 | 
	
		
			
				|  |  | +      $fvalue = $field_name . '_value';
 | 
	
		
			
				|  |  | +      $fformat = $field_name . '_format';
 | 
	
		
			
				|  |  | +      $sql = "
 | 
	
		
			
				|  |  | +        INSERT INTO $ftable (entity_type, bundle, entity_id, revision_id, language, delta, $fvalue, $fformat)
 | 
	
		
			
				|  |  | +        VALUES (:entity_type, :bundle, :entity_id, :revision_id, :language, :delta, :value, :format)
 | 
	
		
			
				|  |  | +      ";
 | 
	
		
			
				|  |  | +      db_query($sql,
 | 
	
		
			
				|  |  | +        array (
 | 
	
		
			
				|  |  | +          ':entity_type' => 'TripalEntity',
 | 
	
		
			
				|  |  | +          ':bundle' => $bundle_name,
 | 
	
		
			
				|  |  | +          ':entity_id' => $entity_id,
 | 
	
		
			
				|  |  | +          'revision_id' => $entity_id,
 | 
	
		
			
				|  |  | +          ':language' => 'und',
 | 
	
		
			
				|  |  | +          ':delta' => 0,
 | 
	
		
			
				|  |  | +          ':value' => $content,
 | 
	
		
			
				|  |  | +          ':format' => 'full_html'
 | 
	
		
			
				|  |  | +        )  
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  | +      $rsql = "
 | 
	
		
			
				|  |  | +      INSERT INTO $frtable (entity_type, bundle, entity_id, revision_id, language, delta, $fvalue, $fformat)
 | 
	
		
			
				|  |  | +      VALUES (:entity_type, :bundle, :entity_id, :revision_id, :language, :delta, :value, :format)
 | 
	
		
			
				|  |  | +      ";
 | 
	
		
			
				|  |  | +      db_query($rsql,
 | 
	
		
			
				|  |  | +        array (
 | 
	
		
			
				|  |  | +          ':entity_type' => 'TripalEntity',
 | 
	
		
			
				|  |  | +          ':bundle' => $bundle_name,
 | 
	
		
			
				|  |  | +          ':entity_id' => $entity_id,
 | 
	
		
			
				|  |  | +          'revision_id' => $entity_id,
 | 
	
		
			
				|  |  | +          ':language' => 'und',
 | 
	
		
			
				|  |  | +          ':delta' => 0,
 | 
	
		
			
				|  |  | +          ':value' => $content,
 | 
	
		
			
				|  |  | +          ':format' => 'full_html'
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +function tripal_chado_migrate_resource_links($bundle_name) {
 | 
	
		
			
				|  |  | +  $entites =
 | 
	
		
			
				|  |  | +  db_select('chado_' . $bundle_name, 'B')
 | 
	
		
			
				|  |  | +  ->fields('B', array('nid'))
 | 
	
		
			
				|  |  | +  ->execute();
 | 
	
		
			
				|  |  | +  while ($nid = $entites->fetchField()) {
 | 
	
		
			
				|  |  | +    // Only the latest revision is migrated
 | 
	
		
			
				|  |  | +    $sql = "
 | 
	
		
			
				|  |  | +      SELECT
 | 
	
		
			
				|  |  | +        entity_id,
 | 
	
		
			
				|  |  | +        max(revision_id) AS vid,
 | 
	
		
			
				|  |  | +        delta,
 | 
	
		
			
				|  |  | +        (SELECT field_resource_links_value
 | 
	
		
			
				|  |  | +         FROM field_revision_field_resource_links
 | 
	
		
			
				|  |  | +         WHERE entity_id = RT.entity_id
 | 
	
		
			
				|  |  | +         AND revision_id = max(RT.revision_id)
 | 
	
		
			
				|  |  | +         AND delta = RT.delta
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +      FROM field_revision_field_resource_links RT
 | 
	
		
			
				|  |  | +      WHERE RT.entity_id = :nid
 | 
	
		
			
				|  |  | +      GROUP BY entity_id, delta
 | 
	
		
			
				|  |  | +      ORDER BY RT.delta
 | 
	
		
			
				|  |  | +    ";
 | 
	
		
			
				|  |  | +    $results = db_query($sql, array(':nid' => $nid));
 | 
	
		
			
				|  |  | +    while ($resource = $results->fetchObject()) {
 | 
	
		
			
				|  |  | +      $values = explode('|', $resource->field_resource_links_value);
 | 
	
		
			
				|  |  | +      $title = $values[0];
 | 
	
		
			
				|  |  | +      $link = $values[1];
 | 
	
		
			
				|  |  | +      $delta = $resource->delta;
 | 
	
		
			
				|  |  | +      $nid = $resource->entity_id;
 | 
	
		
			
				|  |  | +      $entity_id =
 | 
	
		
			
				|  |  | +      db_select('chado_' . $bundle_name, 'B')
 | 
	
		
			
				|  |  | +      ->fields('B', array('entity_id'))
 | 
	
		
			
				|  |  | +      ->condition('nid', $nid)
 | 
	
		
			
				|  |  | +      ->execute()
 | 
	
		
			
				|  |  | +      ->fetchField()
 | 
	
		
			
				|  |  | +      ;
 | 
	
		
			
				|  |  | +      // field name: (can not be longer than 32 chars)
 | 
	
		
			
				|  |  | +      // bio_data_<i>_resource_<title to lower case/space replaced with _/first 10 chars>
 | 
	
		
			
				|  |  | +      $field_name = $bundle_name . '_resource_links';
 | 
	
		
			
				|  |  | +      // Create a field if it does not exist
 | 
	
		
			
				|  |  | +      if (!field_info_field($field_name)) {
 | 
	
		
			
				|  |  | +        field_create_field(array(
 | 
	
		
			
				|  |  | +          'field_name' => $field_name,
 | 
	
		
			
				|  |  | +          'type' => 'link_field',
 | 
	
		
			
				|  |  | +          'cardinality' => FIELD_CARDINALITY_UNLIMITED,
 | 
	
		
			
				|  |  | +          'locked' => FALSE,
 | 
	
		
			
				|  |  | +          'storage' => array(
 | 
	
		
			
				|  |  | +            'type' => 'field_sql_storage',
 | 
	
		
			
				|  |  | +          ),
 | 
	
		
			
				|  |  | +          'settings' => array(
 | 
	
		
			
				|  |  | +            'max_length' => 10485760,
 | 
	
		
			
				|  |  | +            'text_processing' => 1
 | 
	
		
			
				|  |  | +          )
 | 
	
		
			
				|  |  | +        ));
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      // Create field instance for the bundle if it does not exist
 | 
	
		
			
				|  |  | +      if (!field_info_instance('TripalEntity', $field_name, $bundle_name)) {
 | 
	
		
			
				|  |  | +        field_create_instance(array(
 | 
	
		
			
				|  |  | +          'field_name' => $field_name,
 | 
	
		
			
				|  |  | +          'entity_type' => 'TripalEntity',
 | 
	
		
			
				|  |  | +          'bundle' => $bundle_name,
 | 
	
		
			
				|  |  | +          'label' => 'Links',
 | 
	
		
			
				|  |  | +          'widget' => array(
 | 
	
		
			
				|  |  | +            'type' => 'text_textfield',
 | 
	
		
			
				|  |  | +          ),
 | 
	
		
			
				|  |  | +          'display' => array(
 | 
	
		
			
				|  |  | +            'default' => array(
 | 
	
		
			
				|  |  | +              'label' => 'above',
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +          ),
 | 
	
		
			
				|  |  | +          'settings' => array(
 | 
	
		
			
				|  |  | +            'text_processing' => 1,
 | 
	
		
			
				|  |  | +            'format' => 'full_html',
 | 
	
		
			
				|  |  | +            'term_vocabulary' => 'schema',
 | 
	
		
			
				|  |  | +            'term_name' => 'url',
 | 
	
		
			
				|  |  | +            'term_accession' => 'url',
 | 
	
		
			
				|  |  | +          ),
 | 
	
		
			
				|  |  | +        ));
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      // Migrate the field content
 | 
	
		
			
				|  |  | +      $ftable = 'field_data_' . $field_name;
 | 
	
		
			
				|  |  | +      $frtable = 'field_revision_' . $field_name;
 | 
	
		
			
				|  |  | +      $furl = $field_name . '_url';
 | 
	
		
			
				|  |  | +      $ftitle = $field_name . '_title';
 | 
	
		
			
				|  |  | +      $sql = "
 | 
	
		
			
				|  |  | +      INSERT INTO $ftable (entity_type, bundle, entity_id, revision_id, language, delta, $furl, $ftitle)
 | 
	
		
			
				|  |  | +      VALUES (:entity_type, :bundle, :entity_id, :revision_id, :language, :delta, :url, :title)
 | 
	
		
			
				|  |  | +      ";
 | 
	
		
			
				|  |  | +      db_query($sql,
 | 
	
		
			
				|  |  | +        array (
 | 
	
		
			
				|  |  | +          ':entity_type' => 'TripalEntity',
 | 
	
		
			
				|  |  | +          ':bundle' => $bundle_name,
 | 
	
		
			
				|  |  | +          ':entity_id' => $entity_id,
 | 
	
		
			
				|  |  | +          'revision_id' => $entity_id,
 | 
	
		
			
				|  |  | +          ':language' => 'und',
 | 
	
		
			
				|  |  | +          ':delta' => $delta,
 | 
	
		
			
				|  |  | +          ':url' => $link,
 | 
	
		
			
				|  |  | +          ':title' => $title
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  | +      $rsql = "
 | 
	
		
			
				|  |  | +      INSERT INTO $frtable (entity_type, bundle, entity_id, revision_id, language, delta, $furl, $ftitle)
 | 
	
		
			
				|  |  | +      VALUES (:entity_type, :bundle, :entity_id, :revision_id, :language, :delta, :url, :title)
 | 
	
		
			
				|  |  | +      ";
 | 
	
		
			
				|  |  | +      db_query($rsql,
 | 
	
		
			
				|  |  | +        array (
 | 
	
		
			
				|  |  | +          ':entity_type' => 'TripalEntity',
 | 
	
		
			
				|  |  | +          ':bundle' => $bundle_name,
 | 
	
		
			
				|  |  | +          ':entity_id' => $entity_id,
 | 
	
		
			
				|  |  | +          'revision_id' => $entity_id,
 | 
	
		
			
				|  |  | +          ':language' => 'und',
 | 
	
		
			
				|  |  | +          ':delta' => $delta,
 | 
	
		
			
				|  |  | +          ':url' => $link,
 | 
	
		
			
				|  |  | +          ':title' => $title
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  }
 |