###############################################################
# WHO'S ONLINE FOR UBB
# Last Updated: 28/3/01 @ 19:44
#
# This Version By: Elliott "Borg" Brady (ubb@fracturedreality.co.uk)
#
http://www.ubbdev.com/ #
# Originally By: Dave Downin (downin@smart.net)
#
http://www.arlo.net/ #
# PLEASE DO NOT REMOVE THE COPYRIGHT NOTICE - I WORKED HARD TO
# CREATE THIS HACK, AND IT PROVIDES ME WITH USEFUL INFORMATION
# SHOULD YOU REQUIRE HELP OR ASSISTANCE
###############################################################
# Version Notes:
# 3.0 - A new era begins (UBB Version 6 support). All respect to Dave for
# the original modification.
#
# 3.1 - timeformat sub replaced to fix errror. Thanks mikels!
# 3.2 @ 19:44 - re-did most of code to localise variables (and hopefully make mod_perl friendly)
# 3.3 @ 01:55 - fixed "." bug
$version = "3.3";
sub whos_online_ssi {
##### Who's online? Code Block by Elliott "Borg" Brady
#<!--#exec cgi="D:/216.205.119.230/ubbcgi/ultimatebb.cgi?ubb=whos_online_ssi&link=http://www.ubbdev.com&name=Site%20Intro"-->
local($Online_Wording, $Online_Details, $replace, @nullit);
$in{name} =~ s/+/&/;
$in{name} =~ s/%20/ /;
&WriteUserSession("$vars_wordlets_mods{whos_online_viewing} <A HREF="$in{$link}">$in{name}</A>");
undef($Online_Wording); undef($Online_Details); undef($replace);
($Online_Wording, $Online_Details, @nullit) = &GetOnlineUsers($username);
$replace = qq~
<table border="0" cellpadding="0" cellspacing="1" width="$vars_style{TableWidth}">
<tr bgcolor="$vars_style{TableBorderColor}"><td>
<table border="0" bgcolor="$vars_style{TableBorderColor}" width="100%" cellpadding="4" cellspacing="1">
<tr bgColor="$vars_style{AltColumnColor1}"><td bgColor="$vars_style{AltColumnColor1}">
<FONT SIZE="1" FACE="$vars_style{FontFace}" color="$vars_style{BBTitleFontColor}"><A HREF="$vars_config{CGIURL}/ultimatebb.cgi?ubb=whos_online"><B>$Online_Wording</A></B></FONT>
<FONT SIZE="1" FACE="$vars_style{FontFace}" color="$vars_style{FontColor}">$Online_Details</font></td></tr></table></td></tr></table>~;
##### / Who's online? Code block by Elliott "Borg" Brady
print "$replace";
undef($maxline); undef ($maxtotal);
exit;
}
sub whos_online {
local(*FILE, $include_yourself, $inactive_time, $refresh_time, $see_invisible, $display_host, $members_per_page, $online_message, $online_message_forum, $ssi_msg);
local ($version, $Header, $page, $start_at, $tot, @found, $usertime, $username, $this_user_number, $host_ip, $where);
# get assigned style template!
unless (exists($template_match{summary_page})) { $template_match{summary_page} = 1; }
require "$vars_config{NonCGIPath}/styles/vars_style_$template_match{summary_page}.cgi";
&set_page_elements;
print $Header;
if (-e "$vars_config{VariablesPath}/vars_whos_online.cgi") {
require "$vars_config{VariablesPath}/vars_whos_online.cgi";
} else { # Use Defaults if no file
$include_yourself = 1;
$inactive_time = 5;
$refresh_time = 60;
$see_invisible = "both";
$display_host = "admin";
$members_per_page = 75;
$online_message = "summary";
$online_message_forum = "list";
$ssi_msg = "list";
}
$page = $in{'p'};
if (!$page) { $page = 1; }
$start_at = $members_per_page * ($page - 1);
&WriteUserSession("$vars_wordlets_mods{whos_online_viewing} <A HREF="$vars_config{CGIURL}/ultimatebb.cgi?ubb=whos_online">$vars_wordlets_mods{whos_online_whos_online}</A>");
($Online_Wording, $Online_Details, @found) = &GetOnlineUsers($username);
$tot = @found;
undef($status);
if ($ubber[4]) {
my @temp_profile = &OpenProfile($ubber[4]);
$status = "mods" if ($temp_profile[8] =~ /mod/ig);
$status = "admin" if ($temp_profile[8] =~ /admin/ig);
# $status = "admin" if ($ubber[0] =~ /Borg/ig); # Used for debugging
}
if ($see_invisible eq "both" && $status) { $adminstatus = 1; }
if ($see_invisible eq $status) { $adminstatus = 1; }
if ($display_host eq $status) { $hostinfo = 1; }
if ($display_host eq "both" && $status) { $hostinfo = 1; }
if ($display_host eq "everyone") { $hostinfo = 1; }
$current = time;
if (($vars_time{TimeZoneOffset} ne "") || ($vars_time{TimeZoneOffset} ne "0")) {
$current = $current + ($vars_time{TimeZoneOffset} * 3600);
}
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = &get_date($current);
if ($vars_time{DateFormat} eq "USX") { $vars_time{DateFormat} = "USExpanded"; }
$TheDate = &DateFormat("$mon-$mday-$year", "$vars_time{DateFormat}");
$TheTime = &TimeFormat("$hour:$min");
$current_dt = "$TheDate / $TheTime";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = &get_date($maxtime);
if ($vars_time{DateFormat} eq "USX") { $vars_time{DateFormat} = "USExpanded"; }
$TheDate = &DateFormat("$mon-$mday-$year", "$vars_time{DateFormat}");
$TheTime = &TimeFormat("$hour:$min");
$max_dt = "$TheDate / $TheTime";
$BorderTop = "";
$BorderBottom = "";
# print header
print<<HEAD;
<META HTTP-EQUIV=REFRESH CONTENT="$refresh_time; URL=$vars_config{CGIURL}/ultimatebb.cgi?ubb=whos_online#tabletop">
<CENTER>
<A NAME="tabletop">
<TABLE border="0" width="$vars_style{TableWidth}">
<TR><TD align="left" valign="top" >
<A HREF="$vars_config{CGIURL}/ultimatebb.cgi"><IMG src="$vars_config{NonCGIURL}/$vars_style{BBTitle}" border="0"></A>
</TD>
<TD align="center">
<B>
<FONT size="3" face="$vars_style{FontFace}" color="$vars_style{BBTitleFontColor}">$vars_config{BBName}</FONT></B>
<FONT size="1" face="$vars_style{FontFace}">
$MainButtonsLine
</FONT>
</TD></TR></TABLE></b>
<table border="0" width="$vars_style{TableWidth}">
<tr>
<TD valign="bottom" align="right">
<FONT SIZE="1" FACE="$vars_style{FontFace}">
</FONT>
</TD>
</tr>
</table>
<!-- Navigation/Login Table -->
$TBT
<TR bgcolor="$vars_style{AltColumnColor1}">
<TD NOWRAP align="left" valign="bottom">
<FONT SIZE="1" FACE="$vars_style{FontFace}">
<B>»
$show_logout
</B>
</font>
</TD>
<TD valign="bottom" align="right">
<FONT SIZE="1" FACE="$vars_style{FontFace}">
<B>
<A HREF="$vars_config{CGIURL}/ultimatebb.cgi"><ACRONYM TITLE="$vars_wordlets{forum_home_link}">
$vars_config{BBName}</ACRONYM></A> » $vars_wordlets_mods{whos_online_whos_online}
</B>
</FONT>
</TD>
</TR>
$TBB
<!-- End Navigation/Login Table -->
<table border="0" width="$vars_style{TableWidth}">
<tr>
<TD valign="top" align="left">
<FONT SIZE="2" FACE="$vars_style{FontFace}">
$this_forum[16]
</FONT>
</TD>
</tr>
</table>
$BorderTop
<table border=0 cellpadding=2 cellspacing=0 width=$vars_style{TableWidth}>
<tr bgcolor="$vars_style{TableColorStrip}">
<td align="left" valign="middle"><FONT SIZE="1" FACE="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$vars_wordlets_mods{whos_online_column_user}</FONT></td>
<td align="left" valign="middle"><FONT SIZE="1" FACE="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$vars_wordlets_mods{whos_online_column_where}</FONT></td>
<td align="left" valign="middle"><FONT SIZE="1" FACE="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$vars_wordlets_mods{whos_online_column_time}</FONT></td></tr>
HEAD
#####################################
# Figure out & create page link HTML
if (!$members_per_page) {
$members_per_page = $tot + 1;
} else {
$total_pages = ($tot + 1)/$members_per_page;
if ($total_pages > int(($tot +1)/$members_per_page)) {
$total_pages++;
}
if ($total_pages >= 2) {
$pages = qq(<FONT FACE="$vars_style{FontFace}" color="$vars_style{FontColor}">$vars_wordlets_mods{whos_online_page} );
for ($i = 1; $i <= $total_pages; $i++) {
if ($page eq $i) {
$pages .= "$i ";
} else {
$pages .= qq(<A HREF="$vars_config{CGIURL}/ultimatebb.cgi?ubb=whos_online&p=$i">$i</A> );
}
}
$pages .= qq(<FONT>);
}
}
# End page link HTML code
######################################
if (!$found[0]) {
print qq(<TR><TD COLSPAN=3 ALIGN=CENTER valign=middle bgcolor="$vars_style{AltColumnColor1}">
<FONT SIZE="1" FACE="$vars_style{FontFace}">$OnlineUserMsg</TD></TR>);
}
$end_at = $start_at + $members_per_page;
if ($tot <= $end_at) { $end_at = $tot; }
undef($flip);
for ($i = $start_at; $i < $end_at; $i++) {
($usertime,$username,$this_user_number,$host_ip,$where) = split(/|^|/,$found[$i]);
if ($username =~ /.inv/ && !$adminstatus) { next; }
undef($invisible);
if ($username =~ /.inv/) {
$username =~ s/.inv//;
$invisible = " ($vars_wordlets_mods{whos_online_invisible})";
}
if ($username eq "guest") {
$guest_counter++;
$username = "$vars_wordlets_mods{whos_online_Guest} #" . "$guest_counter";
}
if ($hostinfo) {
$hostname = gethostbyaddr($host_ip, AF_INET);
if (!$hostname) { $hostname = $host_ip; }
}
if ($hostinfo) { $hostname = "
<small>($hostname)</small>"; }
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = &get_date($usertime);
if ($vars_time{DateFormat} eq "USX") { $vars_time{DateFormat} = "USExpanded"; }
$TheDate = &DateFormat("$mon-$mday-$year", "$vars_time{DateFormat}");
$TheTime = &TimeFormat("$hour:$min");
print "<tr ";
if (!$flip) {
print "bgcolor='$vars_style{AltColumnColor1}'";
$flip = "1";
} else {
print "bgcolor='$vars_style{AltColumnColor2}'";
$flip = "";
}
$username =~ s/.inv//g;
if ($username !~ /guest/ig) {
print qq(>
<td align=left valign=middle><font size="2" FACE="$vars_style{FontFace}">
<a href="$vars_config{CGIURL}/ultimatebb.cgi?ubb=get_profile&u=$this_user_number">);
} else { print qq(>
<td align=left valign=middle><font size="1" FACE="$vars_style{FontFace}">); }
print qq($username</A> $invisible $hostname</font> </td>
<td align=left valign=middle><font size="1" FACE="$vars_style{FontFace}">
$where</font> </td>
<td align=left valign=middle><font size="1" FACE="$vars_style{FontFace}"
color="$vars_style{TimeColor}">$hour:$min $vars_wordlets_mods{whos_online_time}
</font></td></tr>);
}
# print footer
print<<FOOT;
<tr bgcolor="$vars_style{CategoryStripColor}">
<td colspan=3 align=center>
<table border=0 cellpadding=1 cellspacing=2>
<tr>
<td align="left" valign="middle" bgcolor="$vars_style{CategoryStripColor}"><B>
<FONT SIZE="1" FACE="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$vars_wordlets_mods{whos_online_currently}</FONT></B></td>
<td align="left" valign="middle" bgcolor="$vars_style{CategoryStripColor}"><B>
<FONT SIZE="1" FACE="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$current_dt ($totalcount $vars_wordlets_mods{whos_online_visitors})</FONT></B></td></tr>
<tr>
<td align="left" valign="middle" bgcolor="$vars_style{CategoryStripColor}"><B>
<FONT SIZE="1" FACE="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$vars_wordlets_mods{whos_online_record}
</FONT></B></td>
<td align="left" valign="middle" bgcolor="$vars_style{CategoryStripColor}"><B>
<FONT SIZE="1" FACE="$vars_style{FontFace}" color="$vars_style{CategoryStripTextColor}">$max_dt ($maxtotal $vars_wordlets_mods{whos_online_visitors})
</FONT></B></td></tr>
</table>
</td></tr>
<tr><td colspan=3 align=right>$pages</td></tr></table>
<center>
<FONT SIZE="1" FACE="$vars_style{FontFace}" color="$vars_style{FontColor}">
$vars_wordlets_mods{whos_online_reload_every} $refresh_time $vars_wordlets_mods{whos_online_seconds}</FONT>
</center>
FOOT
print $Footer;
undef($maxline); undef($maxtotal); undef($Footer); undef($Header); undef($totalcount); undef($max_dt); undef($current_dt);
}
sub get_date {
($seed) = @_;
if (!$seed) { $seed = time; }
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($seed);
$mon++;
$year = 1900 + $year;
$wday = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[$wday];
$nice_mon = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)[$mon];
if ($mday <= "9") { $mday = "0$mday"; }
if ($hour <= 9) { $hour = "0$hour"; }
if ($min <= 9) { $min = "0$min"; }
if ($sec <= 9) { $sec = "0$sec"; }
if ($isdst) { $tz = "EDT"; } else { $tz = "EST"; }
$unix_date = scalar localtime;
return ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst);
}
### Sub thanks to mikels
sub TimeFormat {
local($time_formatted, @timearray, $get_hour, $get_minute);
if ($vars_time{TimeFormat} eq '24HR') {
@timearray = split(/ /, $_[0]); chomp($timearray[1]);
($get_hour, $get_minute) = split(/:/, $timearray[0]);
chomp($get_minute);
if ($timearray[1] eq 'PM') {
if ($get_hour < 12) { $get_hour = ($get_hour + 12); }
} else {
if ($get_hour == 12) { $get_hour = '0'; }
}
$get_hour = &Do2Digit($get_hour);
$get_minute = &Do2Digit($get_minute);
$time_formatted = "$get_hour:$get_minute";
} else {
$time_formatted = "$_[0]";
}
return($time_formatted);
} # end TimeFormat
sub PageTopHTML {
if ($DisplayRegistration eq "NO") {
$RegLinkHere = "";
} else {
$RegLinkHere = qq(| <A HREF="$CGIURL/Ultimate.cgi?action=agree"><ACRONYM TITLE="Registration is free!">register</ACRONYM></A> );
}
if (-e "$CGIPath/login.cgi" && $login_hack) {
if ($cookie{UserName}) {
$LogoutText = qq(<A HREF="$CGIURL/login.cgi?action=logout">logout</A> );
} else {
$LogoutText = qq(<A HREF="$CGIURL/login.cgi">login</A> );
}
}
if (-e "$CGIPath/active.cgi" && $active_topics) {
$ActiveText = qq(| <A HREF="$CGIURL/active.cgi">active topics</A>);
}
if (-e "$CGIPath/memberlist.cgi" && $memberlist_hack) {
$MemberText = qq(| <A HREF="$CGIURL/memberlist.cgi">members</A>);
}
if (-e "$CGIPath/team.cgi" && $team_hack) {
$TeamText = qq(| <A HREF="$CGIURL/team.cgi">team</A>);
}
if ($AllowSearch eq "FALSE") {
$SearchOption = "";
} else {
$SearchOption = qq(| <A HREF="$CGIURL/search.cgi?action=intro&default=$number"><ACRONYM TITLE="Perform a search by keyword, date, or name.">search</ACRONYM></A>);
}
$PageTopHTML = qq(
<center>
<table border="1" cellpadding="10" cellspacing="0" cols="2">
<tr><TD align=center>
<A HREF="Ultimate.cgi"><IMG SRC="$NonCGIURL/$BBTitle" BORDER=0></A>
</td>
<td align=center>
<B><FONT SIZE="3" FACE="$FontFace" COLOR="$BBTitleFontColor">$BBName</FONT></B>
<FONT SIZE="1" FACE="$FontFace">
$LogoutText
$RegLinkHere
| <A HREF="$CGIURL/ubbmisc.cgi?action=editbio"><ACRONYM TITLE="Click here to edit your profile.">profile</ACRONYM></A>
| <A HREF="$CGIURL/ubbmisc.cgi?action=setprefs"><ACRONYM TITLE="Set your preferences.">preferences</ACRONYM></A>
| <A HREF="$NonCGIURL/faq.html" target=_blank><ACRONYM TITLE="Frequently Asked Questions">faq</ACRONYM></A>
$SearchOption
$MemberText
$TeamText
$ActiveText
</font></font></td></tr></table>);
}
sub ConfigureHTML {
if ($include_yourself) {
$IncludeYes = "CHECKED"; } else { $IncludeNo = "CHECKED"; }
if ($see_invisible eq "admin") {
$Invisible0 = "SELECTED"; } else { $Invisible1 = "SELECTED"; }
if ($display_host eq "admin") {
$Host0 = "SELECTED";
} elsif ($display_host eq "both") {
$Host1 = "SELECTED";
} elsif ($display_host eq "everyone") {
$Host2 = "SELECTED"; } else { $Host3 = "SELECTED"; }
if ($online_message eq "summary") {
$Online0 = "SELECTED";
} elsif ($online_message eq "list") {
$Online1 = "SELECTED"; } else { $Online2 = "SELECTED"; }
if ($members_per_page eq "25") {
$MPP0 = "SELECTED";
} elsif ($members_per_page eq "50") {
$MPP1 = "SELECTED";
} elsif ($members_per_page eq "75") {
$MPP2 = "SELECTED";
} elsif ($members_per_page eq "100") {
$MPP3 = "SELECTED"; } else { $MPP4 = "SELECTED"; }
print <<CONFIGURE;
<html>
<head><title>Who's Online Configuration</title></head>
<BODY bgcolor="#FFFFFF" link="#000080" vlink="#808000">
<center>
<FONT SIZE="2" FACE="Verdana, Arial"> C O N F I G U R E W H O ' S O N L I N E</FONT>
<FONT SIZE="$TextSize" FACE="$FontFace">
This will allow you to control how the Who's Online feature will display and opperate.</FONT>
<FORM ACTION="$CGIURL/UBB6online.cgi" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="WriteSettings">
$BorderTop
<table border=0 cellpadding=4 border=0 cellspacing=1 width=$vars_style{TableWidth}>
<tr bgcolor="$vars_style{AltColumnColor1}"><td>
<FONT SIZE="$TextSize" FACE="$FontFace"><B>Include Yourself</B>
If you set this option to "yes", you will be able to see yourself when
viewing the list. If it is set to "no", you will not see yourself, but
you will be counted and everyone else will see you.</FONT></td>
<td><FONT SIZE="$TextSize" FACE="$FontFace">
<INPUT TYPE=RADIO NAME="include_yourself" VALUE="1" $IncludeYes> yes
<INPUT TYPE=RADIO NAME="include_yourself" VALUE="0" $IncludeNo> no</FONT></td></tr>
<tr bgcolor="$vars_style{AltColumnColor2}"><td>
<FONT SIZE="$TextSize" FACE="$FontFace"><B>Time Until Logged Out</B>
This determines how long until a user is "logged out" of the system. If
someone is active on the forums, their session will keep being updated
which will keep them from being logged out.</FONT></td>
<td><INPUT NAME=inactive_time SIZE=3 VALUE="$inactive_time">
<FONT SIZE="$TextSize" FACE="$FontFace">minutes</font></td></tr>
<tr bgcolor="$vars_style{AltColumnColor1}"><td>
<FONT SIZE="$TextSize" FACE="$FontFace"><B>Refresh Rate</B>
This setting allows you to set how long before the Who's Online details
page reloads. If you don't wish to have the page reload, set this to "0".
</FONT></td>
<td><INPUT NAME=refresh_time SIZE=3 VALUE="$refresh_time">
<FONT SIZE="$TextSize" FACE="$FontFace">seconds</FONT></td></tr>
<tr bgcolor="$vars_style{AltColumnColor2}"><td>
<FONT SIZE="$TextSize" FACE="$FontFace"><B>See Invisible Users</B>
Who should be able to see invisible users when viewing the detailed page?
</FONT></td>
<td><FONT SIZE="$TextSize" FACE="$FontFace"><select name=see_invisible>
<OPTION VALUE="admin" $Invisible0> Admins Only
<OPTION VALUE="both" $Invisible1> Admins & Moderators</select>
</FONT></td></tr>
<tr bgcolor="$vars_style{AltColumnColor1}"><td>
<FONT SIZE="$TextSize" FACE="$FontFace"><B>Display Host/IP Info</B>
Who should be able to see host/ip information on the detailed page? Note:
Setting this to anything other than NO ONE could drastically increase the
load on your server.</FONT></td>
<td><FONT SIZE="$TextSize" FACE="$FontFace"><select name=display_host>
<OPTION VALUE="admin" $Host0> Admins Only
<OPTION VALUE="both" $Host1> Admins & Moderators
<OPTION VALUE="everyone" $Host2> Everyone
<OPTION VALUE="none" $Host3> No One</FONT></select></td></tr>
<tr bgcolor="$vars_style{AltColumnColor2}"><td>
<FONT SIZE="$TextSize" FACE="$FontFace"><B>Entries Per Page</B>
On the detailed page, you can control how many entries to display on each
page. This could be usefull if your site is very busy!</FONT></td>
<td><FONT SIZE="$TextSize" FACE="$FontFace"><select name=members_per_page>
<OPTION $MPP0>25
<OPTION $MPP1>50
<OPTION $MPP2>75
<OPTION $MPP3>100
<OPTION VALUE="0" $MPP4>All</select></font></td></tr>
<tr bgcolor="$vars_style{AltColumnColor1}"><td>
<FONT SIZE="$TextSize" FACE="$FontFace"><B>Display Type</B>
On the main page (in Ultimate.cgi) you can choose to have it display a
summary message, or list the users who are online. Or, you can choose
to disable the display on the main page.</td>
<td><FONT SIZE="$TextSize" FACE="$FontFace"><select name=online_message>
<OPTION VALUE="summary" $Online0>Summary
<OPTION VALUE="list" $Online1>List Users
<OPTION VALUE="off" $Online2>Do Not Display
</select></FONT></td></tr>
</table>
$BorderBottom
<FONT SIZE="$TextSize" FACE="$FontFace" COLOR="$TimeColor">UserName:
<INPUT NAME=UserName VALUE="$cookie{'UserName'}" SIZE=25>
Password:
<INPUT TYPE=PASSWORD NAME=Password VALUE="$cookie{'Password'}" SIZE=25>
</FONT>
<INPUT TYPE=SUBMIT VALUE="Submit Settings">
<INPUT TYPE=RESET VALUE="Reset">
</FORM>
CONFIGURE
}
sub CheckID {
# &VerifyAdmin($UserName, $Password);
if ($Proceed eq "true") {
&WriteSettings;
$ConfirmLine = "<center>Your settings have been updated.</center>";
# &ConfirmHTML2;
}
}
sub WriteSettings {
open(FILE,">$vars_config{MembersPath}/UBB6online.cfg");
print FILE "$include_yourself = $in{'include_yourself'};n";
print FILE "$inactive_time = $in{'inactive_time'};n";
print FILE "$refresh_time = $in{'refresh_time'};n";
print FILE "$see_invisible = $in{'see_invisible'};n";
print FILE "$display_host = $in{'display_host'};n";
print FILE "$members_per_page = $in{'members_per_page'};n";
print FILE "$online_message = $in{'online_message'};n";
close(FILE);
}
1;