From cf4938c0c36b0bb27ac24c087b0bf2a77e7ab4e9 Mon Sep 17 00:00:00 2001 From: Dylan Tack Date: Tue, 9 Aug 2011 12:20:43 -0700 Subject: [PATCH] Issue #1116408: Add support for Migrate module --- migrate.inc | 39 +++++++++++++++++++++++++++++++++++++++ redirect.info | 1 + redirect.module | 10 ++++++++++ 3 files changed, 50 insertions(+), 0 deletions(-) create mode 100644 migrate.inc diff --git a/migrate.inc b/migrate.inc new file mode 100644 index 0000000..22cd453 --- /dev/null +++ b/migrate.inc @@ -0,0 +1,39 @@ +registerTypes(array('entity')); + } + + public function fields() { + return array('migrate_redirects' => t('Original path(s) to redirect from.')); + } + + public function complete($entity, stdClass $row) { + if (($destination = entity_uri($entity->type, $entity)) && !empty($entity->migrate_redirects)) { + if (!is_array($entity->migrate_redirects)) { + $entity->migrate_redirects = array($entity->migrate_redirects); + } + + foreach ($entity->migrate_redirects as $path) { + $redirect_defaults = array( + 'uid' => $entity->uid, + 'status_code' => 301, + 'language' => $entity->language, + ); + $redirect = new stdClass(); + redirect_object_prepare($redirect, $redirect_defaults); + $redirect->redirect = $destination['path']; + $parsed = redirect_parse_url($path); + $redirect->source = $parsed['path']; + $redirect->source_options['query'] = $parsed['query']; + redirect_save($redirect); + } + } + } +} diff --git a/redirect.info b/redirect.info index 5134738..9b273a5 100644 --- a/redirect.info +++ b/redirect.info @@ -5,6 +5,7 @@ files[] = redirect.module files[] = redirect.admin.inc files[] = redirect.install files[] = redirect.test +files[] = migrate.inc files[] = views/redirect.views.inc ;files[] = views/redirect_handler_field_redirect_type.inc files[] = views/redirect_handler_filter_redirect_type.inc diff --git a/redirect.module b/redirect.module index 3705d87..a5f6b08 100644 --- a/redirect.module +++ b/redirect.module @@ -374,6 +374,16 @@ function redirect_views_api() { ); } +/* + * Implements hook_migrate_api(). + */ +function redirect_migrate_api() { + $api = array( + 'api' => 2, + ); + return $api; +} + /** * Implements hook_page_build(). * -- 1.7.2