You are here

public function LanguageNeutralAliasesStorage::save in Language neutral aliases 8

Saves a path alias to the database.

@thrown \InvalidArgumentException Thrown when either the source or alias has not a starting slash.

Parameters

string $source: The internal system path.

string $alias: The URL alias.

string $langcode: (optional) The language code of the alias.

int|null $pid: (optional) Unique path alias identifier.

Return value

array|false FALSE if the path could not be saved or an associative array containing the following keys:

  • source (string): The internal system path with a starting slash.
  • alias (string): The URL alias with a starting slash.
  • pid (int): Unique path alias identifier.
  • langcode (string): The language code of the alias.
  • original: For updates, an array with source, alias and langcode with the previous values.

Overrides AliasStorage::save

File

src/LanguageNeutralAliasesStorage.php, line 38

Class

LanguageNeutralAliasesStorage
Language neutral alias storage.

Namespace

Drupal\language_neutral_aliases

Code

public function save($source, $alias, $langcode = LanguageInterface::LANGCODE_NOT_SPECIFIED, $pid = NULL) {

  // Enfoce neutral language.
  $langcode = LanguageInterface::LANGCODE_NOT_SPECIFIED;

  // If attempting to save a non-neutral alias, save as new.
  if ($pid && ($row = parent::load([
    'pid' => $pid,
  ])) && $row && $row['langcode'] != $langcode) {
    $pid = NULL;
  }
  return parent::save($source, $alias, $langcode, $pid);
}