2011-12-24 23 views
34

Objetivo: enviar un correo electrónico con una lista de URL generadas a partir de nodos.Obtener la URL de un nodo en Drupal 7

En mi módulo personalizado, he logrado obtener el id. De nodo que el usuario desea y ahora quiero obtener la URL de cada nodo para poner en mi correo electrónico.

Busqué el archivo db y usé Google pero parece que no puedo encontrar la solución adecuada.

Parece que necesitamos para construir la URL algo como esto:

<?php 
global $base_url; 
$link=$base_url."// few more parameters 

Respuesta

80

Usted puede utilizar la función de url():

$options = array('absolute' => TRUE); 
$nid = 1; // Node ID 
$url = url('node/' . $nid, $options); 

le dará la ruta absoluta (es decir, con http://example.com/ delante de ella), con la ruta URL alias a la página del nodo.

+0

Clive eres el mejor! –

13

También puedes probar drupal_lookup_path('alias',"node/".$node->nid).

+2

¿Hay algún problema con este método? Esto parece más útil y menos obvio que la respuesta aprobada. – robomc

+0

¿Qué sucede si el nodo no tiene alias? también, esto devolverá una ruta relativa. – cambraca

+0

Úselo junto con la variable global $ base_url. – scotself

-5

uso

$ node_url;

se le dará la corriente url nodo

+0

¡No estás recibiendo la pregunta! Lea detenidamente la pregunta antes de responder –

7

también lo puede conseguir por

$path=drupal_get_path_alias('node/'.$nid); 
+0

¿Qué sucede si el nodo no tiene alias? también, esto devolverá una ruta relativa. – cambraca

+0

@cambraca sí es return raw path algo así como 'node/3' – zhilevan

4

También puede utilizar la función l().

l(t('Link text'), 'node/123', array('options' => array('absolute' => TRUE))); 
Cuestiones relacionadas