Menú ruta en Pathauto


¿Cómo consigo que pathauto en Drupal 7 genere un alias de URL por la ruta de menú completa?

Author: kiamlaluno, 2011-01-13

10 answers

Solo una actualización en caso de que alguien se encuentre con esto con una versión más reciente de Pathauto/Token. Esto funcionó para mí:

[node: menu-link:parents:join-path]/[node: menu-link]

 43
Author: Ian Link,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-15 18:11:51

Terminé usando:

[node:menu-link:parent:url:path]/[node:menu-link]

Sin embargo, precaución: Si el nodo no tiene un enlace de menú, terminará sin una página con alias automáticamente. Por el lado positivo, esto podría hacerte consciente de las páginas huérfanas. (Considéralo una característica!)

Tenga en cuenta que usando el patrón:

[node:menu-link:url:path]/[node:menu-link]

Solo dará el enlace de menú del nodo, no el del padre (que sería necesario para hacer referencia a la ruta del padre).

O el patrón: [node:parent:url:path]/[node:menu-link]

Arroja un error en mi instancia de Drupal 7 sobre tokens inválidos (a pesar de que tengo el módulo token instalado).

 9
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-14 22:10:07
[node:menu-link:parent:url:path]/[node:title]

Si el nodo no está en el menú, entonces no crea un alias. De lo contrario, esto parece funcionar para los menús de n niveles.

 8
Author: Kenan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-02 16:28:44

Creo que tiene que ser este patrón ahora:

[node:menu-link:url:path]/[node:menu-link]

"ruta" en lugar de "alias"

 5
Author: John Robinson Jr.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-15 16:27:13

También necesitará instalar el módulo contrib Token although aunque muchas de las características de Token son parte de core en D7, algunos de los tokens edge case (como la ruta de menú completa de un nodo dado) no son proporcionados automáticamente por core.

Con eso instalado, creo que [node:menu-link:parent] o [node:menu-link:parent:url] debería funcionar.

 2
Author: Eaton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-13 19:54:17

El patrón que funciona para mí es el siguiente:

[node:menu-link:parent:url:alias]/[node:menu-link]

También instalé el módulo Token como se sugiere Eaten. No sé si [node:menu-link:parent:url:alias] es parte de core o vive en contrib.

 2
Author: toon.ketels,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-21 01:23:43

Si está intentando crear alias para páginas que son de 3er nivel o más profundas, por ejemplo:

Home page
 > Level 1 page
   > Level 2 page
     > Level 3 page

Y quieres que el alias de la página de nivel 3 se vea como http://domain.com/level-1/level-2/level-3, lo conseguí para que funcionara al establecer mi patrón en:

[node:menu-link:parent:parent:parent:title]/[node:menu-link:parent:parent:title]/[node:menu-link:parent:title]/[node:title]

Observe que agregué :parent al token, y para el primero lo agregué dos veces.

 1
Author: csuggs4,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-13 14:29:32

Disfrute!

[node:menu-link:parents:join-path]/[node:title].html

 0
Author: iwish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-02 07:59:14

Esta es la solución que uso:

[node:menu-link:parents:join:/]/[node:menu-link]

Separará los elementos del menú principal con un guión. Eso es lo que necesito.

 0
Author: Marcos Buarque,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-17 16:16:36

Para cualquiera que tropiece con esta respuesta, y se pregunta cómo agregar esto:

Configuración > Búsqueda y metadatos > Alias de URL, luego cree en la pestaña "Patrones".

 0
Author: Robert_T_Taylor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-29 16:27:07