diff --git a/docroot/sites/all/modules/contrib/link/link.info b/docroot/sites/all/modules/contrib/link/link.info index 8a5d0c1..140c38f 100644 --- a/docroot/sites/all/modules/contrib/link/link.info +++ b/docroot/sites/all/modules/contrib/link/link.info @@ -5,6 +5,8 @@ package = Fields files[] = link.module files[] = link.install +files[] = link.migrate.inc + ; Tests files[] = tests/link.test files[] = tests/link.attribute.test diff --git a/docroot/sites/all/modules/contrib/link/link.migrate.inc b/docroot/sites/all/modules/contrib/link/link.migrate.inc new file mode 100644 index 0000000..e25fb3b --- /dev/null +++ b/docroot/sites/all/modules/contrib/link/link.migrate.inc @@ -0,0 +1,66 @@ +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 fields($migration = NULL) { + $fields = array( + 'title' => t('Field: Link Title'), + 'attributes' => t('Field: Link Attributes'), + ); + return $fields; + } + + public function prepare($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); + + foreach($values as $delta => $value) { + $item = array(); + if (isset($arguments['title'])) { + if (!is_array($arguments['title'])) { + $item['title'] = $arguments['title']; + } + else if (isset($arguments['title'][$delta])) { + $item['title'] = $arguments['title'][$delta]; + } + } + if (isset($arguments['attributes'])) { + $item['attributes'] = $arguments['attributes']; + } + $item['url'] = $value; + $return[$language][$delta] = $item; + $delta++; + } + + return isset($return) ? $return : NULL; + } +} diff --git a/docroot/sites/all/modules/contrib/link/link.module b/docroot/sites/all/modules/contrib/link/link.module index c7af1ff..16a5fad 100644 --- a/docroot/sites/all/modules/contrib/link/link.module +++ b/docroot/sites/all/modules/contrib/link/link.module @@ -878,6 +878,13 @@ function link_views_api() { } /** + * Implements hook_migrate_api(). + */ +function link_migrate_api() { + return array('api' => 2); +} + +/** * Forms a valid URL if possible from an entered address. * Trims whitespace and automatically adds an http:// to addresses without a protocol specified *