video_embed_field.migrate.inc 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. /**
  3. * @file
  4. * Migrate support for Video Embed Field module.
  5. */
  6. /**
  7. * Implements hook_migrate_api().
  8. */
  9. function video_embed_field_migrate_api() {
  10. $api = array(
  11. 'api' => 2,
  12. 'field handlers' => array('MigrateVideoEmbedFieldFieldHandler'),
  13. );
  14. return $api;
  15. }
  16. /**
  17. * Custom extended MigrateFieldHandler class for Video Embed Field module.
  18. */
  19. class MigrateVideoEmbedFieldFieldHandler extends MigrateFieldHandler {
  20. public function __construct() {
  21. $this->registerTypes(array('video_embed_field'));
  22. }
  23. /**
  24. * {@inheritdoc}
  25. */
  26. public function fields($type, $parent_field, $migration = NULL) {
  27. $fields = array(
  28. 'video_url' => t('Video: The video URL.'),
  29. );
  30. return $fields;
  31. }
  32. /**
  33. * {@inheritdoc}
  34. */
  35. public function prepare($entity, array $field_info, array $instance, array $values) {
  36. $arguments = array();
  37. if (isset($values['arguments'])) {
  38. $arguments = array_filter($values['arguments']);
  39. unset($values['arguments']);
  40. }
  41. $language = $this->getFieldLanguage($entity, $field_info, $arguments);
  42. // Setup the standard Field API array for saving.
  43. $delta = 0;
  44. foreach ($values as $value) {
  45. $return[$language][$delta] = array('video_url' => $value);
  46. $delta++;
  47. }
  48. return isset($return) ? $return : NULL;
  49. }
  50. }