| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | <?php/** * Primary value passed to this field must be the two letter ISO country code of * the phone number. * * Subfields are used to specify all the other values: *   'number' - The actual phone number. *   'extension' - The extension. * * @code *   // The country should be passed in as the primary value. *   $this->addFieldMapping('field_user_phone', 'profile_country'); *   $this->addFieldMapping('field_user_phone:number', 'profile_number'); *   $this->addFieldMapping('field_user_phone:extension', 'profile_extension'); * @endcode */class MigrateCckPhoneHandler extends MigrateFieldHandler {  public function __construct() {    $this->registerTypes(array('phone_number'));  }  public function fields($type) {    return array(      'number' => t('Subfield: The phone number itself'),      'extension' => t('Extension: An optional extension'),    );  }  public function prepare($entity, array $field_info, array $instance, array $values) {    $arguments = array();    if (isset($values['arguments'])) {      $arguments = array_filter($values['arguments']);      unset($values['arguments']);    }    $language = $this->getFieldLanguage($entity, $field_info, $arguments);    // Setup the standard Field API array for saving.    $delta = 0;    foreach ($values as $value) {      $return[$language][$delta] = array('country_codes' => drupal_strtolower($value));      if (isset($arguments['number'])) {        if (is_array($arguments['number'])) {          $return[$language][$delta]['number'] = $arguments['number'][$delta];        }        else {          $return[$language][$delta]['number'] = $arguments['number'];        }      }      if (isset($arguments['extension'])) {        if (is_array($arguments['extension'])) {          $return[$language][$delta]['extension'] = $arguments['extension'][$delta];        }        else {          $return[$language][$delta]['extension'] = $arguments['extension'];        }      }      $delta++;    }    return isset($return) ? $return : NULL;  }}
 |