Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Как в php вывести онлайн и оффлайн теги.

Как в php вывести онлайн и оффлайн теги.


     23.03.2014    Общие вопросы по PHP    2166

вопрос
Всем привет, помогите пожалуйста. В dle стандартно стоит так:

$tpl->set( '{lastdate}', langdate( "j F Y H:i", $row['lastdate'] ) );
    if ( ($row['lastdate'] + 1200) > $_TIME ) {

        $tpl->set( '[online]', "" );
        $tpl->set( '[/online]', "" );
        $tpl->set_block( "'\\[offline\\](.*?)\\[/offline\\]'si", "" );

    } else {
        $tpl->set( '[offline]', "" );
        $tpl->set( '[/offline]', "" );
        $tpl->set_block( "'\\[online\\](.*?)\\[/online\\]'si", "" );
    }

И эти теги подаются в шаблон.

1) А как просто вывести в php, так как не использую вывод в шаблон?
2) Возможно ли через API это сделать?

Ответа пока нет


Комментарии пользователей (17)

dj-avtosh
39

1479 | 390

dj-avtosh - 23 марта 2014 18:57 - шашлычник

Вы про это?

if ( ($row['lastdate'] + 1200) > $_TIME ) {

skype: elhan.isaev

i_loves_ac_dc
7

235 | 41

i_loves_ac_dc - 23 марта 2014 19:04 - Гости

dj-avtosh, про теги [online] [/online] [offline] [offline]. Что их вывести в php файле и они работали. Показывали в онлайне или в офлайне человек. Я юзаю dle api, может через него можно сделать как то?

i_loves_ac_dc
7

235 | 41

i_loves_ac_dc - 23 марта 2014 19:33 - Гости

dj-avtosh, я ступил. спаибо за наводку

dj-avtosh
39

1479 | 390

dj-avtosh - 23 марта 2014 19:09 - шашлычник

Вы мой сарказм не поняли? Я ответ дал на вопрос.

skype: elhan.isaev

i_loves_ac_dc
7

235 | 41

i_loves_ac_dc - 23 марта 2014 19:25 - Гости

dj-avtosh, тогда можно поподробней

Gopr
10

494 | 164

Gopr - 23 марта 2014 19:46 - Юзер

Хотелось бы тоже поподробней :)

i_loves_ac_dc
7

235 | 41

i_loves_ac_dc - 23 марта 2014 20:29 - Гости

Вставляю такой код
    $sql_result = $db->query( "SELECT * FROM " . USERPREFIX . "_users WHERE name = '$user'" );
    while ( $row = $db->get_row( $sql_result ) ) {
    if ( ($row['lastdate'] + 1200) > $_TIME ) {
    $online = "background: url(\"/templates/{$config['skin']}/img/rbox_full2.png\") 0 -59px no-repeat;";
    } else {
      $offline = "background: url(\"/templates/{$config['skin']}/img/rbox_full2.png\") 0 -59px no-repeat;";;
    }
    }


Вывожу от так
$list_friends .= "<li id = \"{$user_info['user_id']}\"><a href = \"/user/{$name_user}\"><img src = \"{$photo}\" width = \"30\" height = \"30\" /></a><div>{$name_user}</div><div class=\"{$online}\" ></div></li>";

Но ничего, а как поставить оффлайн? Я что-то запутался. Помогите.

D0Gmatist
225

794 | 281

D0Gmatist - 23 марта 2014 20:44 - Местный

У вас ноги не болят? )))
Просто есть поговорка:
"Из за дурной головы, ногам работа."
для того что бы получить онлайн или нет юзер используется
1) переменная из БД = дата последнего визита юзера из БД (к примеру $lastDateTime)
2) переменная = интервал времени которое юзер будет считаться онлайн с момента последнего визита (к примеру 1200 = 20 минут и обзавём её $proOnlineDateTime)
3) переменная реального времени (к примеру $realDateTime)
4) вычесть из $realDateTime - $lastDateTime получаем $onlineDateTime
5) создать функцию с условием
if ($OnlineDateTime <= $proOnlineDateTime) { // тут мы проверяем // если время когда юзер последний раз движухал по сайту меньше времени которое считает юзера онлайн то он онлайн ..ТАВТОЛОГИЯ ))) 
да юзер онлайн
} else {
нет юзер офлайн
}

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

i_loves_ac_dc
7

235 | 41

i_loves_ac_dc - 23 марта 2014 21:05 - Гости

D0Gmatist, ла это мне то понятно, все же спасибо за код. Но меня интересует как вывести с php картинку есть юзер в онлайне или нет. С кодом что бы оно работало мне ясно, а вот сам вывод не понятен.

