61
talunceford
Re: New TeamSpeak Module

Yep, in the version prior to this, you do. But I tied it to the XOOPS db much tighter and you don't have to do anything but install it now.
Tim
www.tswn.com | www.bf2online.com | aquaria.tswn.com | www.bf2142online.org



62
talunceford
Re: New TeamSpeak Module

One thing, just install the module as normal. Don't run the install.php file. Its all tied to the XOOPS db much tighter now. No need to change anything in the config.php files either. FYI
Tim
www.tswn.com | www.bf2online.com | aquaria.tswn.com | www.bf2142online.org



63
talunceford
Re: [content] The framework

Maybe have a tutorials section......
Tim
www.tswn.com | www.bf2online.com | aquaria.tswn.com | www.bf2142online.org



64
talunceford
Re: [design] The design framework

If it was me that was designing the framework, I would seriously think about what type of content you want displayed initially. List out items in order of importance. Make the items that should be displayed predominantly on the initial page, be there. The others, I would leave up to subsequent menus and links elsewhere on the page. I think the idea of getting away from 3 column, layouts or the CMS look is a huge step in the right direction. You can have columns, but making them appear something other than the a-typical column is the key. Most themes available today have this ability. I personally like the way thathttp://www.blogger.com/start this site looks. Very clean, well organized, and easy to look at.

Just my two cents.
Tim
www.tswn.com | www.bf2online.com | aquaria.tswn.com | www.bf2142online.org



65
talunceford
Re: BF2 Server Status Module...

Not a problem man!
Tim
www.tswn.com | www.bf2online.com | aquaria.tswn.com | www.bf2142online.org



66
talunceford
Re: BF2 Server Status Module...

Well, I am working on the Teamspeak module as we speak. I am having trouble with 2.2.x and the Teamspeak module. I might start from scratch on a few of the pages, just to make them compatable. We'll see what happens.
Tim
www.tswn.com | www.bf2online.com | aquaria.tswn.com | www.bf2142online.org



67
talunceford
Re: New Survey (tongue in cheek): How Many People Spend WAY Too Much Time On XOOPS?

OMG, don't get me started.....
Tim
www.tswn.com | www.bf2online.com | aquaria.tswn.com | www.bf2142online.org



68
talunceford
Re: BF2 Server Status Module...

<?php
//////////////////////////////////////////XOOOPS ADMIN HEADER INFORMATION////////////////////////////////////////
include_once '../../../mainfile.php';

global 
$xoopsDB;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//-----------------------------------LIST CREATION-----------------------------+
global $xoopsDB;
$filename XOOPS_ROOT_PATH."/modules/bf2query/lgsl/cachedips/lgsl_servers.txt";
$iplist = @fopen($filename"w+");
@
fclose($iplist);

$server_sql "SELECT * FROM ".$xoopsDB->prefix("bf2query_s_name")." LIMIT 0, 500";// These are pre-defined server IPS that were gathered by KQUERY.
$query_servers $xoopsDB->query($server_sql) or die("I cannot connect to the database to find the playername!");
while (
$row_servers $xoopsDB->fetchArray($query_servers)){
$server $row_servers['s_ip'];
$port $row_servers['s_port'];
$sid $row_servers['s_name_id'];
//echo "$sid - $server:$port<br>";
$filename XOOPS_ROOT_PATH."/modules/bf2query/lgsl/cachedips/lgsl_servers.txt";
$iplist = @fopen($filename"a+");
$ipaddress $row_servers['s_ip'];
$ipstring "$ipaddress:16567:bf2 n";
@
fwrite($iplist"$ipstring");
@
fclose($iplist);
///////////////////////////////////////////////////////////////END SERVER LIST CREATION //////////////////////////////////
}


//------------------------------------------------------------SERVER PARSE FUNCTION--------------------------------------------------++

 /*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 _|                                                                                                      |_/
 _|                              LIVE GAME SERVER LIST [ STAND ALONE ]                                   |_/
 _|                                                                                                      |_/
 _|                           © Richard Perry from http://www.greycube.com                               |_/
 _|                                                                                                      |_/
 _|                          Released under the terms and conditions of the                              |_/
 _|                           GNU General Public License (http://gnu.org).                               |_/
 _|                                                                                                      |_/
 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_*/

//-----------------------------------------------------------------------------------------------------------+  
$lgsl_cachetime      10;       // REFRESH DELAY IN MINS - AS GUIDE ADD 1 AFTER EVERY 30 SERVERS ON THE LIST
$lgsl_hostnamelength 50;      // FULL SERVER LIST - NUMBER OF CHARACTERS BEFORE SERVER NAME GETS CHOPPED
  
