Пример добавления для ноды 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
Комментарии
Более распостранённая задача, добавить синоним ноде при ее сохранении.
http://drupal.stackexchange.com/questions/1068/how-to-set-url-alias-aut…
При описанных способах при каждом редактировании ноды будет создаваться новый синоним, так как не указан pid (уникальный идентификатор) синонима. Таким образом на одну ноду может быть нагенерированна целая куча одинаковых синонимов.
Что бы этого не происходило надо добавлять pid синонима
Пример создания синонимов с проверкой на уникальность можно посмотреть тут
Добавить комментарий