protected function AliasRepository::addLanguageFallback in Drupal 9
Adds path alias language fallback conditions to a select query object.
Parameters
\Drupal\Core\Database\Query\SelectInterface $query: A Select query object.
string $langcode: Language code to search the path with. If there's no path defined for that language it will search paths without language.
3 calls to AliasRepository::addLanguageFallback()
- AliasRepository::lookupByAlias in core/
modules/ path_alias/ src/ AliasRepository.php - Searches a path alias for a given alias.
- AliasRepository::lookupBySystemPath in core/
modules/ path_alias/ src/ AliasRepository.php - Searches a path alias for a given Drupal system path.
- AliasRepository::preloadPathAlias in core/
modules/ path_alias/ src/ AliasRepository.php - Pre-loads path alias information for a given list of system paths.
File
- core/
modules/ path_alias/ src/ AliasRepository.php, line 124
Class
- AliasRepository
- Provides the default path alias lookup operations.
Namespace
Drupal\path_aliasCode
protected function addLanguageFallback(SelectInterface $query, $langcode) {
// Always get the language-specific alias before the language-neutral one.
// For example 'de' is less than 'und' so the order needs to be ASC, while
// 'xx-lolspeak' is more than 'und' so the order needs to be DESC.
$langcode_list = [
$langcode,
LanguageInterface::LANGCODE_NOT_SPECIFIED,
];
if ($langcode === LanguageInterface::LANGCODE_NOT_SPECIFIED) {
array_pop($langcode_list);
}
elseif ($langcode > LanguageInterface::LANGCODE_NOT_SPECIFIED) {
$query
->orderBy('base_table.langcode', 'DESC');
}
else {
$query
->orderBy('base_table.langcode', 'ASC');
}
$query
->condition('base_table.langcode', $langcode_list, 'IN');
}