$lgsl_hostname_to_ip 0;       // CONVERT HOSTNAMES TO IP ADDRESS TO SAVE SPACE AND FOR ASE LINK TO WORK

//-----------------------------------------------------------------------------------------------------------+

include_once XOOPS_ROOT_PATH.'/modules/bf2query/lgsl/lgsl_protocol.php';
  if (!
is_writable(XOOPS_ROOT_PATH.'/modules/bf2query/lgsl/cachedips/lgsl_cache.dat')) { echo "THE FILE LGSL_CACHE.DAT IS NOT WRITABLE"; exit; }

//-----------------------------------------------------------------------------------------------------------+

  
$lines       file(XOOPS_ROOT_PATH.'/modules/bf2query/lgsl/cachedips/lgsl_cache.dat');
  
$last_line   count($lines) - 1;
  
$last_update intval($lines[$last_line]);
  
$time_check  time() - ($lgsl_cachetime 60);
  
  if (
$time_check $last_update)
  {
    
// echo "DEBUG: This information was CACHED <br /><br />";
  
    
unset($lines[$last_line]);

    foreach (
$lines as $line_number=>$line)
    {
      
$data_cache[$line_number] = unserialize($line);
    }
  }
  else
  {

//-----------------------------------------------------------------------------------------------------------+

    // echo "DEBUG: This information was LIVE <br /><br />";

    
ignore_user_abort(true); // FINISH WRITING CACHE EVEN IF THE BROWSER IS CLOSED

    
$lines file(XOOPS_ROOT_PATH.'/modules/bf2query/lgsl/cachedips/lgsl_servers.txt');

    foreach (
$lines as $line)
    {
      if (!
trim($line)) { continue; } // SKIP BLANK LINES

      
$part        explode(":"$line);
      
$server_ip   trim($part[0]);  // TRIM REMOVES
      
$server_port trim($part[1]);  // ACCIDENTAL SPACES
      
$server_type trim($part[2]);  // AND NEWLINE CHARACTERS
   
      
$data lgsl_query($server_ip$server_port$server_type"info");

      
$data[mapname] = preg_replace("/[^A-Za-z0-9 _-]/""_"strtolower($data[mapname]));  // CONVERT FOR FILE
      
$data[gamemod] = preg_replace("/[^A-Za-z0-9 _-]/""_"strtolower($data[gamemod]));  // AND FOLDER USAGE

      
$data_counter += 1;
      
$data_cache[$data_counter] = $data;
    }

    
$fh fopen(XOOPS_ROOT_PATH.'/modules/bf2query/lgsl/cachedips/lgsl_cache.dat',"w");

    foreach(
$data_cache as $line)
    {
      
$line serialize($line)."rn";
      
fwrite($fh,$line);
    }

    
fwrite($fhtime());

    
fclose($fh);
    
    
ignore_user_abort(false);

  }

//-----------------------------------------------------------------------------------------------------------+
?>

