| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 | 
							- <?php
 
- /**
 
-  * Implements hook_field_schema()
 
-  */
 
- function addressfield_field_schema() {
 
-   $columns = array(
 
-     'country' => array(
 
-       'description' => 'Two letter ISO country code of this address.',
 
-       'type' => 'varchar',
 
-       'length' => 2,
 
-       'not null' => FALSE,
 
-       'default' => '',
 
-     ),
 
-     'administrative_area' => array(
 
-       'description' => 'The administrative area of this address. (i.e. State/Province)',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'default' => '',
 
-       'not null' => FALSE,
 
-     ),
 
-     'sub_administrative_area' => array(
 
-       'description' => 'The sub administrative area of this address.',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'default' => '',
 
-       'not null' => FALSE,
 
-     ),
 
-     'locality' => array(
 
-       'description' => 'The locality of this address. (i.e. City)',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'default' => '',
 
-       'not null' => FALSE,
 
-     ),
 
-     'dependent_locality' => array(
 
-       'description' => 'The dependent locality of this address.',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'default' => '',
 
-       'not null' => FALSE,
 
-     ),
 
-     'postal_code' => array(
 
-       'description' => 'The postal code of this address.',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'default' => '',
 
-       'not null' => FALSE,
 
-     ),
 
-     'thoroughfare' => array(
 
-       'description' => 'The thoroughfare of this address. (i.e. Street address)',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'default' => '',
 
-       'not null' => FALSE,
 
-     ),
 
-     'premise' => array(
 
-       'description' => 'The premise of this address. (i.e. Apartment / Suite number)',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'default' => '',
 
-       'not null' => FALSE,
 
-     ),
 
-     'sub_premise' => array(
 
-       'description' => 'The sub_premise of this address.',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'default' => '',
 
-       'not null' => FALSE,
 
-     ),
 
-     'organisation_name' => array(
 
-       'description' => 'Contents of a primary OrganisationName element in the xNL XML.',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'not null' => FALSE,
 
-       'default' => '',
 
-     ),
 
-     'name_line' => array(
 
-       'description' => 'Contents of a primary NameLine element in the xNL XML.',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'not null' => FALSE,
 
-       'default' => '',
 
-     ),
 
-     'first_name' => array(
 
-       'description' => 'Contents of the FirstName element of a primary PersonName element in the xNL XML.',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'not null' => FALSE,
 
-       'default' => '',
 
-     ),
 
-     'last_name' => array(
 
-       'description' => 'Contents of the LastName element of a primary PersonName element in the xNL XML.',
 
-       'type' => 'varchar',
 
-       'length' => 255,
 
-       'not null' => FALSE,
 
-       'default' => '',
 
-     ),
 
-     'data' => array(
 
-       'description' => 'Additional data for this address.',
 
-       'type' => 'text',
 
-       'size' => 'big',
 
-       'not null' => FALSE,
 
-       'serialize' => TRUE,
 
-     ),
 
-   );
 
-   return array(
 
-     'columns' => $columns,
 
-     // TODO Add indexes.
 
-   );
 
- }
 
- /**
 
-  * Update the field configuration to the new plugin structure.
 
-  */
 
- function addressfield_update_7000() {
 
-   // Enable ctools.
 
-   if (!module_enable(array('ctools'))) {
 
-     throw new Exception('This version of addressfield requires ctools, but it could not be enabled.');
 
-   }
 
-   // Get the list of fields of type 'addressfield'.
 
-   $address_fields = array();
 
-   foreach (field_info_fields() as $field_name => $field_info) {
 
-     if ($field_info['type'] == 'addressfield') {
 
-       $address_fields[$field_name] = $field_name;
 
-     }
 
-   }
 
-   foreach (field_info_instances() as $entity_type => $bundles) {
 
-     foreach ($bundles as $bundle_name => $instances) {
 
-       foreach (array_intersect_key($instances, $address_fields) as $field_name => $instance) {
 
-         $widget_settings = &$instance['widget']['settings'];
 
-         if ($instance['widget']['type'] == 'addressfield_standard') {
 
-           // Default to use the country-based address widget.
 
-           $format_handlers = array('address');
 
-           // Map the old 'name_format' setting to the name and organization widgets.
 
-           if (in_array($widget_settings['name_format'], array('name_line_organisation', 'first_last_organisation'))) {
 
-             $format_handlers[] = 'organisation';
 
-           }
 
-           if (in_array($widget_settings['name_format'], array('name_line', 'name_line_organisation'))) {
 
-             $format_handlers[] = 'name-oneline';
 
-           }
 
-           else {
 
-             $format_handlers[] = 'name-full';
 
-           }
 
-           unset($widget_settings['name_format']);
 
-           $widget_settings['format_handlers'] = $format_handlers;
 
-         }
 
-         // Update displays.
 
-         foreach ($instance['display'] as $view_mode => &$view_mode_info) {
 
-           $display_settings = &$view_mode_info['settings'];
 
-           if ($view_mode_info['type'] == 'addressfield_default') {
 
-             if (isset($widget_settings['format_handlers'])) {
 
-               $display_settings['use_widget_handlers'] = 1;
 
-             }
 
-             else {
 
-               // If the widget is non-standard, just use a sane default.
 
-               $display_settings['use_widget_handlers'] = 0;
 
-               $display_settings['format_handlers'] = array('address', 'name-oneline');
 
-             }
 
-           }
 
-           else if ($view_mode_info['type'] == 'addressfield_name') {
 
-             // Migrate the 'addressfield_name' formatter to the new framework.
 
-             $view_mode_info['type'] = 'addressfield_default';
 
-             // Start from the widget configuration.
 
-             $display_settings['use_widget_handlers'] = 0;
 
-             $display_settings['format_handlers'] = isset($widget_settings['format_handlers']) ? $widget_settings['format_handlers'] : array('address', 'name-oneline');
 
-             if (empty($display_settings['organisation'])) {
 
-               $display_settings['format_handlers'] = array_diff( $display_settings['format_handlers'], array('organisation'));
 
-             }
 
-             unset($display_settings['organisation']);
 
-           }
 
-         }
 
-         field_update_instance($instance);
 
-       }
 
-     }
 
-   }
 
- }
 
- /**
 
-  * Sets the value of the new "Default country" setting.
 
-  */
 
- function addressfield_update_7001() {
 
-   $address_fields = array();
 
-   foreach (field_info_fields() as $field_name => $field_info) {
 
-     if ($field_info['type'] == 'addressfield') {
 
-       $address_fields[$field_name] = $field_name;
 
-     }
 
-   }
 
-   foreach (field_info_instances() as $entity_type => $bundles) {
 
-     foreach ($bundles as $bundle_name => $instances) {
 
-       foreach (array_intersect_key($instances, $address_fields) as $field_name => $instance) {
 
-         // Optional fields get the None default. Required fields get the
 
-         // previously selected default country.
 
-         $default_country = '';
 
-         if (!empty($instance['required']) && !empty($instance['default_value'])) {
 
-           $default_country = $instance['default_value'][0]['country'];
 
-         }
 
-         $instance['widget']['settings']['default_country'] = $default_country;
 
-         unset($instance['default_value']);
 
-         field_update_instance($instance);
 
-       }
 
-     }
 
-   }
 
- }
 
 
  |