| 12345678910111213141516171819202122232425262728293031323334353637383940 | <?php/** * Primary value passed to this field must be interval value itself (number of * periods). * * Pass the period as an argument, e.g.: * * @code *   $arguments = array('period' => 'month'); *   $this->addFieldMapping('field_subscription_duration', 'num_months') *        ->arguments($arguments); * @endcode */class MigrateIntervalFieldHandler extends MigrateFieldHandler {  public function __construct() {    $this->registerTypes(array('interval'));  }  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(        'interval' => $value,        'period' => $arguments['period'],      );      $delta++;    }    return isset($return) ? $return : NULL;  }}
 |