You are here

function number_content_migrate_instance_alter in Content Construction Kit (CCK) 7.3

Implements hook_content_migrate_instance_alter().

Use this to tweak the conversion of instance or widget settings from the D6 style to the D7 style for specific situations not handled by basic conversion, as when formatter or widget names or settings are changed.

File

modules/content_migrate/modules/content_migrate.number.inc, line 74
content_migrate.number.inc Code to implement Content Migrate hooks on behalf of the Number module.

Code

function number_content_migrate_instance_alter(&$instance_value, $field_value) {
  switch ($field_value['module']) {
    case 'number':

      // The number formatters and formatter settings
      // have changed.
      $new_type = array(
        'unformatted' => 'number_unformatted',
        'default' => $field_value['type'] == 'number_integer' ? 'number_integer' : 'number_decimal',
        'us_0' => 'number_integer',
        'us_1' => 'number_decimal',
        'us_2' => 'number_decimal',
        'be_0' => 'number_integer',
        'be_1' => 'number_decimal',
        'be_2' => 'number_decimal',
        'fr_0' => 'number_integer',
        'fr_1' => 'number_decimal',
        'fr_2' => 'number_decimal',
      );
      $new_settings = array(
        'default' => array(
          'thousand_separator' => '',
          'decimal_separator' => '.',
          'scale' => 0,
          'prefix_suffix' => TRUE,
        ),
        'us_0' => array(
          'thousand_separator' => ',',
          'decimal_separator' => '.',
          'scale' => 0,
          'prefix_suffix' => TRUE,
        ),
        'us_1' => array(
          'thousand_separator' => ',',
          'decimal_separator' => '.',
          'scale' => 1,
          'prefix_suffix' => TRUE,
        ),
        'us_2' => array(
          'thousand_separator' => ',',
          'decimal_separator' => '.',
          'scale' => 2,
          'prefix_suffix' => TRUE,
        ),
        'be_0' => array(
          'thousand_separator' => '',
          'decimal_separator' => ',',
          'scale' => 0,
          'prefix_suffix' => TRUE,
        ),
        'be_1' => array(
          'thousand_separator' => '.',
          'decimal_separator' => ',',
          'scale' => 1,
          'prefix_suffix' => TRUE,
        ),
        'be_2' => array(
          'thousand_separator' => '.',
          'decimal_separator' => ',',
          'scale' => 2,
          'prefix_suffix' => TRUE,
        ),
        'fr_0' => array(
          'thousand_separator' => '',
          'decimal_separator' => ', ',
          'scale' => 0,
          'prefix_suffix' => TRUE,
        ),
        'fr_1' => array(
          'thousand_separator' => ' ',
          'decimal_separator' => ', ',
          'scale' => 1,
          'prefix_suffix' => TRUE,
        ),
        'fr_2' => array(
          'thousand_separator' => ' ',
          'decimal_separator' => ', ',
          'scale' => 2,
          'prefix_suffix' => TRUE,
        ),
      );
      foreach ($instance_value['display'] as $context => $settings) {
        if (array_key_exists($settings['type'], $new_type)) {
          $instance_value['display'][$context]['type'] = $new_type[$settings['type']];
          $instance_value['display'][$context]['settings'] = $new_settings[$settings['type']];
        }
      }

      // Min, max, prefix, and suffix moved to instance settings.
      $instance_value['settings']['min'] = $field_value['settings']['min'];
      $instance_value['settings']['max'] = $field_value['settings']['max'];
      $instance_value['settings']['prefix'] = $field_value['settings']['prefix'];
      $instance_value['settings']['suffix'] = $field_value['settings']['suffix'];
      break;
  }
}