Часто бывает нужно получить из PHP-вставки доступ к User Id, к его имени пользователя и E-mail.
Следующий кусок PHP-кода показывает, как это можно сделать:
global $user;
$user_id = $user->uid;
if (!isset($user_id)) {
$user_id = -1;
} // if
$user_name = $user->name;
if ((0 >= $user_id) || !isset($user_name)) {
$user_name = '';
} // if
$user_email = $user->mail;
if ( (0 >= $user_id) || (!isset($user_email)) ) {
$user_email = '';
} // if
?>
У Гостя $user_id будет равен нулю, у суперадминистратора - единице, у остальных зарегистрированных пользователей $user_id будет больше 1.
Если вдруг $user_id оказался равным -1, то проверьте, чтобы переменная $user была объявлена глобальной.
Макс Кириленко
Razgonka.ru - Подбор названий сайтов и программ
Комментарии
пасиба, полезно. У меня не портал, поэтому мне не нужно коментарии, что добавлять, изменять... тока зарегенный пользователь мог делать(админ и модератор). Мне лично пригодилось тока это:
if ($user_id >=1 ) {
echo("вот это видно только модератору");
}
а что ещё интереснного есть из глобальных переменных, которые часто приходится использовать профессионалам(и не только), просто я читаю горы доков, с английским у меня напряг(тока на субьективный перевод хватает), хоть немного облегчить начальные копания в коде... буду благодарен за ответ
rariteth пишет: "а что ещё интересного есть из глобальных переменных, которые часто приходится использовать профессионалам (и не только),"
Кроме:
$user->uid
$user->mail
$user->name
есть еще переменные:
$user->$setting
$user->{$field->name}
$user->block[$block->module][$block->delta]
$user->created
$user->language
$user->picture
$user->realname
$user->roles = array()
$user->timezone
$user->access
$user->login
...
Примеры использования можно найти в папке modules, если задать поиск нужной переменной (например, $user->timezone) среди файлов с маской *.module
Нужно иметь ввиду, что некоторые из этих переменных массивы, например $user->roles.
И еще раз напомню, не забывайте перед обращением к переменной указывать "global $user;".
Макс КириленкоRazgonka.ru - Подбор названий сайтов и программ
Дневник
global $user; print_r($user)
- распечатает полный список свойств объекта $user--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!
Всё замечательно! А есть возможность вывести информацию по другим зарегистрированным пользователям? Я хочу написать блок, где выводится информация по зарегистрированным пользователям, включая из модуля расширенных профилей. Это реально?
Есть ф-я user_load($array) - возвращает объект со всеми данными пользователя по id или почтовому адресу.
А вообще всю инфу можно получить из базы с помощью php...
У меня не идет обновление антивируса- ранды.Мне пишут что у меня ошибка в имени и пароли.А пароль и имя я не знаю .Что мне делать?Помогите!
это возврат данных залогиненого юзера
а как получить данные автора ноды?
это возврат данных залогиненого юзера
а как получить данные автора ноды?
Напимер так
<?php$u=user_load($node->uid);?>
спасибо
помогло
спасибо, пригодилось
я что то не так сделал?
создал блок
в содержание написал ваш php-код
формат текста - PHP Code
Результат - пусто и блока не видно (видимость всем пользователям стоит)
Мне нужно чтоб в блоке выводилось только емайл пользователя