2011-12-24 117 views
34

目標:發送一個包含從節點生成的URL列表的電子郵件。獲取Drupal 7中節點的URL

在我的自定義模塊中,我設法獲取用戶需要的節點ID,現在我想要將每個節點的URL放入我的電子郵件中。

我搜索了數據庫,並使用谷歌,但我似乎無法找到正確的解決方案。

看來我們需要構造URL是這樣的:在前面

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

這會給你的絕對路徑(即http://example.com/

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

回答

80

可以使用url()功能),以URL別名路徑到節點頁面。

+0

Clive你是最棒的! – 2011-12-25 06:38:02

13

您也可以嘗試drupal_lookup_path('alias',"node/".$node->nid)

+2

這種方法有問題嗎?這似乎比批准的答案更有用,也不太明顯。 – robomc 2012-09-04 00:22:24

+0

如果節點沒有別名會怎麼樣?此外,這將返回一個相對路徑。 – cambraca 2014-10-10 14:29:36

+0

與$ base_url全局變量一起使用。 – scotself 2015-07-27 15:58:46

-5

使用

$ node_url;

它會給你當前節點的URL

+0

你沒有得到這個問題!請在回答之前仔細閱讀該問題 – 2013-12-13 08:20:42

7

您也可以通過

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

如果節點沒有別名,該怎麼辦?此外,這將返回一個相對路徑。 – cambraca 2014-10-10 14:30:04

+0

@cambraca是的,它是返回原始路徑像'node/3' – zhilevan 2015-05-17 05:32:24

4

得到它,你也可以使用l()功能。

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