<?


  
foreach($data_cache as $data)
  {
    if (!
$data[status])
    {
      
$lgsl_image_status "images/status/server_offline.gif";
      
$data[status]      = "OFFLINE";
      
$data[hostname]    = "Unknown";
      
$data[mapname]     = "unknown";
      
$data[players]     = "0";
      
$data[maxplayers]  = "0";
    }
    else if (!
$data[password])
    {
      
$lgsl_image_status "images/status/server_online.gif";
      
$data[status]      = "ONLINE";
    }
    else
    {
      
$lgsl_image_status "images/status/server_online_password.gif";
      
$data[status]      = "ONLINE WITH PASSWORD";
    }

//-----------------------------------------------------------------------------------------------------------+

    
$lgsl_image_icon "images/icons/$data[gametype]/$data[gamemod].gif";  // USE MOD ICON

    
if (!file_exists($lgsl_image_icon))
    {
      
$lgsl_image_icon "images/icons/$data[gametype]/$data[gametype].gif"// USE GAME ICON

      
if (!file_exists($lgsl_image_icon))
      {
        
$lgsl_image_icon "images/status/unknown.gif";  // USE UKNOWN ICON
      
}
    }

//-----------------------------------------------------------------------------------------------------------+

    
if (strlen($data[hostname]) > $lgsl_hostnamelength)
    {
      
$data[hostname] = substr($data[hostname], 0$lgsl_hostnamelength 3) . "..."// SHORTEN HOSTNAME
    
}

    
$data[hostname] = htmlentities($data[hostname], ENT_QUOTES); // CHANGE SYMBOLS INTO ENTITIES

//-----------------------------------------------------------------------------------------------------------+

    
if ($lgsl_hostname_to_ip) { $data[ip] = gethostbyname($data[ip]); } // CONVERT HOSTNAME TO IP
    
    
$lgsl_launch lgsl_get("launch"$data[ip], $data[port], $data[gametype]); // GET SOFTWARE LAUNCH LINK

//-----------------------------------------------------------------------------------------------------------+

    
$lgsl_stats_servers++;                       // COUNT VISIBLE NUMBER OF SERVERS
    
$lgsl_stats_players += $data[players];       // COUNT VISIBLE NUMBER OF PLAYERS
    
$lgsl_stats_maxplayers += $data[maxplayers]; // COUNT VISIBLE NUMBER OF SLOTS

//-----------------------------------------------------------------------------------------------------------+



//-----------------------------------------------------------------------------------------------------------+

//-----------------------------------------INSERT PLAYER INFORMATION INTO THE DATABASE-----------------------+

  //require_once("lgsl_protocol.php");
 //$data = lgsl_query($server_ip, $server_port, $server_type, "players");
  
$_GET[ip]   = $data[ip];
  
$_GET[port] = $data[port];
  
  
$get_ip   $_GET[ip];
  
$get_port $_GET[port];

//-----------------------------------------------------------------------------------------------------------+

  
unset($get_type);

  
$lines file(XOOPS_ROOT_PATH.'/modules/bf2query/lgsl/cachedips/lgsl_servers.txt');

  foreach (
$lines as $line)
  {
    if (!
trim($line)) { continue; } // SKIP BLANK LINES

    
$part        explode(":"$line);
    
$server_ip   trim($part[0]); // TRIM REMOVES
    
$server_port trim($part[1]); // ACCIDENTAL SPACES
    
$server_type trim($part[2]); // AND NEWLINE CHARACTERS
    
    
if ($server_ip == $get_ip && $server_port == $get_port)
    {
      
$get_type $server_type// GETS THE SERVER TYPE FROM THE LGSL_SERVERS.TXT
    
}
  }

  if (!
$get_type) { exit; } // PROTECT AGAINST THE LINK BEING ALTERED
  
//-----------------------------------------------------------------------------------------------------------+

  
$player_list lgsl_query($get_ip$get_port$get_type"players");
  
  
//if (!$player_list) { echo "<div style='text-align:center'>No Players or Server Not Responding</div></body></html>"; }
 
//-----------------------------------------------------------------------------------------------------------+

  
if (isset($player_list[1][score]) )  { $lgsl_showscore  1; }
  if (isset(
$player_list[1][deaths]))  { $lgsl_showdeaths 1; }
  if (isset(
$player_list[1][skill]))   { $lgsl_showskill  1; }
  if (isset(
$player_list[1][goal]))    { $lgsl_showgoal   1; }
  if (isset(
$player_list[1][honor]))   { $lgsl_showhonor  1; }
  if (isset(
$player_list[1][leader]))  { $lgsl_showleader 1; }
  if (isset(
$player_list[1][ping])  )  { $lgsl_showping   1; }
  if (isset(
$player_list[1][team])  )  { $lgsl_showteam   1; }
  if (isset(
$player_list[1][stats]) )  { $lgsl_showstats  1; }
  if (isset(
$player_list[1][time])  )  { $lgsl_showtime   1; }
  if (isset(
$player_list[1][skin]))    { $lgsl_showskin   1; }
//if (isset($player_list[1][keyhash])) { $lgsl_showhash   = 1; }
//if (isset($player_list[1][pid]))     { $lgsl_showpid    = 1; }


// --------------------------------------------------------+

// --------------------------------------------------------+
  
foreach ($player_list as $key=>$player)
  {  
    
$player[name] = htmlentities($player[name], ENT_QUOTES); // CONVERT SYMBOLS
    
                
$time=time();
                
$time $time+1;
                
$playername $player[name]; //<== VARIABLE FROM SERVER QUERY, LISTS EACH PLAYER IN AN ARRAY. 
                
$hostname $data[hostname];
                
$playerscore $player[score];
                
$playerdeaths $player[deaths];
                
$playerskill $player[skill];
                
$playergoal $player[goal];
                
$playerhonor $player[honor];
                
$playerleader $player[leader];
                
$playerping $player[ping];
                
$playerteam $player[team];
                
$playerstats $player[stats];
                
$playertime $player[time];
                
$playerskin $player[skin];
                
$playerhash $player[hash];
                
$playerpid $player[pid];
                
$gameserver_ip $data[ip];
                
$gameserver_mapname $data[mapname];
                
$q "SELECT * FROM ".$xoopsDB->prefix("bf2query_s_name")." WHERE s_ip='$gameserver_ip'";
                
$query_servers $xoopsDB->query($q) or die("I cannot connect to the database!");
                
$server $xoopsDB->fetchArray($query_servers);
                
$s_port $server['s_port'];
                
                
$gameserver_port $s_port;
                
/*
                $qps = "SELECT * FROM ".$xoopsDB->prefix("bf2query_g_pstats")." WHERE s_p_name='$playername'";
                $query_playerstats = $xoopsDB->query($qps) or die("I cannot connect to the database to find the playername!");
                $playerstats = $xoopsDB->fetchArray($query_playerstats);
                $s_p_id = $playerstats['s_p_id'];
                $s_p_pid = $playerstats['s_p_pid'];
                $s_p_name = $playerstats['s_p_name'];
                $s_p_score = (($playerstats['s_p_score'])+($playerscore));
                $s_p_kill = (($playerstats['s_p_kill'])+($playerskill));
                $s_p_deaths = (($playerstats['s_p_deaths'])+($playerdeaths));
                $s_p_ping = ((($playerstats['s_p_ping'])+($playerping))/2);
                $s_p_sname = $playerstats['s_p_sname'];
                $s_s_ip = $playerstats['s_s_ip'];
                $s_s_port = $playerstats['s_s_port'];
                $s_p_map = $playerstats['s_p_map'];
                
                if (mysql_num_rows($query_playerstats)==0) {
                @mysql_query("INSERT INTO ".$xoopsDB->prefix("bf2query_g_pstats")." SET s_p_id='$s_p_id', s_p_pid='$playerpid', s_p_name='$playername', s_p_score='$s_p_score', s_p_deaths='$s_p_deaths', s_p_ping='$s_p_ping', s_p_map='$gameserver_mapname', s_p_kill='$playerskill'") or die("Help I cant INSERT the player information");
                }else{
                @mysql_query("UPDATE ".$xoopsDB->prefix("bf2query_g_pstats")." SET s_p_id='$s_p_id', s_p_pid='$playerpid', s_p_name='$playername', s_p_score='$s_p_score', s_p_deaths='$s_p_deaths', s_p_ping='$s_p_ping', s_p_map='$s_p_map', s_p_kill='$s_p_kill' WHERE s_p_name='$playername'") or die("Help I cant UPDATE the player information");
                }
                */
                //$result = $xoopsDB->query($r) or die("");
                
$qp "SELECT * FROM ".$xoopsDB->prefix("bf2query_info")." WHERE pname='$playername'";
                
$query_players $xoopsDB->query($qp) or die("I cannot connect to the database to find the playername!");
                
$p_score = (($query_players['p_score'])+($playerscore));
                
$p_kill = (($query_players['p_skill'])+($playerskill));
                
$p_deaths = (($query_players['p_deaths'])+($playerdeaths));
                
$p_ping = ((($query_players['p_ping'])+($playerping))/2);
                
                if (
mysql_num_rows($query_players)==0) {
                
//@mysql_query("INSERT INTO ".$xoopsDB->prefix("bf2query_player_info")." SET s_time='$time', p_s_ip='$gameserver_ip', pname='$playername', p_s_name='$hostname', p_s_port='$gameserver_port', p_score='$playerscore', p_deaths='$playerdeaths', p_skill='$playerskill', p_goal='$playergoal', p_honor='$playerhonor', p_leader='$playerleader', p_ping='$playerping', p_team='$playerteam', p_stats='$playerstats', p_skin='$playerskin', p_hash='$playerhash', p_pid='$playerpid', p_s_time='$time'") or die("Help Im broke");
                //$xoopsDB->query($insert_players) or die("I cannot insert this data!");
                
@mysql_query("INSERT INTO ".$xoopsDB->prefix("bf2query_info")." SET s_time='$time', p_s_ip='$gameserver_ip', pname='$playername', p_s_name='$hostname', p_s_port='$gameserver_port', p_score='$playerscore', p_deaths='$playerdeaths', p_ping='$playerping', p_team='$playerteam', p_skill='$playerskill', p_pid='$playerpid', p_s_map='$gameserver_mapname'") or die("Help I cant insert the player information");
                
//echo "$player[name]<br> inserted";//USE THIS TO TEST FOR ERRORS
                /*
                //MAIL FUNCTION ++-----------------------------------USE THIS WISELY, BECAUSE IT SENDS AN EMAIL OUT FOR EVERY PLAYER INSERTED.
                $msg = "BF2QUERY PLAYER INSERTED n";
                $sender_name = "BF2QUERY";
                $sender_email = "noreply@bf2online.com";
                $msg .= "Sender's Name:t$sender_namen";
                $msg .= "Senders' Email:t$sender_emailn";
                $message = "The Player $playername has been inserted into the database.  They are currently playing on $hostname.";
                $msg .= "Message:t$messagenn";
                $to = "widowmaker@bf2online.com";
                $subject = "BF2QUERY PLAYER INSERTED";
                $mailheaders = "From: BF2Online BF2QUERY <> n";
                $mailheaders .= "Reply-To: $sender_emailnn";
                mail($to, $subject, $msg, $mailheaders);
                //END MAIL FUNCTION
                */
                
}else{
                @
mysql_query("UPDATE ".$xoopsDB->prefix("bf2query_info")." SET s_time='$time', p_s_ip='$gameserver_ip', pname='$playername', p_s_name='$hostname', p_s_port='$gameserver_port', p_score='$p_score', p_deaths='$p_deaths', p_ping='$p_ping', p_team='$playerteam', p_skill='$p_kill', p_pid='$playerpid', p_s_map='$gameserver_mapname' WHERE pname='$playername'") or die("Help I cant update the player info, something is very wrong!!");
                
//echo "$player[name]<br> updated";//USE THIS TO TEST FOR ERRORS
                /*
                //MAIL FUNCTION ++-----------------------------------USE THIS WISELY, BECAUSE IT SENDS AN EMAIL OUT FOR EVERY PLAYER UPDATED.
                $msg = "BF2QUERY PLAYER UPDATE n";
                $sender_name = "BF2QUERY";
                $sender_email = "noreply@bf2online.com";
                $msg .= "Sender's Name:t$sender_namen";
                $msg .= "Senders' Email:t$sender_emailn";
                $message = "The Player $playername has been updated.  They are currently playing on $hostname.";
                $msg .= "Message:t$messagenn";
                $to = "widowmaker@bf2online.com";
                $subject = "BF2QUERY PLAYER UPDATE";
                $mailheaders = "From: BF2Online BF2QUERY <> n";
                $mailheaders .= "Reply-To: $sender_emailnn";
                mail($to, $subject, $msg, $mailheaders);
                //END MAIL FUNCTION
                */
                
                
}
    
  }



  }
                
//MAIL FUNCTION ++-----------------------------------.
                
$msg "BF2QUERY PARSE SCRIPT STATUS n";
                
$sender_name "BF2QUERY";
                
$sender_email "noreply@bf2online.com";
                
$msg .= "Sender's Name:t$sender_namen";
                
$msg .= "Senders' Email:t$sender_emailn";
                
$message "The first 500 servers have been successfully parsed.  Please check the module for updated or inserted players.";
                
$msg .= "Message:t$messagenn";
                
$to "widowmaker@bf2online.com";
                
$subject "BF2QUERY SCRIPT STATUS";
                
$mailheaders "From: BF2Online BF2QUERY <> n";
                
$mailheaders .= "Reply-To: $sender_emailnn";
                
mail($to$subject$msg$mailheaders);
                
//END MAIL FUNCTION
echo "Script finished";//
?>



This is the script that parses the servers and inserts the players, if there are any, into the database.
Tim
www.tswn.com | www.bf2online.com | aquaria.tswn.com | www.bf2142online.org



69
talunceford
Re: BF2 Server Status Module...

It seems to work very very well.
Tim
www.tswn.com | www.bf2online.com | aquaria.tswn.com | www.bf2142online.org



70
talunceford
Re: BF2 Server Status Module...

Actually, I am using a heavily modified version of the code found on this guys site. www.greycube.com.
Tim
www.tswn.com | www.bf2online.com | aquaria.tswn.com | www.bf2142online.org




TopTop
« 1 ... 4 5 6 (7) 8 9 10 ... 36 »



Login

Who's Online

158 user(s) are online (73 user(s) are browsing Support Forums)


Members: 0


Guests: 158


more...

Donat-O-Meter

Stats
Goal: $100.00
Due Date: May 31
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $100.00
Make donations with PayPal!

Latest GitHub Commits