这一定很容易,但我无法在线找到它的文档。Drupal中的动态链接
我想在Drupal中使用l()函数来创建动态链接。语法是什么?
目前我有:
l('Destination',"path/$user->uid/category")
指向:
path/%2Fcategory
这一定很容易,但我无法在线找到它的文档。Drupal中的动态链接
我想在Drupal中使用l()函数来创建动态链接。语法是什么?
目前我有:
l('Destination',"path/$user->uid/category")
指向:
path/%2Fcategory
首先,如果你是一个函数内的工作,你需要获得进入全球用户对象。
其次,如果用户是匿名/没有登录,则$用户> UID可能没有设置或者是0
最后以避免错误,是很常见的用绳子
一起串联变量
global $user;
if ($user->uid)
{
l('Destination', 'path/'.$user->uid.'/category')
}
尝试串联字符串代替。
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)
感谢您的建议,我已经尝试过,但它给出了相同的结果。看来l()函数都拒绝处理变量并转义第二个斜线。 – lazysoundsystem 2009-07-31 00:20:39
l()
被修正您的网址path/%2Fcategory
因为它试图使从字符串path//category
一个可行的链接。
您的字符串为path//category
,因为$user->uid
没有任何价值。它没有任何价值,因为您没有从global $user
或user_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');
}
是的,这是问题所在,也是很好的建议。谢谢。 – lazysoundsystem 2009-07-31 08:55:41
为L()函数的文档位于: http://api.drupal.org/api/function/l/6
其他的东西一直说别人:)
就是这样(全局访问用户对象)。非常感谢。 – lazysoundsystem 2009-07-31 00:34:25