2011-12-24 18 views
34

Mục tiêu: Để gửi email có danh sách các URL được tạo từ các nút.Lấy URL của một nút trong Drupal 7

Trong mô-đun tùy chỉnh của tôi, tôi đã quản lý để lấy id nút mà người dùng muốn và bây giờ tôi muốn nhận URL của mỗi nút để đưa vào email của tôi.

Tôi đã tìm kiếm db và sử dụng google nhưng dường như tôi không thể tìm ra giải pháp phù hợp.

Có vẻ như chúng ta cần phải xây dựng một cái gì đó URL như sau:

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

Trả lời

80

Bạn có thể sử dụng url() chức năng:

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

Điều đó sẽ cung cấp cho bạn đường dẫn tuyệt đối (tức là với http://example.com/ trước của nó), với đường dẫn URL bí danh đến trang nút.

+0

Hãy chọn bạn là người giỏi nhất! –

13

Bạn cũng có thể thử drupal_lookup_path('alias',"node/".$node->nid).

+2

Có vấn đề gì với phương pháp này không? Điều này có vẻ hữu ích hơn và ít rõ ràng hơn câu trả lời được chấp thuận. – robomc

+0

Điều gì xảy ra nếu nút không có bí danh? Ngoài ra, điều này sẽ trả về một đường dẫn tương đối. – cambraca

+0

Sử dụng kết hợp với biến $ base_url toàn cầu. – scotself

-5

sử dụng

$ node_url;

nó sẽ cung cấp cho bạn các url nút hiện

+0

Bạn không nhận được câu hỏi! vui lòng đọc kỹ câu hỏi trước khi trả lời –

7

Ngoài ra bạn có thể nhận được nó bằng cách

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

Điều gì xảy ra nếu nút không có bí danh? Ngoài ra, điều này sẽ trả về một đường dẫn tương đối. – cambraca

+0

@cambraca vâng, nó sẽ trả lại đường dẫn thô giống như nút/3' – zhilevan

4

Bạn cũng có thể sử dụng chức năng l().

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