2009-07-31 99 views
1

這一定很容易,但我無法在線找到它的文檔。Drupal中的動態鏈接

我想在Drupal中使用l()函數來創建動態鏈接。語法是什麼?

目前我有:

l('Destination',"path/$user->uid/category") 

指向:

path/%2Fcategory 

回答

3

首先,如果你是一個函數內的工作,你需要獲得進入全球用戶對象。

其次,如果用戶是匿名/沒有登錄,則$用戶> UID可能沒有設置或者是0

最後以避免錯誤,是很常見的用繩子

一起串聯變量

global $user; 
if ($user->uid) 
{ 
    l('Destination', 'path/'.$user->uid.'/category') 
} 
+0

就是這樣(全局訪問用戶對象)。非常感謝。 – lazysoundsystem 2009-07-31 00:34:25

0

嘗試串聯字符串代替。
l('Destination',"path/".$user->uid."/category")

爲文檔,那就是:http://api.drupal.org/api/function/l/4.7

l($text, 
    $path, 
    $attributes = array(), 
    $query = NULL, 
    $fragment = NULL, 
    $absolute = FALSE, 
    $html = FALSE)
+0

感謝您的建議,我已經嘗試過,但它給出了相同的結果。看來l()函數都拒絕處理變量並轉義第二個斜線。 – lazysoundsystem 2009-07-31 00:20:39

3

l()被修正您的網址path/%2Fcategory因爲它試圖使從字符串path//category一個可行的鏈接。

您的字符串爲path//category,因爲$user->uid沒有任何價值。它沒有任何價值,因爲您沒有從global $useruser_load()中拉出用戶對象,或者您的用戶是匿名用戶。

我建議把檢查$用戶的價值呼喚l()之前,例如:

global $user; // or $user = user_load($foo); 
if ($user) { 
l('Destination', 'path/'.$user->uid.'/category'); 
} else { 
l('Destination', 'path/you-are-not-logged-in'); 
} 
+0

是的,這是問題所在,也是很好的建議。謝謝。 – lazysoundsystem 2009-07-31 08:55:41