diff --git a/redirect.migrate.inc b/redirect.migrate.inc index 5994d42..58686a3 100644 --- a/redirect.migrate.inc +++ b/redirect.migrate.inc @@ -20,7 +20,7 @@ class MigrateRedirectEntityHandler extends MigrateDestinationHandler { public function fields() { return array( 'migrate_redirects' => t('Original path(s) to redirect from.'), - 'migrate_redirects_language' => t('The language this redirect applies to.') + 'migrate_redirects_language' => t('The language this redirect applies to.'), ); } @@ -88,28 +88,35 @@ class MigrateRedirectEntityHandler extends MigrateDestinationHandler { } /** - * This determines the language for the current redirect. + * Determine the language for the current redirect. + * + * Look for a language setting in this order: + * - specified in the migration mapping + * - migration-specific language defined on the entity + * - entity language + * - default to LANGUAGE_NONE. + * + * @param object $entity + * The Drupal entity. + * @param object $row + * The row being migrated. * - * @param $entity - * @param $row * @return string + * a language code */ protected function getRedirectLanguage($entity, $row) { - //Defaults to the previous way. - $language = empty($entity->language) ? LANGUAGE_NONE : $entity->language; - - /** - * This allows for more granular control. It also allows us to support - * entity translations as well as node translations. - * - * Preference is given to a language specified in the mappings. - */ if (!empty($row->migrate_redirects_language)) { $language = $row->migrate_redirects_language; } - else if (!empty($entity->migrate_redirects_language)) { + elseif (!empty($entity->migrate_redirects_language)) { $language = $entity->migrate_redirects_language; } + elseif (!empty($entity->language)) { + $language = $entity->language; + } + else { + $language = LANGUAGE_NONE; + } return $language; } @@ -157,11 +164,12 @@ class MigrateRedirectEntityHandler extends MigrateDestinationHandler { } } } - else if (!empty($migrate_redirects) && empty($redirect_destination)) { + elseif (!empty($migrate_redirects) && empty($redirect_destination)) { $migration->saveMessage(t('The redirect path is empty.'), MigrationBase::MESSAGE_INFORMATIONAL); } } + } /**