khanat-opennel-code/code/web/private_php/ams/autoload/ticket_info.php

414 lines
No EOL
12 KiB
PHP

<?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->execute(" SELECT * FROM `ticket_info` WHERE `Ticket` = :ticket_id", array('ticket_id' => $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->execute("SELECT * FROM ticket_info WHERE TInfoId=:id", array('id' => $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->execute("SELECT * FROM ticket_info WHERE Ticket=:id", array('id' => $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");
$query = "INSERT INTO ticket_info ( Ticket, ShardId, UserPosition,ViewPosition, ClientVersion, PatchVersion,ServerTick, ConnectState, LocalAddress, Memory, OS,
Processor, CPUID, CpuMask, HT, NeL3D, UserId) VALUES ( :ticket, :shardid, :userposition, :viewposition, :clientversion, :patchversion, :servertick, :connectstate, :localaddress, :memory, :os, :processor, :cpuid, :cpu_mask, :ht, :nel3d, :user_id )";
$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(),
'cpu_mask' => $this->getCpu_Mask(), 'ht' => $this->getHT(), 'nel3d' => $this->getNel3D(), 'user_id' => $this->getUser_Id());
$dbl->execute($query, $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;
}
}