URL:
http://games.thasmo.coml/q3a/browser/?path=/server/1/
View File:
Serverbrowser
{$server.name}
{$server.address}
{$server.data}
{@No server settings found.}
{$setting.name}: {$setting.value}
{@A connection to the server couldn't be established.}
Record Class:
class GameserversRecord extends FARecord {
function GameserversRecord(&$dba, &$def, &$finder, &$model, $current = array()) {
$constructor = get_parent_class($this);
parent::$constructor($dba, $def, $finder, $model, $current);
$this->loadServer();
}
function getName() {
return $this->_data->get('sv_hostname');
}
function getData() {
return $this->_data->getRawData();
}
function getOnlinePlayers() {
return count($this->_data->getPlayers());
}
function getMaxPlayers() {
return $this->_data->get('sv_maxclients');
}
function getMod() {
return $this->_data->get('gamename');
}
function getMap() {
return $this->_data->get('mapname');
}
function getStatus() {
return (int)$this->_server->_status;
}
function getPlayers() {
return $this->_data->getPlayers();
}
function &getSettings() {
$settings = $this->_data->getSettings();
$buffer = array();
foreach($settings as $name => $value) {
$buffer[] = array('name' => $name, 'value' => $value);
}
return new FAArrayIterator($buffer);
}
function getNumSettings() {
return count($this->_data->getSettings());
}
function loadServer() {
$api = &new GameServerExtension;
$this->_server = &$api->load('q3');
$this->_server->setAddress($this->get('address'));
$this->_server->connect();
if($this->_server->getStatus())
$this->_data = $this->_server->getData();
}
}
?>
Controller Class:
'/:id_server/'
);
}
function getExtensions() {
return array('gameserver');
}
function index(&$reg, &$req, &$resp) {
$finder = &$this->getFinder('gameservers');
$gameserver = &$finder->find($req->get('id_server'));
$resp->assignRef('server', $gameserver);
$this->setView('server_view.html');
}
}
?>