Ok więc tak w szablonie daję kod:
{include file='engine/modules/online.php'}
Kod z tego pliku:
<?php
/*
####################################################
@copyright (c) 2015-2017 Dj_AlexN Graphic
@name Moduł Online by Dj_AlexN Graphic
@version 6.2
@link <a href="http://dj-alexn.xaa.pl" target="_blank">http://dj-alexn.xaa.pl</a>
####################################################
*/
{
}
/*
====================================
Podłączenie klasy
====================================
*/
require_once ROOT_DIR.'/engine/classes/online.class.php';
/*
====================================
Usuwanie starych zapisywań
====================================
*/
$time = $_TIME - $online_config['time_out'] * 60;
if($rand%2 == 0)
{
$db->query("DELETE FROM `".PREFIX."_online` WHERE `time` < '$time'");
}
/*
====================================
Określenie miejsca pobytu
====================================
*/
$location = $online_api->getUserLocation();
/*
====================================
Określenie IP, Proxy, User agent
====================================
*/
$_IP = $db->safesql($_SERVER['REMOTE_ADDR']);
$_UA = $db->safesql($_SERVER['HTTP_USER_AGENT']);
$_PROXY = $db->safesql(getenv('HTTP_X_FORWARDED_FOR'));
/*
==============================================
Jeśli użytkownik wszedł - czyści ciasteczka
==============================================
*/
if( isset( $_POST['login'] ) and
$_POST['login'] == "submit" ) {
if( PHP_VERSION < 5.2 )
{
setcookie( "module_online", "", 0, "/", DOMAIN
. "; HttpOnly" );
} else {
setcookie( "module_online", "", 0, "/", DOMAIN
, NULL, TRUE ); }
$key = md5("guest".$_IP); $db->query("DELETE FROM `".PREFIX."_online` WHERE `key`='{$key}'");
}
/*
=================================================
Ciasteczka nope? Dryfuje na liście użytkowników
=================================================
*/
if(!isset($_COOKIE['module_online'])) {
/*
====================================
Jeśli jesteś zalogowany
====================================
*/
if($is_logged)
{
/*
====================================
Określić system operacyjny
====================================
*/
$OS = $online_api->getUserOS($_UA);
/*
====================================
Ustalamy przeglądarkę
====================================
*/
$user_agent = $online_api->getUserBrowser($_UA);
/*
====================================
Tworzenie klucza, dodać do listy
====================================
*/
$key = md5($member_id['user_id'].$_IP);
$db->query("INSERT INTO `".PREFIX."_online` (`key`, `uid`, `uname`, `time`, `ip`, `user_agent`, `os`, `location`, `proxy`, `foto`, `user_group`) VALUES ('{$key}', '{$member_id['user_id']}', '{$member_id['name']}', '$_TIME', '{$_IP}', '{$user_agent}', '$OS', '$location', '$_PROXY', '{$member_id['foto']}', '{$member_id['user_group']}') ON DUPLICATE KEY UPDATE `key`=VALUES(`key`), `uid`=VALUES(`uid`), `uname`=VALUES(`uname`), `user_agent`=VALUES(`user_agent`), `foto`=VALUES(`foto`), `OS`='$OS', `proxy`='$_PROXY', `time`='$_TIME', `location`='$location', `user_group`=VALUES(`user_group`)");
} else {
/*
====================================
Jeśli nie jest zalogowany
====================================
*/
/*
====================================
Ustal robota
====================================
*/
$robot = $online_api->check_robot($_UA);
/*
=========================================================
Umieszcza się w bazie danych robota lub odwiedzających
=========================================================
*/
if($robot != '')
{
$db->query("INSERT INTO `".PREFIX."_online` (`key`, `uid`, `uname`, `time`, `ip`, `user_agent`, `os`, `location`, `proxy`, `foto`, `user_group`)
VALUES ('{$key}', '0', 'robot', '$_TIME', '{$_IP}', '{$user_agent}', '$OS', '{$location}', '{$_PROXY}', 'unknown', '{$member_id['user_group']}')
ON DUPLICATE KEY UPDATE `key`=VALUES(`key`), `user_agent`=VALUES(`user_agent`), `OS`='$OS', `location`='$location' `time`=VALUES(`time`)");
} else {
$key = md5("guest".$_IP); $db->query("INSERT INTO `".PREFIX."_online` (`key`, `uid`, `uname`, `time`, `ip`, `location`) VALUES ('{$key}', '0', 'guest', '$_TIME', '{$_IP}', '{$location}') ON DUPLICATE KEY UPDATE `uid`='0', `uname`='guest', `user_agent`='unknown', `foto`='unknown', `OS`='unknown', `proxy`='unknown', `time`='$_TIME', `location`='unknown', `user_group`='unknown'");
}
}
/*
==========================================
Tworzenie plików cookie na czas wyjścia
==========================================
*/
$expires = time() + ($online_config['time_out'] * 60
);
if( PHP_VERSION < 5.2 )
{
setcookie( "module_online", "1", $expires, "/", DOMAIN
. "; HttpOnly" );
} else {
setcookie( "module_online", "1", $expires, "/", DOMAIN
, NULL, TRUE ); }
}
/*
===============================================
Jeśli AKTYWNY - aktualizowanie lokalizacji
===============================================
*/
if($online_config['show_location'] == "yes" OR $online_config['show_last_visit'] == "yes")
{
if($is_logged)
{
$key = md5($member_id['user_id'].$_IP); $db->query("UPDATE `".PREFIX."_online` SET `time`='$_TIME', `location`='{$location}' WHERE `key`='{$key}'");
} else {
$robot = $online_api->check_robot($_UA);
if($robot != null)
{
$db->query("UPDATE `".PREFIX."_online` SET `time`='$_TIME', `location`='{$location}' WHERE `key`='{$key}'");
}
}
}
$OnlineList = $online_api->getOnlineList();
$all = $OnlineList['all'];
$users_count = $OnlineList['users_count'];
$users = $OnlineList['users'];
$guests = $OnlineList['guests'];
$robots_count = $OnlineList['robots_count'];
$robots = $OnlineList['robots'];
/*
==========================================
wuświetlanie 20-stu ostatnich aktywnych
==========================================
*/
if($online_config['show_twenty_users'] == "yes")
{
$sql = $db->query("SELECT lastdate, user_id, name, logged_ip, foto, user_group FROM ".USERPREFIX."_users ORDER BY lastdate DESC LIMIT 20");
$twenty_users_count = 0;
$twenty_users = null;
while($row = $db->get_row($sql))
{
$online_api->start($row['user_id'], $row['name'], $row['logged_ip'], $row['lastdate'], null, $row['user_group'], null, null, null, $row['foto']);
$twenty_users .= $online_api->getUserInfo();
$twenty_users_count++;
$online_api->clear();
}
}
/*
====================================
Usuń ostatni przecinek
====================================
*/
if($users_count == 0
) { $users = "0"; } else { $users = substr($users, 0
, -2
); } if($robots_count == 0
) { $robots = "0"; } else { $robots = substr($robots, 0
, -2
); } if($twenty_users_count == 0
) { $twenty_users = "0"; } else { $twenty_users = substr($twenty_users, 0
, -2
); }
/*
====================================
Otwórz szablon, wprowadź kody
====================================
*/
$tpl->load_template('online/list.tpl');
$tpl->set('{guests}', $guests);
$tpl->set('{users}', $users);
$tpl->set('{robots}', $robots);
$tpl->set('{twenty_users}', $twenty_users);
$tpl->set('{users_count}', $users_count);
$tpl->set('{robots_count}', $robots_count);
$tpl->set('{twenty_users_count}', $twenty_users_count);
$tpl->set('{all}', $all);
$tpl->compile('online');
$tpl->clear();
echo $tpl->result['online']; ?>
Dalej połączony z tym plik jest online.class.php:
http://wklejto.pl/322587Niestety ten 1 plik musiałem dać na wklejkę bo za dużo znaków było w poście
Dodam że w tym 1 pliku może być również związany błąd o którym była mowa wcześniej