Skip to content
Snippets Groups Projects
Unverified Commit 6f247305 authored by Lauri Timmanee's avatar Lauri Timmanee
Browse files

Issue #2883450 by mohit_aghera, Patrick Bauer, lauriii, corneboele, aarti...

Issue #2883450 by mohit_aghera, Patrick Bauer, lauriii, corneboele, aarti zikre, madhu_h, TBI, smustgrave, svdhout: Missing url prefix on language neutral content
parent 2d6ae27e
Branches
Tags
26 merge requests!12227Issue #3181946 by jonmcl, mglaman,!54479.5.x SF update,!5014Issue #3071143: Table Render Array Example Is Incorrect,!4868Issue #1428520: Improve menu parent link selection,!4289Issue #1344552 by marcingy, Niklas Fiekas, Ravi.J, aleevas, Eduardo Morales...,!4114Issue #2707291: Disable body-level scrolling when a dialog is open as a modal,!4100Issue #3249600: Add support for PHP 8.1 Enums as allowed values for list_* data types,!2378Issue #2875033: Optimize joins and table selection in SQL entity query implementation,!2334Issue #3228209: Add hasRole() method to AccountInterface,!2062Issue #3246454: Add weekly granularity to views date sort,!1591Issue #3199697: Add JSON:API Translation experimental module,!1484Exposed filters get values from URL when Ajax is on,!1255Issue #3238922: Refactor (if feasible) uses of the jQuery serialize function to use vanillaJS,!1162Issue #3100350: Unable to save '/' root path alias,!1105Issue #3025039: New non translatable field on translatable content throws error,!1073issue #3191727: Focus states on mobile second level navigation items fixed,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!925Issue #2339235: Remove taxonomy hard dependency on node module,!877Issue #2708101: Default value for link text is not saved,!872Draft: Issue #3221319: Race condition when creating menu links and editing content deletes menu links,!844Resolve #3036010 "Updaters",!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493,!485Sets the autocomplete attribute for username/password input field on login form.,!30Issue #3182188: Updates composer usage to point at ./vendor/bin/composer
......@@ -130,7 +130,10 @@ public function processOutbound($path, &$options = [], Request $request = NULL,
}
$languages = array_flip(array_keys($this->languageManager->getLanguages()));
// Language can be passed as an option, or we go for current URL language.
if (!isset($options['language'])) {
if (!isset($options['language']) || ($options['language'] instanceof LanguageInterface && in_array($options['language']->getId(), [
LanguageInterface::LANGCODE_NOT_SPECIFIED,
LanguageInterface::LANGCODE_NOT_APPLICABLE,
]))) {
$language_url = $this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_URL);
$options['language'] = $language_url;
}
......
......@@ -577,4 +577,26 @@ public function testDetailsTitleIsNotEscaped() {
$this->assertSession()->responseContains($markup);
}
/**
* Test that when content is language neutral, it uses interface language.
*
* When language neutral content is displayed on interface language, it should
* consider the interface language for creating the content link.
*/
public function testUrlPrefixOnLanguageNeutralContent() {
$this->drupalLogin($this->administrator);
$neutral_langcodes = [
LanguageInterface::LANGCODE_NOT_APPLICABLE,
LanguageInterface::LANGCODE_NOT_SPECIFIED,
];
foreach ($neutral_langcodes as $langcode) {
$article = $this->drupalCreateNode(['type' => 'article', 'langcode' => $langcode]);
$this->drupalGet("{$this->langcodes[1]}/admin/content");
$this->assertSession()->linkByHrefExists("{$this->langcodes[1]}/node/{$article->id()}");
$this->drupalGet("{$this->langcodes[2]}/admin/content");
$this->assertSession()->linkByHrefExists("{$this->langcodes[2]}/node/{$article->id()}");
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment