public function AliasStorage::lookupPathSource

public AliasStorage::lookupPathSource($path, $langcode)

Returns Drupal system URL of an alias.

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

Parameters

string $path: The path to investigate for corresponding system URLs.

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 Drupal system path, or FALSE if no path was found.

Overrides AliasStorageInterface::lookupPathSource

File

core/lib/Drupal/Core/Path/AliasStorage.php, line 260

Class

AliasStorage
Provides a class for CRUD operations on path aliases.

Namespace

Drupal\Core\Path

Code

public function lookupPathSource($path, $langcode) {
  $alias = $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(static::TABLE)
    ->fields(static::TABLE, ['source'])
    ->condition('alias', $alias, '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');
  try {
    return $select->execute()->fetchField();
  }
  catch (\Exception $e) {
    $this->catchException($e);
    return FALSE;
  }
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Path!AliasStorage.php/function/AliasStorage::lookupPathSource/8.1.x