Мне вот тут нужно вывести его (php)
$list_friends .= "<li id = \"{$user_info['user_id']}\"><a href = \"/user/{$name_user}\"><img src = \"{$photo}\" width = \"30\" height = \"30\" /></a><div>{$name_user}</div>*ОТСЮДА*</li>";

D0Gmatist
225

794 | 281

D0Gmatist - 23 марта 2014 23:25 - Местный

скиньте весь php ... я не могу понять куда и что вливается не имея начала и конечности в данном условии

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

i_loves_ac_dc
7

235 | 41

i_loves_ac_dc - 24 марта 2014 13:45 - Гости

D0Gmatist, вот чистый код модуля. обозначил где нужно вывести.
!ТУТ ВЫВЕСТИ ОНЛАЙН ИЛИ НЕТ!


legallaz
4

51 | 11

legallaz - 24 марта 2014 03:36 - Гости

<li><span class="grey">Статус:</span> [online]<img src="{THEME}/images/online.png" style="vertical-align: middle;" title="Пользователь Онлайн" alt="Пользователь Онлайн" />[/online][offline]<img src="{THEME}/images/offline.png" style="vertical-align: middle;" title="Пользователь offline" alt="Пользователь offline" />[/offline]</li>


Может ты об этом?

i_loves_ac_dc
7

235 | 41

i_loves_ac_dc - 24 марта 2014 13:43 - Гости

legallaz, да я об этом, оно мне нужно в php.

D0Gmatist
225

794 | 281

D0Gmatist - 24 марта 2014 15:42 - Местный

поясню
1) из БД получать дополнительно lastdate
2) после этого
        else {
            $name_user = $row['user_from']; // Имя собеседника
            $name_users[$name_user] = '';
        }

дописать
        // $row['lastdate'] переменная из БД
        $lastDateTime = $row['lastdate']; // Время последней движухи по сайту
        $proOnlineDateTime = 1200; // интервал времени которое юзер будет считаться онлайн (1200 == 20 минут)
        $realDateTime = time (); // реальное время
        
        $onlineDateTime = $realDateTime - $lastDateTime;
        
        if ($onlineDateTime <= $proOnlineDateTime) {
            $hrenovina = "Я ОНЛАЙН";
        } else {
            $hrenovina = "Я ХРЕН ОНЛАЙН";
        }

3) Ну и переменную $hrenovina вдюбашить
        $list_friends .= "<li id = \"{$user_info['user_id']}\"><a href = \"/user/{$name_user}\"><img src = \"{$photo}\" width = \"30\" height = \"30\" /></a><div>{$name_user}</div><div class=\"{$online}\" ></div>{$hrenovina}</li>";



Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

i_loves_ac_dc
7

235 | 41

i_loves_ac_dc - 24 марта 2014 19:08 - Гости

D0Gmatist, Спасибо)) Помогло. Вопрос решен.

legallaz
4

51 | 11

legallaz - 24 марта 2014 16:00 - Гости

Сам фаил "userinfo.tpl"
https://www.dropbox.com/s/hn2rzkzkuv28o5m/userinfo.tpl

И в style.css в самый низ:

.nowrap {white-space:nowrap;}
.fV {font-family:Verdana, Geneva, sans-serif;}
.f10 {font-size:10px;}

.dwntorrenttxt {
font-size: large;
color: #06F;
text-decoration: underline;
}
.dwntorrent_up {
color: #3C0;
}
.dwntorrent_down {
color: #F00;
}
.dwntorrent_total {
color: #06C;
}
.dwntorrent_tblc
{
/*
Цвет таблицы #d9d9d9
*/
background-color: #d9d9d9;
/*
Цвет границ #898989
*/
border: 1px solid #898989;
}
.dwntorrent_tblx
{
border: 1px solid #dad8d8;
}

.tbprofile{color:#151b20;font-size:12px;font-family:arial;}
.tbprofile a:link, .tbprofile a:visited, .tbprofile a:hover, .tbprofile a:active{color:#4183a9;text-decoration:none;}
.tbprofile a:hover{color:#4183a9;text-decoration:underline;}
.tbprofile table{border:0px;background:#eee;}
.tbprofile table{color:#252c34;}
.tbprofile table a:link, .tbprofile table a:visited, .tbprofile table a:hover, .tbprofile table a:active{color:#4183a9;text-decoration:none;}
.tbprofile table a:hover{color:#1a92d7;text-decoration:underline;}
.tbprofile table td{padding:4px 0 4px 6px;border:2px solid #dedede;}


Попробуй это, и отпишись потом

i_loves_ac_dc
7

235 | 41

i_loves_ac_dc - 24 марта 2014 19:08 - Гости

legallaz,

Вы хоть читайте что людям НАДО! Мне в PHP файл вывести нужно для своего модуля, а они мне кидают для страницы пользователя тпл файл


Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы