You are here

public function AliasStorage::lookupPathAlias in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Path/AliasStorage.php \Drupal\Core\Path\AliasStorage::lookupPathAlias()

Returns an alias of Drupal system URL.

The default implementation performs case-insensitive matching on the 'source' and 'alias' strings.

Parameters

string $path: The path to investigate for corresponding path aliases.

string $langcode: Language code to search the path with. If there's no path defined for that language it will search paths without language.

Return value

string|false A path alias, or FALSE if no path was found.

Overrides AliasStorageInterface::lookupPathAlias

File

core/lib/Drupal/Core/Path/AliasStorage.php, line 184
Contains \Drupal\Core\Path\AliasStorage.

Class

AliasStorage
Provides a class for CRUD operations on path aliases.

Namespace

Drupal\Core\Path

Code

public function lookupPathAlias($path, $langcode) {
  $source = $this->connection
    ->escapeLike($path);
  $langcode_list = [
    $langcode,
    LanguageInterface::LANGCODE_NOT_SPECIFIED,
  ];

  // See the queries above. Use LIKE for case-insensitive matching.
  $select = $this->connection
    ->select('url_alias')
    ->fields('url_alias', [
    'alias',
  ])
    ->condition('source', $source, 'LIKE');
  if ($langcode == LanguageInterface::LANGCODE_NOT_SPECIFIED) {
    array_pop($langcode_list);
  }
  elseif ($langcode > LanguageInterface::LANGCODE_NOT_SPECIFIED) {
    $select
      ->orderBy('langcode', 'DESC');
  }
  else {
    $select
      ->orderBy('langcode', 'ASC');
  }
  $select
    ->orderBy('pid', 'DESC');
  $select
    ->condition('langcode', $langcode_list, 'IN');
  return $select
    ->execute()
    ->fetchField();
}