it-swarm-es.com

Modificar un alias de URL sin usar un módulo

¿Hay alguna forma de alterar un alias de URL sin usar un módulo? Alguien me dijo que escribiera un registro en la tabla de la base de datos, pero no sé cómo hacerlo.

2
enjoylife

Drupal permite agregar (y modificar) un alias de ruta usando la interfaz de usuario. Generalmente, no hay razón para alterar una tabla de base de datos directamente, especialmente cuando un módulo central Drupal permite hacer lo que está tratando de lograr a través de una página administrativa.

Si necesita hacerlo desde el código, entonces puede usar la función path_set_alias() como se indica en tim.plunkett. De manera diferente, Drupal la interfaz de usuario es preferible para tales tareas.

La consulta utilizada por path_set_alias() para actualizar un alias existente es similar a la siguiente (simplifiqué la consulta eliminando la referencia al campo de idioma):

UPDATE {url_alias} SET src = '<alias>', dst = '<destination>' WHERE dst = '<old_destination>'

Si su sitio Drupal usa prefijos de tabla (por ejemplo, dr6_) entonces necesitas reemplazar {url_alias} con dr6_url_alias; si su sitio Drupal no usa prefijos de tabla, reemplace {url_alias} con url_alias.
Reemplazar también <alias> en la consulta que escribí con el alias de ruta, <destination> con la ruta al alias y <old_destination> con la ruta anterior (que también puede ser el mismo valor utilizado para <destination>).

Si no hay un alias de ruta, la consulta se convierte en la siguiente:

INSERT INTO {url_alias} (src, dst) VALUES ('<alias>', '<destination>')

<alias> y <destination> tienen el mismo significado que informé antes.

2
kiamlaluno

Insertar valores directamente en la base de datos es una mala elección cuando hay una API disponible. La función que está buscando es path_set_alias () .

Si insiste absolutamente en insertar filas directamente en la base de datos, la tabla es {url_alias}.

1
tim.plunkett