xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Как программно создать синоним URL для ноды

Опубликовано в

Пример добавления для ноды 123 синонима my-path-alias.

Способ 1:

$node = node_load(123);
$current_path = path_load(array('source' => 'node/' . $node->nid));
$node->path = array(
  'alias' => 'my-path-alias',
  'pid' => $current_path ? $current_path['pid'] : NULL,
);
node_save($node);

Способ 2:

$current_path = path_load(array('source' => 'node/123'));
$new_path = array(
  'alias' => 'my-path-alias',
  'source' => 'node/123',
  'language' => LANGUAGE_NONE,
  'pid' => $current_path ? $current_path['pid'] : NULL,
);
path_save($new_path);
Написанное актуально для Drupal 7
Похожие записи

Комментарии RSS

Более распостранённая задача, добавить синоним ноде при ее сохранении.

http://drupal.stackexchange.com/questions/1068/how-to-set-url-alias-auto...

При описанных способах при каждом редактировании ноды будет создаваться новый синоним, так как не указан pid (уникальный идентификатор) синонима. Таким образом на одну ноду может быть нагенерированна целая куча одинаковых синонимов.

Что бы этого не происходило надо добавлять pid синонима

$node = node_load(123);
$source = path_load(array('source' => 'node/'.$node->nid));
$node->path = array(
  'alias' => 'my-path-alias',
  'pid' => $source['pid'],
  'language' => 'und',
);
node_save($node);

Пример создания синонимов с проверкой на уникальность можно посмотреть тут

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании