2009-07-31 3 views
1

Это должно быть легко, но я не могу найти документацию для него в Интернете.Динамические ссылки в Drupal

Я пытаюсь использовать функцию l() в Drupal для создания динамической ссылки. Что такое синтаксис?

На данный момент у меня есть:

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

, который указывает на:

path/%2Fcategory 

ответ

3

первую очередь, если вы работаете в функции, вы должны будете получить доступ к глобальному объекту пользователя.

Во-вторых, если пользователь является анонимным/не вошли в систему, то $ user-> UID может не быть установлен или равен 0.

наконец, чтобы избежать ошибок, он является общим для конкатенации переменных вместе со строками


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

Это был (глобальный доступ к объекту пользователя). Огромное спасибо. – lazysoundsystem

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

3

l() корректирует свой URL в 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'); 
} 
+0

Да, это была проблема, и это хороший совет. Благодарю. – lazysoundsystem

Смежные вопросы