InfoBox Posted:
Sun Feb 15, 2009 10:24 am |
|
|
|
|
|
Hey guys,
I use the InfoBox block, and I have noticed when I'm logged out, it does not appear in my left blocks, and everything below doesn't appear either (which means the current module doesn't appear, and the right blocks if they're on in that module don't appear).
Here is the code of my InfoBox:
| Code:
|
<?php
// how many newest members to show
$recent_member_count = 10;
// show online guests IP in online list
$show_guest_list = true;
// how long before inactive uses are dropped from online list
$max_session_mins = 60;
// maximum number of guests to display
$max_display_guests = 100;
// maximum number of members to display
$max_display_members = 100;
// notify users of private message by using a javascript drop box
$pm_notify_dropin = true;
// if set to true, users will only be notified of private messages once per visit
$pm_dropin_once = false;
// set the colors for the dropin box
$dropin_bgcolor = '#879095';
$dropin_bordercolor = '#000000';
//RavenNuke
$ravennuke = 0; //Set to 0 for Standard Nuke
if ( !defined('BLOCK_FILE') ) {
Header("Location: ../index.php");
die();
}
global $db, $prefix, $user_prefix, $user, $sitekey, $gfx_chk, $admin;
$content = '
<!-- Start Info -->
<table width="100%" cellspacing="2" cellpadding="1" align="left">
';
// get user info/show login
if (!is_user($user))
{
$content .= '
<tr align="left">
<td style="border-bottom: 1px dotted #CCCCCC; padding-bottom: 4px; padding-top: 4px;">
<a href="modules.php?name=Your_Account" style="text-decoration: none" title="Login or Register"><img border="0" src="images/info/user.png" alt="" /> <span style="font-size: 14px;"><strong>Anonymous</strong></span></a><br />';
$content .= '<div style="" title="Your Ip Address">';
$content .= '<img border="0" src="images/info/your_ip.png" alt=""> <strong>'. $_SERVER['REMOTE_ADDR'] .'</strong><br /></div>
<form action="modules.php?name=Your_Account" method="post">
'. _NICKNAME .':<br />
<input type="text" name="username" value="" size="15" maxlength="25" /><br />
'. _PASSWORD .':<br />
<input type="password" name="user_password" size="15" maxlength="20" /><br />
';
//Uncomment if raven nuke
if($ravennuke = 1){
/*****[BEGIN]******************************************
[ Base: GFX Code v1.0.0 ]
******************************************************/
$content .= security_code(array(2,4,5,7), 'stacked');
/*****[END]********************************************
[ Base: GFX Code v1.0.0 ]
******************************************************/
}else{
// see if security code is enabled
if (extension_loaded('gd') && ($gfx_chk == 2 || $gfx_chk == 4 || $gfx_chk == 5 || $gfx_chk == 7))
{
mt_srand ((double)microtime()*1000000);
$maxran = 1000000;
$random_num = mt_rand(0, $maxran);
$datekey = date("F j");
$rcode = hexdec(md5($_SERVER['HTTP_USER_AGENT'] . $sitekey . $random_num . $datekey));
$code = substr($rcode, 2, 6);
$content .= '
'. _SECURITYCODE .':<br />
<img border="0" src="?gfx=gfx&random_num='. $random_num .'" alt="'. _SECURITYCODE .'" /><br />
'. _TYPESECCODE .':<br />
<input type="text" name="gfx_check" value="" size="6" maxlength="6" /><br />
<input type="hidden" name="random_num" value="'. $random_num .'" />
';
}
else
{
$content .= '<br />
<input type="hidden" name="random_num" value="'. $random_num .'">
<input type="hidden" name="gfx_check" value="'. $code .'">';
}
}
$content .= '
<br />
<input type="hidden" name="op" value="login" />
<input type="submit" name="login" value="'. _LOGIN .'" />
<input type="button" onclick="parent.location=\'modules.php?name=Your_Account&op=new_user\'" name="'. _BREG .'" title="'. _BREG .'" value="'. _BREG .'" />
</form>
</td></tr>';
}
else
{
$uinfo = cookiedecode($user);
$content .= '<tr align="left"><td style="border-bottom: 1px dotted #CCCCCC; padding-bottom: 4px; padding-top: 4px;" title="Hello '. $uinfo[1] .'">
<a href="modules.php?name=Your_Account&op=edituser" style="text-decoration: none" title="Edit Account Info"><img border="0" src="images/info/user.png" alt="" > <span style="font-size: 14px;"><strong>'. $uinfo[1] .'</strong></span></a><br />';
$content .= '<div>';
$content .= '<img border="0" src="images/info/your_ip.png" alt=""> <strong>'. $_SERVER['REMOTE_ADDR'] .'</strong><br />';
$content .= '<a href="modules.php?name=Forums&file=search&search_id=egosearch" style="text-decoration: none" title="View Your Forum Posts"><img border="0" src="images/info/your_posts.png" alt="" > <strong>Your Forum Posts</strong></a><br />';
$content .= '<a href="modules.php?name=Your_Account&op=logout" style="text-decoration: none" title="Logout"><img border="0" src="images/info/logout.png" alt=""> <strong>Logout</strong></a>';
$content .= '</div></td></tr>';
// check new pms
$sql = "SELECT privmsgs_to_userid FROM ".$prefix."_bbprivmsgs WHERE privmsgs_to_userid='". intval($uinfo[0]) ."' AND (privmsgs_type='5' OR privmsgs_type='1')";
if ( !($result = $db->sql_query($sql)) )
{
// error
die('error checking new pms');
}
$new_pms = $db->sql_numrows($result);
$db->sql_freeresult($result);
// check old pms
$sql = "SELECT privmsgs_to_userid FROM ".$prefix."_bbprivmsgs WHERE privmsgs_to_userid='". intval($uinfo[0]) ."' AND (privmsgs_type='0')";
if ( !($result = $db->sql_query($sql)) )
{
// error
die('error checking old pms');
}
$old_pms = $db->sql_numrows($result);
$db->sql_freeresult($result);
$content .= '
<tr>
<td style="border-bottom: 1px dotted #CCCCCC; padding-bottom: 4px; padding-top: 4px;">
<img border="0" src="images/info/pms.png" alt=""> <strong>Your Messages:</strong><br />
<div style=" ">
<img border="0" src="images/info/new_pms.png" alt=""> Unread: <a href="modules.php?name=Private_Messages"><strong>'. $new_pms .'</strong></a><br />';
if ($pm_notify_dropin && $new_pms > 0)
{
$content .= '
<script type="text/javascript" language="JavaScript1.2">
// Drop-in content box- By Dynamic Drive
// For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
// This credit MUST stay intact for use
var ie=document.all
var dom=document.getElementById
var ns4=document.layers
var calunits=document.layers? "" : "px"
var bouncelimit=32 //(must be divisible by 8)
var direction="up"
function initbox(){
if (!dom&&!ie&&!ns4)
return
crossobj=(dom)?document.getElementById("dropin").style : ie? document.all.dropin : document.dropin
scroll_top=(ie)? truebody().scrollTop : window.pageYOffset
crossobj.top=scroll_top-250+calunits
crossobj.visibility=(dom||ie)? "visible" : "show"
dropstart=setInterval("dropin()",50)
}
function dropin(){
scroll_top=(ie)? truebody().scrollTop : window.pageYOffset
if (parseInt(crossobj.top)<100+scroll_top)
crossobj.top=parseInt(crossobj.top)+40+calunits
else{
clearInterval(dropstart)
bouncestart=setInterval("bouncein()",50)
}
}
function bouncein(){
crossobj.top=parseInt(crossobj.top)-bouncelimit+calunits
if (bouncelimit<0)
bouncelimit+=8
bouncelimit=bouncelimit*-1
if (bouncelimit==0){
clearInterval(bouncestart)
}
}
function dismissbox(){
if (window.bouncestart) clearInterval(bouncestart)
crossobj.visibility="hidden"
}
function truebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = ""
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset)
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function dropornot(){';
if ($pm_dropin_once)
{
$content .= '
if (get_cookie("droppedin")==""){
window.onload=initbox
document.cookie="droppedin=yes"
}';
}
else
{
$content .= '
window.onload=initbox
';
}
$content .= '
}
dropornot()
</script>
';
$content .= '
<div id="dropin" style="position:absolute;visibility:hidden;left:400px;top:100px;width:300px;height:100px;background-color:'.$dropin_bgcolor.';border: 1px solid '.$dropin_bordercolor.'">
<div align="right"><a href="#" onClick="dismissbox();return false">[Close Box] </a></div>
<br />
<a href="messages.html" onClick="dismissbox();">You have <strong>'. $new_pms .'</strong> new Private Messages.</a>
</div>
';
}
$content .= '
<img border="0" src="images/info/old_pms.png" alt=""> Read: <strong>'. $old_pms .'</strong><br />
</div>
</td>
</tr>
';
$content .= '
<tr>
<td style="border-bottom: 1px dotted #CCCCCC; padding-bottom: 4px; padding-top: 4px;">
<img border="0" src="images/info/members.png" alt=""> <strong>User Stats:</strong>
<br />
';
// get new member info
$timestamp = time();
$today = date("M d, Y");
$yesterday = date("M d, Y", ($timestamp - 86400) );
$this_month = date("M");
$this_year = date("Y");
// today
$sql = "SELECT COUNT(user_id) FROM ". $user_prefix ."_users WHERE user_regdate='$today'";
if ( !($result = $db->sql_query($sql)) )
{
// error
die('error getting todays users');
}
list($new_today) = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
//Suspended
$sus = $db->sql_numrows($db->sql_query("SELECT * FROM ".$user_prefix."_users WHERE user_level='0' AND user_id>'1'"));
//Waiting
$wu = $db->sql_numrows($db->sql_query("SELECT user_id FROM ".$user_prefix."_users_temp"));
// yesterday
$sql = "SELECT COUNT(user_id) FROM ". $user_prefix ."_users WHERE user_regdate='$yesterday'";
if ( !($result = $db->sql_query($sql)) )
{
// error
die('error getting yesterdays users');
}
list($new_yesterday) = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
// this month
$sql = "SELECT COUNT(user_id) FROM ". $user_prefix ."_users WHERE SUBSTRING(user_regdate, 1, 4)='$this_month' AND SUBSTRING(user_regdate, 9, 12)='$this_year'";
if ( !($result = $db->sql_query($sql)) )
{
// error
die('error getting this months users');
}
list($new_month) = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
// this year
$sql = "SELECT COUNT(user_id) FROM ". $user_prefix ."_users WHERE SUBSTRING(user_regdate, 9, 12)='$this_year'";
if ( !($result = $db->sql_query($sql)) )
{
// error
die('error getting this years users');
}
list($new_year) = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
// all time
$sql = "SELECT COUNT(user_id) FROM ". $user_prefix ."_users";
if ( !($result = $db->sql_query($sql)) )
{
// error
die('error getting total users');
}
list($total_users) = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$content .= '
<div style="">
<img border="0" src="images/info/today.png" alt=""> Today: <strong>'. $new_today .'</strong><br />
<img border="0" src="images/info/yesterday.png" alt=""> Yesterday: <strong>'. $new_yesterday .'</strong><br />
<img border="0" src="images/info/month.png" alt=""> This Month: <strong>'. $new_month .'</strong><br />
<img border="0" src="images/info/year.png" alt=""> This Year: <strong>'. $new_year .'</strong><br />
<img border="0" src="images/info/total_users.png" alt=""> Total Users: <strong>'. $total_users .'</strong><br />
<img border="0" src="images/info/waiting.png" alt=""> Waiting Users: <strong>'. $wu .'</strong><br />
<img border="0" src="images/info/sus.png" alt="" valign="middle"> Suspended: <strong>'. $sus .'</strong><br />
</div>
</td>
</tr>
';
if($recent_member_count != 0){
// get newest member(s)
$sql = "SELECT username FROM ". $user_prefix ."_users ORDER BY user_id DESC LIMIT ". intval($recent_member_count);
if ( !($result = $db->sql_query($sql)) )
{
// error
die('error getting latest users');
}
$content .= '
<tr>
<td style="border-bottom: 1px dotted #CCCCCC; padding-bottom: 4px; padding-top: 4px;">';
$content .= '<img border="0" src="images/info/new_users.png" alt=""> <strong>New';
$content .= $recent_member_count > 1 ? ' Members:</strong><br />' : 'est Member:</strong><br />';
while( $row = $db->sql_fetchrow($result) )
{
$content .= '
<div style="padding-left: 12px;">
<img border="0" src="images/info/member_new.png" alt=""> <a href="modules.php?name=Your_Account&op=userinfo&username='.$row['username'].'" title="View Profile: '.$row['username'].'">'.$row['username'].'</a>
</div>
';
// comment the 5 lines above and uncomment the 5 lines below to use the google tapped link
//$content .= '
//<div style="padding-left: 12px;">
//<img border="0" src="images/info/member_new.png" alt=""> <a href="userinfo-'.$row['username'].'.html" title="View Profile: '.$row['username'].'">'.$row['username'].'</a>
//</div>
//';
}
$db->sql_freeresult($result);
$content .= '</td></tr>';
}
// show whos online
$members = '';
$guests = '';
$m = $g = 0;
$sql = "SELECT uname, time, host_addr, guest FROM ". $prefix ."_session WHERE time > '".( time() - ($max_session_mins * 60) )."' ORDER BY guest ASC,time DESC";
if ( !($result = $db->sql_query($sql)) )
{
// error
die('error getting online users');
}
$content .= '
<tr>
<td style="border-bottom: 1px dotted #CCCCCC; padding-bottom: 4px; padding-top: 4px;">
<img border="0" src="images/info/members.png" alt=""> <strong>Online Now:</strong>
<br />';
while( $row = $db->sql_fetchrow($result) )
{
if ($row['guest'] == 0)
{
$m++;
if ($m <= $max_display_members)
{
$sql = $db->sql_query("SELECT user_level FROM ".$prefix."_users WHERE username = '".$row['uname']."'");
$row2 = $db->sql_fetchrow($sql);
$ulevel = intval($row2['user_level']);
if($ulevel == 2) {
$icon = 'admin.png';
$status = '<img border="0" src="images/info/admin.gif" alt="">';
}elseif ($ulevel == 3) {
$icon = 'mod.png';
$status = '<img border="0" src="images/info/staff.gif" alt="">';
}else{
$icon = 'online.png';
$status = '';
}
$members .= '
<div style="padding-left: 12px;">
<img border="0" src="images/info/'.$icon.'" alt=""> <a href="modules.php?name=Your_Account&op=userinfo&username='.$row['uname'].'" title="View Profile: '.$row['uname'].'">'.$row['uname'].'</a>'.$status.'
</div>
';
// comment the 5 lines above and uncomment the 5 lines below to use the google tapped link
//$members .= '
//<div style="padding-left: 12px;">
//<img border="0" src="images/info/online.png" alt=""> <a href="userinfo-'.$row['uname'].'.html" title="View Profile: '.$row['uname'].'">'.$row['uname'].'</a>
//</div>
//';
}
}
else
{
$g++;
if ($show_guest_list && $g <= $max_display_guests)
{
if (is_admin($admin))
{
$uname = $row['uname'];
}
else
{
// hide last 2 octets of guest ip's.
$ip = explode('.', $row['uname']);
$uname = $ip[0].'.'.$ip[1].'.'.ereg_replace("[0-9]", "x", $ip[2]).'.'.ereg_replace("[0-9]", "x", $ip[3]);
}
$bot_array = array('google', 'yahoo', 'msn', 'bot', 'spider', 'crawler');
$botname = '';
$is_bot = false;
foreach ($bot_array as $bot)
{
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), $bot) !== false)
{
$is_bot = true;
$botname = $bot;
$content .= $botname;
}
}
$guests .= '
<div style="padding-left: 12px;">
<img border="0" src="images/info/online_guest.png" alt=""> '.$uname.'
</div>
';
}
}
}
$db->sql_freeresult($result);
if ($m > 0)
{
$content .= '
<em>Members</em>: <strong>
'. $m .'</strong><br />';
if($m > 5){
$content .= "<div style=\"border:none; height:98px; width:100%; overflow-x:hidden; overflow-y:scroll;\">";
$content .= ''.$members.'<br />';
$content .= "</div>";
}else{
$content .= ''.$members.'<br />';
}
}
if ($g > 0)
{
$content .= '<br />
<em>Guests</em>: <strong>
'. $g .'</strong><br />';
if($g > 6){
$content .= "<div style=\"border:none; height:98px; width:100%; overflow-x:hidden; overflow-y:scroll;\">";
$content .= ''.$guests.'<br />';
$content .= "</div>";
}else{
$content .= ''.$guests.'<br />';
}
}
$content .= '<br />
<em>Total Online</em>: <strong>
'. ($m + $g) .'</strong><br />
</td></tr>';
}
$content .= '
</table>
<!-- END Info -->';
?>
|
|
|
Grtz, CupOfTea ---
My Nuke Version: 8.0 Patched 3.5 ---
|