Pregunta

Tengo un problema con rutas de Drupal en un punto de vista que la construcción. En este momento mi punto de vista tiene la siguiente forma:. Contenidos / 2/6

Donde 2 y 6 son los identificadores de dos nodos, me gustaría manipular estos identificadores de traducirlos Digamos que el título de estos nodos.

No puedo hacer esto desde el punto de vista porque estoy enviando estos valores a un panel, y el panel debe recibir los identificadores de los nodos.

Así que para concluir, sólo quiero volver a escribir (como lo hace pathauto) estos identificadores a título, puedo hacer eso? ¿Hay un módulo específico para esto?

Gracias!

¿Fue útil?

Solución

Si he entendido bien, usted quiere mantener las rutas originales 'contenido / [nid_x] / [nid_y]', pero agrega alias de URL adicionales para los que tienen más 'habla' elementos de la ruta de los nodos (por ejemplo títulos). Si eso es correcto, tiene dos opciones:

En primer lugar, puede hacerlo de forma manual mediante la definición de alias de URL para 'contenido / [nid_x] / [nid_y]' bajo 'admin / build / ruta / añada'. Esto es fácil de hacer, pero probablemente no lo que está buscando, si necesita muchos de esos alias.

En segundo lugar, puede hacerlo mediante programación a través de la función path_set_alias() . Uso de la función es bastante simple - el único problema podría ser cuando a desencadenarla. Desde su descripción no es claro para mí, donde / cuando esas vistas se crean, por lo que es difícil llegar a una sugerencia -. Tal vez usted puede editar su pregunta a ser un poco más específico en ese

Si desea crear que los alias de URL para la vista combinaciones nodo específico, usted podría tratar de usar la 'inserción', 'actualización' y 'eliminar' operaciones de hook_nodeapi() para activar la creación de alias. Obviamente, esto sólo funciona si hay una regla coherente que permitirá decidir de código para que los nodos para crear un alias o no.

Una vez que tenga un alias de URL en su lugar por un camino determinado, que se utilizará en lugar de la original cada vez que un enlace a esa ruta se crea a través de la l () función. Así, por ejemplo, si crea una entrada que señala menú para 'contenido / 2/6', la URL utilizada sería automáticamente el alias que creó para esa ruta.


Editar: En caso de que termina la creación de alias programación - Si utiliza pathauto de todos modos, se puede / debe usar su pathauto_cleanstring()function (de 'pathauto.inc') para asegurar que sus URL generados se escaparon adecuadamente / reescrito para caracteres permitidos .

Otros consejos

Hay una manera de utilizar la función URL personalizada para crear URL personalizadas dedicados. Si está utilizando paneles, aunque no estoy seguro de si usted desea hacerlo de esta manera porque es muy estática.

function custom_url_rewrite($op, $result, $path) {

  if ($op == 'alias') {
    if (preg_match('|^[node_id#_here](/{0,1}.*)|', $path, $matches)) {
      return '[desired_alias]'. $matches[1];
    }
  }

  if ($op == 'source') {
    if (preg_match('|^[node_id#](/{0,1}.*)|', $path, $matches)) {
      return '[desired_source]'. $matches[1];
    }
  }

  return $result;

}

Usted querrá sustituir los ID del nudo # s con su propia, así como sus propios alias y fuentes deseados. Espero que esto ayude.

Tal vez aswell útil:

cambiar los enlaces que inician mediante el uso de un objeto de construir el vínculo mediante la sustitución de tokens como <a href="nodeview/[title]/nid" title="[title]">link tekst</a> y manejar el nodo en una vista con el camino de nodeview exa y argumentos null, null, nid f.i.

para los enlaces más complicadas nosotros un campo de visión php para crear la cadena ..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top