Функция для определения параметров залогиненного юзера

Главные вкладки

Аватар пользователя Ромка Ромка 18 ноября 2006 в 18:30

Есть ли в Друпал АПИ функция, которая возвращает массив с параметрами залогиненного пользователя? Нужны его логин и дата последнего входа в систему.

Нашел функцию [url=http://api.drupal.org/api/4.7/function/user_fields]user_fields[/url], вроде по смыслу это то что мне надо, но чего-то я не допер как ею пользоваться. Пытался использовать ее так:

<?php$user_params = user_fields();       
print "name='" . $user_params[5] . "'";
?>

и вот так:

<?php$user_params = user_fields();       
print "name='" . $user_params['name'] . "'";
?>

Но ни тот, ни другой вариант не возвращают необходимые значения. В первом случае возвращается имя элемента массива (в приведенном примере это "sort"), во втором случае возвращается пустая строка.

Комментарии

Аватар пользователя rgb rgb 18 ноября 2006 в 20:47

Параметры "залогиненного" (текущего) пользователя доступны через "глобальный" объект $user:

 global $user;

Насчёт даты последнего входа не уверен, но там есть ID юзера ($user->uid), через который можно поднять всю информацию о пользователе.

user_fields - это не то, что нужно, т.к. она возвращает только список полей, которые используются для чтения/записи данных о пользователе (или что-то в этом роде).

Аватар пользователя Konstantin_M Konstantin_M 19 августа 2009 в 15:32

Подскажите, а если я хочу определить активного юзера внутри контента страницы, там этих переменных нет.
Цели у меня простые, и я просто инклудом помещаю свой php скрипт непосредственно в контент -> page. И делаю всё что мне нужно, но мне понадобился id текущего (активного в данный момен) пользователя из таблицы users. И вообще как я могу юзать константы и глобальные переменные внутри контента, как системные, такие как из таблицы users, так и переменные шаблона page.tpl.php (там где можно использовать PHP в качестве контента).

P.S. Спасибо. Если есть инфа, которую я проглядел по данному вопросу, можно дать сцылу :).

Аватар пользователя Dan Dan 19 августа 2009 в 19:14

global $user;

Это работает для любого контекста, т.к. это глобальная переменная, то есть к ней можно обратиться и так: $id = $GLOBALS['user']->uid;

Приведите пример кода который не работает.