diff --git a/link.info b/link.info index 0869698..aa8c45e 100644 --- a/link.info +++ b/link.info @@ -5,6 +5,8 @@ package = Fields files[] = link.module files[] = link.install +files[] = link.migrate.inc + ; Tests files[] = tests/link.crud.test files[] = tests/link.attribute.test diff --git a/link.migrate.inc b/link.migrate.inc new file mode 100644 index 0000000..6128367 --- /dev/null +++ b/link.migrate.inc @@ -0,0 +1,54 @@ +registerTypes(array('link_field')); + } + + static function arguments($title = NULL, $attributes = NULL, $language = NULL) { + $arguments = array(); + if (!is_null($title)) { + $arguments['title'] = $title; + } + if (!is_null($attributes)) { + $arguments['attributes'] = $attributes; + } + if (!is_null($language)) { + $arguments['language'] = $language; + } + return $arguments; + } + + public function prepare(stdClass $entity, array $field_info, array $instance, array $values) { + if (isset($values['arguments'])) { + $arguments = $values['arguments']; + unset($values['arguments']); + } + else { + $arguments = array(); + } + + $language = $this->getFieldLanguage($entity, $field_info, $arguments); + + $delta = 0; + foreach($values as $value) { + $item = array(); + if (isset($arguments['title'])) { + $item['title'] = $arguments['title']; + } + if (isset($arguments['attributes'])) { + $item['attributes'] = $arguments['attributes']; + } + $item['url'] = $value; + $return[$language][$delta] = $item; + $delta++; + } + + return isset($return) ? $return : NULL; + } +} diff --git a/link.module b/link.module index 9b3c653..6ae9e1d 100644 --- a/link.module +++ b/link.module @@ -896,4 +896,11 @@ function link_content_migrate_instance_alter(&$instance_value, $field_value) { */ function link_field_settings_form() { return array(); -} \ No newline at end of file +} + +/** + * Implements hook_migrate_api(). + */ +function link_migrate_api() { + return array('api' => 2); +}