? 986046.field_info_alter.module_exists.patch ? entity-add-check-to-entity_metadata_field_info_alter-986046-3.patch Index: entity_metadata/entity_metadata.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/entity/entity_metadata/Attic/entity_metadata.module,v retrieving revision 1.1.2.46 diff -u -p -r1.1.2.46 entity_metadata.module --- entity_metadata/entity_metadata.module 9 Nov 2010 09:47:08 -0000 1.1.2.46 +++ entity_metadata/entity_metadata.module 2 Dec 2010 05:06:38 -0000 @@ -217,25 +217,36 @@ function entity_metadata_get_list($data, /** * Implements hook_field_info_alter(). + * * Defines default property types for core field types. */ function entity_metadata_field_info_alter(&$field_info) { - // Field API lists are key/value pairs but not multiple valued by default. - $field_info['list']['property_type'] = 'integer'; - $field_info['list_boolean']['property_type'] = 'boolean'; - $field_info['list_number']['property_type'] = 'decimal'; - $field_info['list_text']['property_type'] = 'text'; - $field_info['number_integer']['property_type'] = 'integer'; - $field_info['number_decimal']['property_type'] = 'decimal'; - $field_info['number_float']['property_type'] = 'decimal'; - $field_info['text']['property_type'] = 'text'; - $field_info['text']['property_callbacks'] = array('entity_metadata_field_text_property_callback'); - $field_info['text_long']['property_type'] = 'text'; - $field_info['text_long']['property_callbacks'] = array('entity_metadata_field_text_property_callback'); - $field_info['text_with_summary']['property_type'] = 'text'; - $field_info['text_with_summary']['property_callbacks'] = array('entity_metadata_field_text_property_callback'); - $field_info['taxonomy_term_reference']['property_type'] = 'taxonomy_term'; - $field_info['taxonomy_term_reference']['property_callbacks'] = array('entity_metadata_field_term_reference_callback'); + if (module_exists('list')) { + $field_info['list']['property_type'] = 'integer'; + $field_info['list_boolean']['property_type'] = 'boolean'; + $field_info['list_number']['property_type'] = 'decimal'; + $field_info['list_text']['property_type'] = 'text'; + } + + if (module_exists('number')) { + $field_info['number_integer']['property_type'] = 'integer'; + $field_info['number_decimal']['property_type'] = 'decimal'; + $field_info['number_float']['property_type'] = 'decimal'; + } + + if (module_exists('text')) { + $field_info['text']['property_type'] = 'text'; + $field_info['text']['property_callbacks'] = array('entity_metadata_field_text_property_callback'); + $field_info['text_long']['property_type'] = 'text'; + $field_info['text_long']['property_callbacks'] = array('entity_metadata_field_text_property_callback'); + $field_info['text_with_summary']['property_type'] = 'text'; + $field_info['text_with_summary']['property_callbacks'] = array('entity_metadata_field_text_property_callback'); + } + + if (module_exists('taxonomy')) { + $field_info['taxonomy_term_reference']['property_type'] = 'taxonomy_term'; + $field_info['taxonomy_term_reference']['property_callbacks'] = array('entity_metadata_field_term_reference_callback'); + } } /**