Пример добавления для ноды 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
Похожие записи
- Вставка в CKEditor видео из ВКонтакте и Rutube (расширение модуля CKEditor 5 Media Embed)
- Как из PhpStorm выполнить тест(ы)
- Как работает опция "Aggregation type" в настройках полей Views при включённой агрегации
- Создание сравнительной таблицы с значениями из EAV Field
- Препроцессинг настроек форматтера перед сохранением
Комментарии
Более распостранённая задача, добавить синоним ноде при ее сохранении.
http://drupal.stackexchange.com/questions/1068/how-to-set-url-alias-aut…
При описанных способах при каждом редактировании ноды будет создаваться новый синоним, так как не указан pid (уникальный идентификатор) синонима. Таким образом на одну ноду может быть нагенерированна целая куча одинаковых синонимов.
Что бы этого не происходило надо добавлять pid синонима
Пример создания синонимов с проверкой на уникальность можно посмотреть тут
Добавить комментарий