<?php /** * Class that handles additional info sent by ticket creation ingame. * If a user creates a ticket ingame, there are a lot of extra $_GET parameters being sent inside the http request that might have something todo with the ticket. * for example the OS the user uses or the processor of it's computer, but also the current client version etc. * This information can be stored and retrieved by using the ticket_info class. * @author Daan Janssens, mentored by Matthew Lagoe */ class Ticket_Info{ private $tInfoId; /**< The id of ticket_info entry */ private $ticket; /**< The ticket linked to this ticket_info entry */ private $shardid; /**< The shard id */ private $user_position; /**< The user's character position */ private $view_position; /**< The view position of the character */ private $client_version; /**< The client version in use */ private $patch_version; /**< The patch version in use */ private $server_tick; /**< The current server tick */ private $connect_state; /**< The connect state */ private $local_address; /**< local ip */ private $memory; /**< memory usage information */ private $os; /**< os information */ private $processor; /**< processor information */ private $cpu_id; /**< the cpu id */ private $cpu_mask; /**< the cpu mask */ private $ht; /**< tbh I have no idea :D */ private $nel3d; /**< the nel3d version */ private $user_id; /**< The users id */ ////////////////////////////////////////////Functions//////////////////////////////////////////////////// /** * create a ticket_info entry. * @param $info_array the info array (this can be the entire $_GET array being sent by the ingame browser) */ public static function create_Ticket_Info($info_array) { $ticket_info = new self(); $ticket_info->set($info_array); $ticket_info->create(); } /** * check if a specific ticket has extra info or not. * Not all tickets have extra info, only tickets made ingame do. This function checks if a specific ticket does have a ticket_info entry linked to it. * @param $ticket_id the id of the ticket that we want to query * @return true or false */ public static function TicketHasInfo($ticket_id) { $dbl = new DBLayer("lib"); //check if ticket is already assigned if( $dbl->select("`ticket_info`", array('ticket_id' => $ticket_id), "`Ticket` = :ticket_id")->rowCount() ){ return true; }else{ return false; } } ////////////////////////////////////////////Methods//////////////////////////////////////////////////// /** * A constructor. * Empty constructor */ public function __construct() { } /** * sets the object's attributes. * @param $values should be an array. */ public function set($values) { $this->setTicket($values['Ticket']); $this->setShardId($values['ShardId']); $this->setUser_Position($values['UserPosition']); $this->setView_Position($values['ViewPosition']); $this->setClient_Version($values['ClientVersion']); $this->setPatch_Version($values['PatchVersion']); $this->setServer_Tick($values['ServerTick']); $this->setConnect_State($values['ConnectState']); $this->setLocal_Address($values['LocalAddress']); $this->setMemory($values['Memory']); $this->setOS($values['OS']); $this->setProcessor($values['Processor']); $this->setCPUId($values['CPUID']); $this->setCPU_Mask($values['CpuMask']); $this->setHT($values['HT']); $this->setNel3D($values['NeL3D']); $this->setUser_Id($values['UserId']); } /** * loads the object's attributes by using a ticket_info id. * loads the object's attributes by giving a ticket_info's entry id. * @param $id the id of the ticket_info entry that should be loaded */ public function load_With_TInfoId( $id) { $dbl = new DBLayer("lib"); $statement = $dbl->select("ticket_info", array('id' => $id), "TInfoId=:id"); $row = $statement->fetch(); $this->set($row); } /** * loads the object's attributes by using a ticket's id. * loads the object's attributes by giving a ticket's entry id. * @param $id the id of the ticket, the ticket_info entry of that ticket should be loaded. */ public function load_With_Ticket( $id) { $dbl = new DBLayer("lib"); $statement = $dbl->select("ticket_info", array('id' => $id), "Ticket=:id"); $row = $statement->fetch(); $this->set($row); } /** * creates a new 'ticket_info' entry. * this method will use the object's attributes for creating a new 'ticket_info' entry in the database. */ public function create() { $dbl = new DBLayer("lib"); $values = Array('Ticket' => $this->getTicket(), 'ShardId' => $this->getShardId(), 'UserPosition' => $this->getUser_Position(), 'ViewPosition' => $this->getView_Position(), 'ClientVersion' => $this->getClient_Version(), 'PatchVersion' => $this->getPatch_Version(), 'ServerTick' => $this->getServer_Tick(), 'ConnectState' => $this->getConnect_State(), 'LocalAddress' => $this->getLocal_Address(), 'Memory' => $this->getMemory(), 'OS'=> $this->getOS(), 'Processor' => $this->getProcessor(), 'CPUID' => $this->getCPUId(), 'CpuMask' => $this->getCpu_Mask(), 'HT' => $this->getHT(), 'NeL3D' => $this->getNel3D(), 'UserId' => $this->getUser_Id()); $dbl->insert("ticket_info",$values); } ////////////////////////////////////////////Getters//////////////////////////////////////////////////// /** * get tInfoId attribute of the object. */ public function getTInfoId(){ return $this->tInfoId; } /** * get ticket attribute of the object. */ public function getTicket(){ return $this->ticket; } /** * get shardid attribute of the object. */ public function getShardId(){ return $this->shardid; } /** * get user_position attribute of the object. */ public function getUser_Position(){ return $this->user_position; } /** * get view_position attribute of the object. */ public function getView_Position(){ return $this->view_position; } /** * get client_version attribute of the object. */ public function getClient_Version(){ return $this->client_version; } /** * get patch_version attribute of the object. */ public function getPatch_Version(){ return $this->patch_version; } /** * get server_tick attribute of the object. */ public function getServer_Tick(){ return $this->server_tick; } /** * get connect_state attribute of the object. */ public function getConnect_State(){ return $this->connect_state; } /** * get local_address attribute of the object. */ public function getLocal_Address(){ return $this->local_address; } /** * get memory attribute of the object. */ public function getMemory(){ return $this->memory; } /** * get os attribute of the object. */ public function getOS(){ return $this->os; } /** * get processor attribute of the object. */ public function getProcessor(){ return $this->processor; } /** * get cpu_id attribute of the object. */ public function getCPUId(){ return $this->cpu_id; } /** * get cpu_mask attribute of the object. */ public function getCPU_Mask(){ return $this->cpu_mask; } /** * get ht attribute of the object. */ public function getHT(){ return $this->ht; } /** * get nel3d attribute of the object. */ public function getNel3D(){ return $this->nel3d; } /** * get user_id attribute of the object. */ public function getUser_Id(){ return $this->user_id; } ////////////////////////////////////////////Setters//////////////////////////////////////////////////// /** * set tInfoId attribute of the object. * @param $id integer id of ticket_info object itself */ public function setTInfoId($id){ $this->tInfoId = $id; } /** * set ticket attribute of the object. * @param $t integer id of the ticket linked to the info object */ public function setTicket($t){ $this->ticket = $t; } /** * set shardid attribute of the object. * @param $s (integer) shard id */ public function setShardId($s){ $this->shardid = $s; } /** * set user_position attribute of the object. * @param $u the users position */ public function setUser_Position($u){ $this->user_position = $u; } /** * set view_position attribute of the object. * @param $v the view position */ public function setView_Position($v){ $this->view_position = $v; } /** * set client_version attribute of the object. * @param $c client version number */ public function setClient_Version($c){ $this->client_version = $c; } /** * set patch_version attribute of the object. * @param $p patch version number */ public function setPatch_Version($p){ $this->patch_version = $p; } /** * set server_tick attribute of the object. * @param $s integer that resembles the server tick */ public function setServer_Tick($s){ $this->server_tick = $s; } /** * set connect_state attribute of the object. * @param $c string that defines the connect state. */ public function setConnect_State($c){ $this->connect_state = $c; } /** * set local_address attribute of the object. * @param $l local address */ public function setLocal_Address($l){ $this->local_address = $l; } /** * set memory attribute of the object. * @param $m memory usage */ public function setMemory($m){ $this->memory = $m; } /** * set os attribute of the object. * @param $o set os version information */ public function setOS($o){ $this->os = $o; } /** * set processor attribute of the object. * @param $p processor information */ public function setProcessor($p){ $this->processor = $p; } /** * set cpu_id attribute of the object. * @param $c cpu id information */ public function setCPUId($c){ $this->cpu_id = $c; } /** * set cpu_mask attribute of the object. * @param $c mask of the cpu */ public function setCPU_Mask($c){ $this->cpu_mask = $c; } /** * set ht attribute of the object. */ public function setHT($h){ $this->ht = $h; } /** * set nel3d attribute of the object. * @param $n version information about NeL3D */ public function setNel3D($n){ $this->nel3d = $n; } /** * set user_id attribute of the object. * @param $u the user_id. */ public function setUser_Id($u){ $this->user_id = $u; } }