diff --git a/metatag.module b/metatag.module index ad054e0..db76475 100644 --- a/metatag.module +++ b/metatag.module @@ -754,6 +754,13 @@ function metatag_entity_insert($entity, $entity_type) { $langcode = LANGUAGE_NONE; } + // Work-around for initial entity creation where a language was selection + // but where it's different to the form's value. + if (!isset($entity->metatags[$langcode]) && isset($entity->metatags[LANGUAGE_NONE])) { + $entity->metatags[$langcode] = $entity->metatags[LANGUAGE_NONE]; + unset($entity->metatags[LANGUAGE_NONE]); + } + // Support for Workbench Moderation v1. if ($entity_type == 'node' && _metatag_isdefaultrevision($entity)) { return; @@ -786,6 +793,7 @@ function metatag_entity_update($entity, $entity_type) { // translation is being saved using Entity Translation both values will // be the same, so this is safe to do. if ($old_language != $new_language) { + // Delete the old language record. db_delete('metatag') ->condition('entity_type', $entity_type) ->condition('entity_id', $entity_id) @@ -1097,12 +1105,8 @@ function metatag_metatags_form(array &$form, $instance, array $metatags = array( // Work out the language code to use, default to NONE. $langcode = LANGUAGE_NONE; - if (isset($form['#entity_type'])) { - $entity_info = entity_get_info(); - if (!empty($entity_info[$form['#entity_type']]['translation']['locale'])) { - // The language to use for this form. - $langcode = $GLOBALS['language_content']->language; - } + if (isset($form['#entity_type']) && $form['#entity']) { + $langcode = metatag_entity_get_language($form['#entity_type'], $form['#entity']); } // Merge in the default options. diff --git a/metatag.test b/metatag.test index 2361aa0..bc44e15 100644 --- a/metatag.test +++ b/metatag.test @@ -15,7 +15,7 @@ class MetaTagsUnitTest extends MetaTagsTestHelper { return array( 'name' => 'Meta tag unit tests', 'description' => 'Test basic meta tag functionality.', - 'group' => 'Meta tags', + 'group' => 'Metatag', ); } diff --git a/metatag_context/metatag_context.test b/metatag_context/metatag_context.test index e6fd746..7dfc963 100644 --- a/metatag_context/metatag_context.test +++ b/metatag_context/metatag_context.test @@ -14,7 +14,7 @@ class MetatagContextTestCase extends DrupalWebTestCase { return array( 'name' => 'Meta tag context tests', 'description' => 'Test basic meta tag context functionality.', - 'group' => 'Meta tags', + 'group' => 'Metatag', ); }