I have a content type using the following pathauto-token pattern:
[node:menupath]/[node:title], I added manually a menu using a hook_node_insert (see my previous question: creating a menu in a hook_node_insert()).
When the node is saved it doesn't have the
[node:menupath] token in the URL, just the
[node:title]. I decided to generate the path using pathauto API and this code:
$options = array( 'language' => isset($node->language) ? $node->language : LANGUAGE_NONE, ); module_load_include('inc', 'pathauto'); $uri = entity_uri('node', $node); $path = pathauto_create_alias('node', 'insert', $uri['path'], array('node' => $node), $node->type, $options['language']);
Doing this lead to duplicates in the
url_alias table, the
[node:menupath]/[node:title] alias being created first then the title.
I tried to add a
$node->pathauto_perform_alias = FALSE; in a presave, but seems to be inefective.
Also I tried to set my new path in the hook_node_insert but had no success:
$path = pathauto_create_alias('node', 'insert', //... $node->path = $path;
My code doesn't feel right, what would be the normal way to avoid duplicate and getting my pattern to work ?