Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Copyright © 2006-2008 CraKteR, crakter [at] gmail [dot] com
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @version $Id: onlinetoday.php 29 2008-08-14 19:00:36Z CraKteR $
- * @copyright $LastChangedDate: 2008-08-14 21:00:36 +0200 (to, 14 aug 2008) $
- * @author CraKteR <crakter@gmail.com>
- */
- if(!defined("IN_MYBB"))
- {
- die("This file cannot be accessed directly.");
- }
- $plugins->add_hook('index_start', 'add_onlinetoday', 1000000);
- function onlinetoday_info()
- {
- return array(
- "name" => "Show the users that has been online today",
- "description" => "Shows the users that has been online within 24 hours.",
- "website" => "",
- "author" => "CraKteR",
- "authorsite" => "mailto:crakter@gmail.com",
- "version" => "2.0",
- "guid" => "c2f1dd8db9b4f3898cb58f5ed02f9b53",
- "compatibility" => "18*",
- );
- }
- function onlinetoday_activate()
- {
- global $db;
- $template = array(
- "tid" => NULL,
- "title" => "online_today_index",
- "template" => "<tr>
- <td class=\"tcat\"><strong><span class=\"smalltext\">{\$lang->whos_online_today}</span></strong> [<a href=\"online.php?action=today\">{\$lang->complete_list}</a>]</td>
- </tr>
- <tr>
- <td class=\"trow1\"><span class=\"smalltext\">{\$lang->online_note_today}<br />{\$onlinemembers}</span></td>
- </tr>",
- "sid" => "-1"
- );
- $db->insert_query("templates", $template);
- require MYBB_ROOT."/inc/adminfunctions_templates.php";
- find_replace_templatesets('index_boardstats', '#{\$whosonline}#', "{\$whosonline}\n{\$online_today}");
- }
- function onlinetoday_deactivate()
- {
- global $db;
- $db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='online_today_index'");
- require MYBB_ROOT."/inc/adminfunctions_templates.php";
- find_replace_templatesets('index_boardstats', '#(\n?){\$online_today}#', '', 0);
- }
- function add_onlinetoday()
- {
- global $db, $mybb, $templates, $online_today, $lang, $theme;
- $online_today = '';
- if($mybb->settings['showwol'] != 0 && $mybb->usergroup['canviewonline'] != 0)
- {
- $lang->load("onlinetoday");
- $lang->load("index");
- $timesearch = time() - 24*60*60;
- $queries = array();
- $queries[] = $db->simple_select(
- "users u LEFT JOIN ".TABLE_PREFIX."sessions s ON (u.uid=s.uid)",
- "s.sid, s.ip, s.time, s.location, u.uid, u.username, u.invisible, u.usergroup, u.displaygroup",
- "u.lastactive > $timesearch ORDER BY u.username ASC, s.time DESC"
- );
- $queries[] = $db->simple_select(
- "sessions s LEFT JOIN ".TABLE_PREFIX."users u ON (s.uid=u.uid)",
- "s.sid, s.ip, s.uid, s.time, s.location, u.username, u.invisible, u.usergroup, u.displaygroup",
- "s.time>'$timesearch' ORDER BY u.username ASC, s.time DESC"
- );
- $comma = $onlinemembers = '';
- $membercount = $guestcount = $anoncount = 0;
- $doneusers = $ips = array();
- foreach($queries as $query)
- {
- while($user = $db->fetch_array($query))
- {
- if(isset($user['sid']))
- {
- $botkey = strtolower(str_replace("bot=", '', $user['sid']));
- }
- if($user['uid'] > 0)
- {
- if($doneusers[$user['uid']] < $user['time'] || !$doneusers[$user['uid']])
- {
- if($user['invisible'] == 1)
- {
- ++$anoncount;
- }
- ++$membercount;
- if($user['invisible'] != 1 || $mybb->usergroup['canviewwolinvis'] == 1 || $user['uid'] == $mybb->user['uid'])
- {
- $invisiblemark = ($user['invisible'] == 1) ? "*" : "";
- $user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
- $user['profilelink'] = build_profile_link($user['username'], $user['uid']);
- eval("\$onlinemembers .= \"".$templates->get("index_whosonline_memberbit", 1, 0)."\";");
- $comma = ", ";
- }
- if(isset($user['time']))
- {
- $doneusers[$user['uid']] = $user['time'];
- }
- else
- {
- $doneusers[$user['uid']] = $user['lastactive'];
- }
- }
- }
- else if(strstr($user['sid'], "bot=") !== false && $session->bots[$botkey] && !in_array($user['ip'], $ips))
- {
- $onlinemembers .= $comma.format_name($session->bots[$botkey], $session->botgroup);
- $comma = ", ";
- ++$botcount;
- }
- else
- {
- ++$guestcount;
- $guests[] = $user['ip'];
- }
- }
- }
- $onlinecount = $membercount + $guestcount;
- $onlinebit = ($onlinecount != 1) ? $lang->online_online_plural : $lang->online_online_singular;
- $memberbit = ($membercount != 1) ? $lang->online_member_plural : $lang->online_member_singular;
- $anonbit = ($anoncount != 1) ? $lang->online_anon_plural : $lang->online_anon_singular;
- $guestbit = ($guestcount != 1) ? $lang->online_guest_plural : $lang->online_guest_singular;
- $lang->online_note_today = $lang->sprintf($lang->online_note_today, my_number_format($onlinecount), $onlinebit, 24, my_number_format($membercount), $memberbit, my_number_format($anoncount), $anonbit, my_number_format($guestcount), $guestbit);
- eval("\$online_today = \"".$templates->get("online_today_index")."\";");
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement