Определить пользователь на сайте или нет

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

Аватар пользователя witch witch 14 октября 2010 в 15:32

Всем здрасти!
Проблема. На сайт могут заходить зарегистрированные пользователи. Нужно на странице профайла мне выводить на сайте ли тот или иной пользователь или нет. Как определить на сайте ли пользователь?
Заранее спасибо!

Комментарии

Аватар пользователя Krotty@drupal.org Krotty@drupal.org 14 октября 2010 в 15:52

Cессии трогать не нужно.

Встройте этот код в ваш user-profile.tpl.php

<?php
$time_period = variable_get('user_block_seconds_online', 2700);
$uid = $account->uid; // get the current userid that is being viewed.
if ($account->access > time() - $time_period) {
echo 'Online';
}
else {
echo 'Offline';
}
?>

Аватар пользователя witch witch 14 октября 2010 в 16:59

Спасибо большое за советы, но наверное мне нужно было уточнить, что страница профайла у меня создается посредством модуля Content profile, и поэтому страницы user-profile.tpl.php у меня просто нет, страница у меня формируется в node-profile.tpl.php
И поэтому код для страницы профайла не сработает.. если я не права то поправьте плизз.. и вопрос остается открытым что же делать?
А если использовать таблицу Sessions, то не могли бы описать что там за поля, у меня там просто 1 запись по которой я не могу сделать корректные выводы..

Аватар пользователя witch witch 14 октября 2010 в 18:27

У меня не сработало.. Вывожу print $account->uid; и в итоге пустота.. т е ничего не выводит, отсюда я сделала выводы что на странице node-profile это не пройдет..

Аватар пользователя 6opoda 6opoda 14 октября 2010 в 19:27

А куда вставить этот код, если нету файлов user-profile.tpl.php и node-profile.tpl.php.
Создавал эти файлы, не помогло. Как найти переменные, которые выводят инфу о пользователе?
Использую тему waffles.

Аватар пользователя witch witch 14 октября 2010 в 20:23

6opoda wrote:
А куда вставить этот код, если нету файлов user-profile.tpl.php и node-profile.tpl.php.
Создавал эти файлы, не помогло. Как найти переменные, которые выводят инфу о пользователе?
Использую тему waffles.

Чтобы создать тип профайл (как в моем случае), нужно установить модуль Content profile. Тогда когда тип материала будет существовать нужно будет создать материал с типом Профиль и создать файл node-profile.tpl.php и там уже писать все что нужно.. Все доступные данные можно узнать написав там строку :
<?print var_dump($node);?>

Аватар пользователя GDI@drupal.org GDI@drupal.org 14 октября 2010 в 20:10

А почему не используете стандартный блок "Кто он-лайн?", просто в настройках видимости блока укажите страницу где его нужно показать.

Аватар пользователя witch witch 14 октября 2010 в 20:19

<a href="mailto:GDI@drupal.org">GDI@drupal.org</a> wrote:
А почему не используете стандартный блок "Кто он-лайн?", просто в настройках видимости блока укажите страницу где его нужно показать.

Потому что мне нужно чтоб была типа надпись Онлайн рядом с именем пользователя, а не общее кол-во пользователей на сайте.. поэтому этот вариант не подходит

Аватар пользователя AI AI 14 октября 2010 в 21:06

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
Крутите вниз

И все-таки Вернулись к первому оратору, предложившему лезть в БД...
"witch" wrote:
Content profile

Ф топку этот модуль. Все делается без него. На все 100%. Его прелесть только в одном: если туп или ленив - используй модуль. Он собако тяжелый и делает лишь рутину по настройке нужностей. Коряво делает. Допиливать надо.

Аватар пользователя witch witch 14 октября 2010 в 21:19

Возможно этот модуль чем то Вас не устраивает, но это не дает Вам право называть всех людей использующих его тупыми и ленивыми.. давайте не будем переходить за рамки приличия.. Мне нужно было его использовать в силу того что нужно было кучу полей, среди них и связи.. как сделать по другому не придумала..

Аватар пользователя witch witch 15 октября 2010 в 11:52

<a href="mailto:Krotty@drupal.org">Krotty@drupal.org</a> wrote:

Не проблема, добавьте одну строчку
<?php
$account = user_load(array("uid" => $node->uid));
?>

Спасибо Вам огромное!

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 15 октября 2010 в 1:43

"<a href="mailto:Krotty@drupal.org">Krotty@drupal.org</a>" wrote:
<?php
$account = user_load(array("uid" => $node->uid));
?>

Если она выводит в шаблоне ноды, то не думаю, что user_load лучший способ - всё же подумаем о производительности

Гораздо проще: ;

<?php
global $user;
print 
$user->uid;
?>
Аватар пользователя Krotty@drupal.org Krotty@drupal.org 15 октября 2010 в 9:10

Это конечно куда проще, но только вот $user содержит информацию о текущем пользователе, т.е. о том кто просматривает страницу, а не о авторе ноды.

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 15 октября 2010 в 13:49

"<a href="mailto:Krotty@drupal.org">Krotty@drupal.org</a>" wrote:
Это конечно куда проще, но только вот $user содержит информацию о текущем пользователе,

Ага, верно, я облажался