Merged default.
This commit is contained in:
parent
55635e6905
commit
a1a11140bd
129 changed files with 14035 additions and 4961 deletions
|
@ -248,3 +248,5 @@ code/nel/tools/build_gamedata/processes/ai_wmap/ai_build_wmap.cfg
|
|||
code/nel/tools/build_gamedata/processes/sheets/sheets_packer.cfg
|
||||
code/nel/tools/build_gamedata/processes/rbank/build_rbank.cfg
|
||||
code/nel/tools/build_gamedata/processes/zone/debug_zone_dependencies.cfg
|
||||
code/web/public_php/config.php
|
||||
code/web/public_php/is_installed
|
||||
|
|
5
README.md
Normal file
5
README.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
Ryzom Core is the open-source project related to Ryzom Game. Written in C++, Ryzom Core contains the whole code (client, server, tools) used to make the commercial MMORPG Ryzom. Ryzom Core is a toolkit for the development of massively multiplayer online universes. It provides the base technologies and a set of development methodologies for the development of both client and server code.
|
||||
|
||||
|
||||
|
||||
Ryzom Core is open source and released under the terms of the GNU Affero General Public License 3.0 (GNU/AGPLv3) for the source code and the Creative Commons Attributions-ShareAlike 3.0 (CC-BY-SA) for the art assets. Which means you can create your own game using Ryzom Core, for more information on doing so check out Creating Your Own Game Using Ryzom Core.
|
|
@ -1353,7 +1353,7 @@ ECLIPSE_DOC_ID = org.doxygen.Project
|
|||
# The default value is: NO.
|
||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||
|
||||
DISABLE_INDEX = NO
|
||||
DISABLE_INDEX = YES
|
||||
|
||||
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
|
||||
# structure should be generated to display hierarchical information. If the tag
|
||||
|
@ -1370,7 +1370,7 @@ DISABLE_INDEX = NO
|
|||
# The default value is: NO.
|
||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||
|
||||
GENERATE_TREEVIEW = NO
|
||||
GENERATE_TREEVIEW = YES
|
||||
|
||||
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
|
||||
# doxygen will group on one line in the generated HTML documentation.
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
*/
|
||||
class Assigned{
|
||||
|
||||
private $user; /**< The id of the user being assigned */
|
||||
private $ticket; /**< The id of the ticket being assigned */
|
||||
|
||||
|
||||
private $user; /**< The id of the user being assigned */
|
||||
private $ticket; /**< The id of the ticket being assigned */
|
||||
|
||||
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* Assigns a ticket to a user or returns an error message.
|
||||
* It will first check if the ticket isn't already assigned, if not, it will create a new 'assigned' entry.
|
||||
|
@ -30,10 +30,10 @@ class Assigned{
|
|||
}else{
|
||||
return "ALREADY_ASSIGNED";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Unassign a ticket being coupled to a user or return an error message.
|
||||
* It will first check if the ticket is assigned, if this is indeed the case it will delete the 'assigned' entry.
|
||||
|
@ -52,9 +52,9 @@ class Assigned{
|
|||
}else{
|
||||
return "NOT_ASSIGNED";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the (external) id of the user assigned to a ticket
|
||||
* @param $ticket_id the Id of the ticket that's being queried
|
||||
|
@ -65,11 +65,11 @@ class Assigned{
|
|||
$statement = $dbl->execute("SELECT ticket_user.ExternId FROM `assigned` JOIN `ticket_user` ON assigned.User = ticket_user.TUserId WHERE `Ticket` = :ticket_id", Array('ticket_id' => $ticket_id));
|
||||
$user_id = $statement->fetch();
|
||||
return $user_id['ExternId'];
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if a ticket is already assigned (in case the user_id param is used, it will check if it's assigned to that user)
|
||||
* @param $ticket_id the Id of the ticket that's being queried
|
||||
|
@ -79,26 +79,26 @@ class Assigned{
|
|||
public static function isAssigned( $ticket_id, $user_id = 0) {
|
||||
$dbl = new DBLayer("lib");
|
||||
//check if ticket is already assigned
|
||||
|
||||
|
||||
if($user_id == 0 && $dbl->select("`assigned`", array('ticket_id' => $ticket_id), "`Ticket` = :ticket_id")->rowCount() ){
|
||||
return true;
|
||||
}else if( $dbl->select("`assigned`", array('ticket_id' => $ticket_id, 'user_id' => $user_id), "`Ticket` = :ticket_id and `User` = :user_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 of the form array('User' => user_id, 'Ticket' => ticket_id).
|
||||
|
@ -107,25 +107,25 @@ class Assigned{
|
|||
$this->setUser($values['User']);
|
||||
$this->setTicket($values['Ticket']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* creates a new 'assigned' entry.
|
||||
* this method will use the object's attributes for creating a new 'assigned' entry in the database.
|
||||
*/
|
||||
public function create() {
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->insert("`assigned`", Array('User' => $this->getUser(), 'Ticket' => $this->getTicket());
|
||||
$dbl->insert("`assigned`", Array('User' => $this->getUser(), 'Ticket' => $this->getTicket()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* deletes an existing 'assigned' entry.
|
||||
* this method will use the object's attributes for deleting an existing 'assigned' entry in the database.
|
||||
*/
|
||||
public function delete() {
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->delete("`assigned`", array('user_id' => $this->getUser() ,'ticket_id' => $this->getTicket(), "`User` = :user_id and `Ticket` = :ticket_id");
|
||||
$dbl->delete("`assigned`", array('user_id' => $this->getUser() ,'ticket_id' => $this->getTicket()), "`User` = :user_id and `Ticket` = :ticket_id");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -139,25 +139,25 @@ class Assigned{
|
|||
$row = $statement->fetch();
|
||||
$this->set($row);
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* get user attribute of the object.
|
||||
*/
|
||||
public function getUser(){
|
||||
return $this->user;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* get ticket attribute of the object.
|
||||
*/
|
||||
public function getTicket(){
|
||||
return $this->ticket;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
|
@ -167,7 +167,7 @@ class Assigned{
|
|||
public function setUser($u){
|
||||
$this->user = $u;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set ticket attribute of the object.
|
||||
* @param $t integer id of the ticket
|
||||
|
@ -175,6 +175,6 @@ class Assigned{
|
|||
public function setTicket($t){
|
||||
$this->ticket = $t;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,274 +1,258 @@
|
|||
<?php
|
||||
/**
|
||||
* Handles the database connections. It uses PDO to connect to the different databases. It will use the argument of the constructor to setup a connection to the database
|
||||
* Handles the database connections. It uses PDO to connect to the different databases. It will use the argument of the constructor to setup a connection to the database
|
||||
* with the matching entry in the $cfg global variable.
|
||||
*
|
||||
*
|
||||
* --> First create an object of dblayer --> $db = new DBLayer('short database name used in config')
|
||||
*
|
||||
* --> Insert --> $db->insert( $tb_name, $data )
|
||||
* $tb_name = table name in which we want to insert data
|
||||
* $data = array of data that needs to be inserted in format('fieldname' => $value) where fieldname must be a field in that table.
|
||||
*
|
||||
* --> select --> $db->select( $tb_name, $data, $where )
|
||||
* $tb_name = table name which we want to select
|
||||
* $data = array of data which is then required in WHERE clause in format array('fieldname'=>$value) fieldname must be a field in that table.
|
||||
* $where = string in format ('fieldname=:fieldname') where :fieldname takes it's value from $data array.
|
||||
*
|
||||
* --> update --> $db->update( $tb_name, $data, $where )
|
||||
* $tb_name = table name which we want to update
|
||||
* $data = array of data which contains the filelds that need to be updated with their values in the format('fieldname' => $value,...) where fieldname must be a field in that table.
|
||||
* $where = string contains the filename with a value at that field in the format ('fieldname = $value') where fieldname must be a field in that table and $value is value respect to that field.
|
||||
*
|
||||
* --> delete --> $db->delete( $tb_name, $data, $where )
|
||||
* $tb_name = table name where we want to delete.
|
||||
* $data = array of data which is then required in WHERE clause in format array('fieldname'=> $value) where fieldname must be a field in that table.
|
||||
* $where = string in format ('fieldname=:fieldname') where :fieldname takes it's value from $data array.
|
||||
*
|
||||
*
|
||||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*
|
||||
*
|
||||
* --> Insert --> $db->insert( $tb_name, $data )
|
||||
* $tb_name = table name in which we want to insert data
|
||||
* $data = array of data that needs to be inserted in format('fieldname' => $value) where fieldname must be a field in that table.
|
||||
*
|
||||
* --> select --> $db->select( $tb_name, $data, $where )
|
||||
* $tb_name = table name which we want to select
|
||||
* $data = array of data which is then required in WHERE clause in format array('fieldname'=>$value) fieldname must be a field in that table.
|
||||
* $where = string in format ('fieldname=:fieldname') where :fieldname takes it's value from $data array.
|
||||
*
|
||||
* --> update --> $db->update( $tb_name, $data, $where )
|
||||
* $tb_name = table name which we want to update
|
||||
* $data = array of data which contains the filelds that need to be updated with their values in the format('fieldname' => $value,...) where fieldname must be a field in that table.
|
||||
* $where = string contains the filename with a value at that field in the format ('fieldname = $value') where fieldname must be a field in that table and $value is value respect to that field.
|
||||
*
|
||||
* --> delete --> $db->delete( $tb_name, $data, $where )
|
||||
* $tb_name = table name where we want to delete.
|
||||
* $data = array of data which is then required in WHERE clause in format array('fieldname'=> $value) where fieldname must be a field in that table.
|
||||
* $where = string in format ('fieldname=:fieldname') where :fieldname takes it's value from $data array.
|
||||
*
|
||||
*
|
||||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*
|
||||
*/
|
||||
|
||||
// $PDOCache = array();
|
||||
|
||||
class DBLayer {
|
||||
|
||||
private $PDO;
|
||||
/**
|
||||
* The PDO object, instantiated by the constructor
|
||||
*/
|
||||
|
||||
/**
|
||||
* The constructor.
|
||||
* Instantiates the PDO object attribute by connecting to the arguments matching database(the db info is stored in the $cfg global var)
|
||||
*
|
||||
* @param $db String, the name of the databases entry in the $cfg global var.
|
||||
* @param $dbn String, the name of the databases entry in the $cfg global var if $db referenced to an action(install etc).
|
||||
*/
|
||||
function __construct( $db, $dbn = null )
|
||||
{
|
||||
if ( $db != "install" ) {
|
||||
|
||||
global $cfg;
|
||||
$dsn = "mysql:";
|
||||
$dsn .= "host=" . $cfg['db'][$db]['host'] . ";";
|
||||
$dsn .= "dbname=" . $cfg['db'][$db]['name'] . ";";
|
||||
$dsn .= "port=" . $cfg['db'][$db]['port'] . ";";
|
||||
|
||||
$opt = array(
|
||||
PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION,
|
||||
PDO :: ATTR_DEFAULT_FETCH_MODE => PDO :: FETCH_ASSOC
|
||||
);
|
||||
$this -> PDO = new PDO( $dsn, $cfg['db'][$db]['user'], $cfg['db'][$db]['pass'], $opt );
|
||||
} else {
|
||||
global $cfg;
|
||||
$dsn = "mysql:";
|
||||
$dsn .= "host=" . $cfg['db'][$dbn]['host'] . ";";
|
||||
$dsn .= "port=" . $cfg['db'][$dbn]['port'] . ";";
|
||||
|
||||
$opt = array(
|
||||
PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION,
|
||||
PDO :: ATTR_DEFAULT_FETCH_MODE => PDO :: FETCH_ASSOC
|
||||
);
|
||||
$this -> PDO = new PDO( $dsn, $_POST['Username'], $_POST['Password'], $opt );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute a query that doesn't have any parameters.
|
||||
*
|
||||
* @param $query the mysql query.
|
||||
* @return returns a PDOStatement object.
|
||||
*/
|
||||
public function executeWithoutParams( $query ) {
|
||||
$statement = $this -> PDO -> prepare( $query );
|
||||
$statement -> execute();
|
||||
return $statement;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute a query that has parameters.
|
||||
*
|
||||
* @param $query the mysql query.
|
||||
* @param $params the parameters that are being used by the query.
|
||||
* @return returns a PDOStatement object.
|
||||
*/
|
||||
public function execute( $query, $params ) {
|
||||
$statement = $this -> PDO -> prepare( $query );
|
||||
$statement -> execute( $params );
|
||||
return $statement;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert function which returns id of the inserting field.
|
||||
*
|
||||
* @param $tb_name table name where we want to insert data.
|
||||
* @param $data the parameters that are being inserted into table.
|
||||
* @return returns the id of the last inserted element.
|
||||
*/
|
||||
public function executeReturnId( $tb_name, $data ) {
|
||||
$field_values = ':' . implode( ',:', array_keys( $data ) );
|
||||
$field_options = implode( ',', array_keys( $data ) );
|
||||
try {
|
||||
$sth = $this -> PDO -> prepare( "INSERT INTO $tb_name ($field_options) VALUE ($field_values)" );
|
||||
foreach ( $data as $key => $value )
|
||||
{
|
||||
$sth -> bindValue( ":$key", $value );
|
||||
}
|
||||
$this -> PDO -> beginTransaction();
|
||||
$sth -> execute();
|
||||
$lastId = $this -> PDO -> lastInsertId();
|
||||
$this -> PDO -> commit();
|
||||
}
|
||||
catch ( Exception $e )
|
||||
{
|
||||
// for rolling back the changes during transaction
|
||||
$this -> PDO -> rollBack();
|
||||
throw new Exception( "error in inseting" );
|
||||
}
|
||||
return $lastId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select function using prepared statement.
|
||||
* For selecting particular fields.
|
||||
*
|
||||
* @param string $param field to select, can be multiple fields.
|
||||
* @param string $tb_name Table Name to Select.
|
||||
* @param array $data array of data to be used in WHERE clause in format('fieldname'=>$value). 'fieldname' must be a field in that table.
|
||||
* @param string $where where to select.
|
||||
* @return statement object.
|
||||
*/
|
||||
public function selectWithParameter( $param, $tb_name, $data, $where )
|
||||
{
|
||||
try {
|
||||
$sth = $this -> PDO -> prepare( "SELECT $param FROM $tb_name WHERE $where" );
|
||||
$this -> PDO -> beginTransaction();
|
||||
$sth -> execute( $data );
|
||||
$this -> PDO -> commit();
|
||||
}
|
||||
catch( Exception $e )
|
||||
{
|
||||
$this -> PDO -> rollBack();
|
||||
throw new Exception( "error selection" );
|
||||
return false;
|
||||
}
|
||||
return $sth;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select function using prepared statement.
|
||||
* For selecting all fields in a table.
|
||||
*
|
||||
* @param string $tb_name Table Name to Select.
|
||||
* @param array $data array of data to be used with WHERE part in format('fieldname'=>$value,...). 'fieldname' must be a field in that table.
|
||||
* @param string $where where to select in format('fieldname=:fieldname' AND ...).
|
||||
* @return statement object.
|
||||
*/
|
||||
public function select( $tb_name, $data , $where )
|
||||
{
|
||||
try {
|
||||
$sth = $this -> PDO -> prepare( "SELECT * FROM $tb_name WHERE $where" );
|
||||
$this -> PDO -> beginTransaction();
|
||||
$sth -> execute( $data );
|
||||
$this -> PDO -> commit();
|
||||
}
|
||||
catch( Exception $e )
|
||||
{
|
||||
$this -> PDO -> rollBack();
|
||||
throw new Exception( "error selection" );
|
||||
return false;
|
||||
}
|
||||
return $sth;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update function with prepared statement.
|
||||
*
|
||||
* @param string $tb_name name of the table on which operation to be performed.
|
||||
* @param array $data array of data in format('fieldname' => $value,...).Here, only those fields must be stored which needs to be updated.
|
||||
* @param string $where where part in format ('fieldname'= $value AND ...). 'fieldname' must be a field in that table.
|
||||
* @throws Exception error in updating.
|
||||
*/
|
||||
public function update( $tb_name, $data, $where )
|
||||
{
|
||||
$field_option_values = null;
|
||||
foreach ( $data as $key => $value )
|
||||
{
|
||||
$field_option_values .= ",$key" . '=:' . $key;
|
||||
}
|
||||
$field_option_values = ltrim( $field_option_values, ',' );
|
||||
try {
|
||||
$sth = $this -> PDO -> prepare( "UPDATE $tb_name SET $field_option_values WHERE $where " );
|
||||
|
||||
foreach ( $data as $key => $value )
|
||||
{
|
||||
$sth -> bindValue( ":$key", $value );
|
||||
}
|
||||
$this -> PDO -> beginTransaction();
|
||||
$sth -> execute();
|
||||
$this -> PDO -> commit();
|
||||
}
|
||||
catch ( Exception $e )
|
||||
{
|
||||
$this -> PDO -> rollBack();
|
||||
throw new Exception( 'error in updating' );
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* insert function using prepared statements.
|
||||
*
|
||||
* @param string $tb_name Name of the table on which operation to be performed.
|
||||
* @param array $data array of data to insert in format('fieldname' => $value,....). 'fieldname' must be a field in that table.
|
||||
* @throws error in inserting.
|
||||
*/
|
||||
public function insert( $tb_name, $data )
|
||||
{
|
||||
$field_values = ':' . implode( ',:', array_keys( $data ) );
|
||||
$field_options = implode( ',', array_keys( $data ) );
|
||||
try {
|
||||
$sth = $this -> PDO -> prepare( "INSERT INTO $tb_name ($field_options) VALUE ($field_values)" );
|
||||
foreach ( $data as $key => $value )
|
||||
{
|
||||
|
||||
$sth -> bindValue( ":$key", $value );
|
||||
}
|
||||
$this -> PDO -> beginTransaction();
|
||||
// execution
|
||||
$sth -> execute();
|
||||
$this -> PDO -> commit();
|
||||
|
||||
}
|
||||
catch ( Exception $e )
|
||||
{
|
||||
// for rolling back the changes during transaction
|
||||
$this -> PDO -> rollBack();
|
||||
throw new Exception( "error in inserting" );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete database entery using prepared statement.
|
||||
*
|
||||
* @param string $tb_name table name on which operations to be performed.
|
||||
* @param $data array with values in the format('fieldname'=> $value,...). 'fieldname' must be a field in that table.
|
||||
* @param string $where condition based on $data array in the format('fieldname=:fieldname' AND ...).
|
||||
* @throws error in deleting.
|
||||
*/
|
||||
public function delete( $tb_name, $data, $where )
|
||||
{
|
||||
try {
|
||||
$sth = $this -> PDO -> prepare( "DELETE FROM $tb_name WHERE $where" );
|
||||
$this -> PDO -> beginTransaction();
|
||||
$sth -> execute( $data );
|
||||
$this -> PDO -> commit();
|
||||
}
|
||||
catch ( Exception $e )
|
||||
{
|
||||
$this -> PDO -> rollBack();
|
||||
throw new Exception( "error in deleting" );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private $PDO;
|
||||
// private $host;
|
||||
// private $dbname;
|
||||
|
||||
/**
|
||||
* The PDO object, instantiated by the constructor
|
||||
*/
|
||||
|
||||
/**
|
||||
* The constructor.
|
||||
* Instantiates the PDO object attribute by connecting to the arguments matching database(the db info is stored in the $cfg global var)
|
||||
*
|
||||
* @param $db String, the name of the databases entry in the $cfg global var.
|
||||
* @param $dbn String, the name of the databases entry in the $cfg global var if $db referenced to an action(install etc).
|
||||
*/
|
||||
function __construct($db, $dbn = null)
|
||||
{
|
||||
global $cfg;
|
||||
// $this->host = $cfg['db'][$db]['host'];
|
||||
// $this->dbname = $cfg['db'][$db]['name'];
|
||||
/*global $PDOCache;
|
||||
if (isset($PDOCache[$this->host])) {
|
||||
$this->PDO = $PDOCache[$this->host]['pdo'];
|
||||
} else {*/
|
||||
$dsn = "mysql:";
|
||||
$dsn .= "host=" . $cfg['db'][$db]['host'] . ";";
|
||||
$dsn .= "dbname=" . $cfg['db'][$db]['name'] . ";"; // Comment this out when using the cache
|
||||
$dsn .= "port=" . $cfg['db'][$db]['port'] . ";";
|
||||
|
||||
$opt = array(
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||
PDO::ATTR_PERSISTENT => true
|
||||
);
|
||||
$this->PDO = new PDO($dsn, $cfg['db'][$db]['user'], $cfg['db'][$db]['pass'], $opt);
|
||||
/* $PDOCache[$this->host] = array();
|
||||
$PDOCache[$this->host]['pdo'] = $this->PDO;
|
||||
$PDOCache[$this->host]['use'] = $this->dbname;
|
||||
*/ //$this->PDO->query('USE ' . $this->dbname . ';'); // FIXME safety
|
||||
/*}*/
|
||||
}
|
||||
|
||||
function __destruct() {
|
||||
$this->PDO = NULL;
|
||||
}
|
||||
|
||||
function useDb() {
|
||||
/*global $PDOCache;
|
||||
if ($PDOCache[$this->host]['use'] != $this->dbname) {
|
||||
$PDOCache[$this->host]['use'] = $this->dbname;
|
||||
$this->PDO->query('USE ' . $this->dbname . ';'); // FIXME safety
|
||||
}*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute a query that doesn't have any parameters.
|
||||
*
|
||||
* @param $query the mysql query.
|
||||
* @return returns a PDOStatement object.
|
||||
*/
|
||||
public function executeWithoutParams($query) {
|
||||
$this->useDb();
|
||||
$statement = $this->PDO->prepare($query);
|
||||
$statement->execute();
|
||||
return $statement;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute a query that has parameters.
|
||||
*
|
||||
* @param $query the mysql query.
|
||||
* @param $params the parameters that are being used by the query.
|
||||
* @return returns a PDOStatement object.
|
||||
*/
|
||||
public function execute( $query, $params ) {
|
||||
$this->useDb();
|
||||
$statement = $this -> PDO -> prepare( $query );
|
||||
$statement -> execute( $params );
|
||||
return $statement;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert function which returns id of the inserting field.
|
||||
*
|
||||
* @param $tb_name table name where we want to insert data.
|
||||
* @param $data the parameters that are being inserted into table.
|
||||
* @return returns the id of the last inserted element.
|
||||
*/
|
||||
public function executeReturnId($tb_name, $data, $datafunc = array()) {
|
||||
$this->useDb();
|
||||
$field_options = implode(',', array_merge(array_keys($data), array_keys($datafunc)));
|
||||
$field_values = implode(',', array_merge(array(':' . implode(',:', array_keys($data))), array_values($datafunc)));
|
||||
try {
|
||||
$sth = $this -> PDO -> prepare( "INSERT INTO $tb_name ($field_options) VALUE ($field_values)" );
|
||||
foreach ($data as $key => $value) {
|
||||
$sth->bindValue( ":$key", $value );
|
||||
}
|
||||
$sth->execute();
|
||||
$lastId = $this->PDO->lastInsertId();
|
||||
}
|
||||
catch (Exception $e) {
|
||||
throw $e; // new Exception( "error in inseting" );
|
||||
}
|
||||
return $lastId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select function using prepared statement.
|
||||
* For selecting particular fields.
|
||||
*
|
||||
* @param string $param field to select, can be multiple fields.
|
||||
* @param string $tb_name Table Name to Select.
|
||||
* @param array $data array of data to be used in WHERE clause in format('fieldname'=>$value). 'fieldname' must be a field in that table.
|
||||
* @param string $where where to select.
|
||||
* @return statement object.
|
||||
*/
|
||||
public function selectWithParameter( $param, $tb_name, $data, $where ) {
|
||||
$this->useDb();
|
||||
try {
|
||||
$sth = $this->PDO->prepare("SELECT $param FROM $tb_name WHERE $where");
|
||||
$sth->execute($data);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
throw $e; // new Exception( "error selection" );
|
||||
return false;
|
||||
}
|
||||
return $sth;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select function using prepared statement.
|
||||
* For selecting all fields in a table.
|
||||
*
|
||||
* @param string $tb_name Table Name to Select.
|
||||
* @param array $data array of data to be used with WHERE part in format('fieldname'=>$value,...). 'fieldname' must be a field in that table.
|
||||
* @param string $where where to select in format('fieldname=:fieldname' AND ...).
|
||||
* @return statement object.
|
||||
*/
|
||||
public function select($tb_name, $data , $where) {
|
||||
$this->useDb();
|
||||
try {
|
||||
$sth = $this->PDO->prepare("SELECT * FROM $tb_name WHERE $where");
|
||||
$sth->execute( $data );
|
||||
}
|
||||
catch (Exception $e) {
|
||||
throw $e; // new Exception( "error selection" );
|
||||
return false;
|
||||
}
|
||||
return $sth;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update function with prepared statement.
|
||||
*
|
||||
* @param string $tb_name name of the table on which operation to be performed.
|
||||
* @param array $data array of data in format('fieldname' => $value,...).Here, only those fields must be stored which needs to be updated.
|
||||
* @param string $where where part in format ('fieldname'= $value AND ...). 'fieldname' must be a field in that table.
|
||||
* @throws Exception error in updating.
|
||||
*/
|
||||
public function update($tb_name, $data, $where) {
|
||||
$this->useDb();
|
||||
$field_option_values = null;
|
||||
foreach ( $data as $key => $value ) {
|
||||
$field_option_values .= ",$key" . '=:' . $key;
|
||||
}
|
||||
$field_option_values = ltrim($field_option_values, ',');
|
||||
try {
|
||||
$sth = $this->PDO->prepare("UPDATE $tb_name SET $field_option_values WHERE $where ");
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
$sth->bindValue(":$key", $value);
|
||||
}
|
||||
$sth->execute();
|
||||
}
|
||||
catch (Exception $e) {
|
||||
throw $e; // new Exception( 'error in updating' );
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* insert function using prepared statements.
|
||||
*
|
||||
* @param string $tb_name Name of the table on which operation to be performed.
|
||||
* @param array $data array of data to insert in format('fieldname' => $value,....). 'fieldname' must be a field in that table.
|
||||
* @throws error in inserting.
|
||||
*/
|
||||
public function insert($tb_name, $data, $datafunc = array()) {
|
||||
$this->useDb();
|
||||
$field_options = '`'.implode('`,`', array_merge(array_keys($data), array_keys($datafunc))).'`';
|
||||
$field_values = implode(',', array_merge(array(':' . implode(',:', array_keys($data))), array_values($datafunc)));
|
||||
try {
|
||||
$sth = $this->PDO->prepare("INSERT INTO $tb_name ($field_options) VALUE ($field_values)");
|
||||
foreach ($data as $key => $value) {
|
||||
$sth->bindValue(":$key", $value);
|
||||
}
|
||||
$sth->execute();
|
||||
}
|
||||
catch (Exception $e) {
|
||||
throw $e; // new Exception("error in inserting");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete database entery using prepared statement.
|
||||
*
|
||||
* @param string $tb_name table name on which operations to be performed.
|
||||
* @param $data array with values in the format('fieldname'=> $value,...). 'fieldname' must be a field in that table.
|
||||
* @param string $where condition based on $data array in the format('fieldname=:fieldname' AND ...).
|
||||
* @throws error in deleting.
|
||||
*/
|
||||
public function delete( $tb_name, $data, $where ) {
|
||||
$this->useDb();
|
||||
try {
|
||||
$sth = $this->PDO->prepare("DELETE FROM $tb_name WHERE $where");
|
||||
$sth->execute($data);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
throw $e; // new Exception( "error in deleting" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,16 +3,16 @@
|
|||
* Handles the forwarding of a ticket to a support_group. This is being used to transfer tickets to different groups (eg Developers, Website-Team, SupportGroup etc..)
|
||||
* The idea is that someone can easily forward a ticket to a group and by doing that, the moderators that are in that group will receive the ticket in their todo queue.
|
||||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*
|
||||
*
|
||||
*/
|
||||
class Forwarded{
|
||||
|
||||
private $group; /**< The id of the group to which the ticket is being forwarded */
|
||||
private $ticket; /**< The id of the ticket being forwarded */
|
||||
|
||||
|
||||
private $group; /**< The id of the group to which the ticket is being forwarded */
|
||||
private $ticket; /**< The id of the ticket being forwarded */
|
||||
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Forward a ticket to a group, also removes the previous group where it was forwarded to.
|
||||
* It will first check if the ticket is already forwarded, if that's the case, it will delete that entry.
|
||||
|
@ -32,10 +32,10 @@ class Forwarded{
|
|||
$forward->set(array('Group' => $group_id, 'Ticket' => $ticket_id));
|
||||
$forward->create();
|
||||
return "SUCCESS_FORWARDED";
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* get the id of the group a ticket is forwarded to.
|
||||
* @param $ticket_id the id of the ticket.
|
||||
|
@ -46,8 +46,8 @@ class Forwarded{
|
|||
$forw->load($ticket_id);
|
||||
return $forw->getGroup();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* check if the ticket is forwarded
|
||||
* @param $ticket_id the id of the ticket.
|
||||
|
@ -59,21 +59,21 @@ class Forwarded{
|
|||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* A constructor.
|
||||
* Empty constructor
|
||||
*/
|
||||
public function __construct() {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* sets the object's attributes.
|
||||
* @param $values should be an array of the form array('Group' => group_id, 'Ticket' => ticket_id).
|
||||
|
@ -82,8 +82,8 @@ class Forwarded{
|
|||
$this->setGroup($values['Group']);
|
||||
$this->setTicket($values['Ticket']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* creates a new 'forwarded' entry.
|
||||
* this method will use the object's attributes for creating a new 'forwarded' entry in the database.
|
||||
|
@ -92,15 +92,15 @@ class Forwarded{
|
|||
$dbl = new DBLayer("lib");
|
||||
$dbl->insert("`forwarded`", Array('Group' => $this->getGroup(), 'Ticket' => $this->getTicket()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* deletes an existing 'forwarded' entry.
|
||||
* this method will use the object's attributes for deleting an existing 'forwarded' entry in the database.
|
||||
*/
|
||||
public function delete() {
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->delete("`forwarded`", array('group_id' => $this->getGroup() ,'ticket_id' => $this->getTicket(), "`Group` = :group_id and `Ticket` = :ticket_id");
|
||||
$dbl->delete("`forwarded`", array('group_id' => $this->getGroup() ,'ticket_id' => $this->getTicket(), "`Group` = :group_id and `Ticket` = :ticket_id"));
|
||||
}
|
||||
|
||||
|
||||
|
@ -115,24 +115,24 @@ class Forwarded{
|
|||
$row = $statement->fetch();
|
||||
$this->set($row);
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* get group attribute of the object.
|
||||
*/
|
||||
public function getGroup(){
|
||||
return $this->group;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get ticket attribute of the object.
|
||||
*/
|
||||
public function getTicket(){
|
||||
return $this->ticket;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
|
@ -142,7 +142,7 @@ class Forwarded{
|
|||
public function setGroup($g){
|
||||
$this->group = $g;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set ticket attribute of the object.
|
||||
* @param $t integer id of the ticket
|
||||
|
@ -150,6 +150,6 @@ class Forwarded{
|
|||
public function setTicket($t){
|
||||
$this->ticket = $t;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
<?php
|
||||
/**
|
||||
* Helper class for more site specific functions.
|
||||
*
|
||||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*
|
||||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
class Helpers {
|
||||
|
||||
|
||||
/**
|
||||
* workhorse of the website, it loads the template and shows it or returns th html.
|
||||
* it uses smarty to load the $template, but before displaying the template it will pass the $vars to smarty. Also based on your language settings a matching
|
||||
* array of words & sentences for that page will be loaded. In case the $returnHTML parameter is set to true, it will return the html instead of displaying the template.
|
||||
*
|
||||
*
|
||||
* @param $template the name of the template(page) that we want to load.
|
||||
* @param $vars an array of variables that should be loaded by smarty before displaying or returning the html.
|
||||
* @param $returnHTML (default=false) if set to true, the html that should have been displayed, will be returned.
|
||||
|
@ -25,7 +25,7 @@ class Helpers {
|
|||
// define('SMARTY_SPL_AUTOLOAD',1);
|
||||
require_once $AMS_LIB . '/smarty/libs/Smarty.class.php';
|
||||
spl_autoload_register( '__autoload' );
|
||||
|
||||
|
||||
$smarty = new Smarty;
|
||||
$smarty -> setCompileDir( $SITEBASE . '/templates_c/' );
|
||||
$smarty -> setCacheDir( $SITEBASE . '/cache/' );
|
||||
|
@ -35,11 +35,16 @@ class Helpers {
|
|||
// caching must be disabled for multi-language support
|
||||
$smarty -> caching = false;
|
||||
$smarty -> cache_lifetime = 5;
|
||||
|
||||
|
||||
if (function_exists('apc_cache_info')) {
|
||||
// production
|
||||
$smarty->compile_check = false;
|
||||
}
|
||||
|
||||
// needed by smarty.
|
||||
helpers :: create_folders ();
|
||||
global $FORCE_INGAME;
|
||||
|
||||
|
||||
// if ingame, then use the ingame templates
|
||||
if ( helpers :: check_if_game_client() or $FORCE_INGAME ) {
|
||||
$smarty -> template_dir = $AMS_LIB . '/ingame_templates/';
|
||||
|
@ -47,29 +52,29 @@ class Helpers {
|
|||
$variables = parse_ini_file( $AMS_LIB . '/configs/ingame_layout.ini', true );
|
||||
foreach ( $variables[$INGAME_LAYOUT] as $key => $value ) {
|
||||
$smarty -> assign( $key, $value );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$smarty -> template_dir = $SITEBASE . '/templates/';
|
||||
$smarty -> setConfigDir( $SITEBASE . '/configs' );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach ( $vars as $key => $value ) {
|
||||
$smarty -> assign( $key, $value );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// load page specific variables that are language dependent
|
||||
$variables = Helpers :: handle_language();
|
||||
if ( $template != 'layout_plugin' )
|
||||
{
|
||||
foreach ( $variables[$template] as $key => $value ) {
|
||||
$smarty -> assign( $key, $value );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// load ams content variables that are language dependent
|
||||
foreach ( $variables['ams_content'] as $key => $value ) {
|
||||
$smarty -> assign( $key, $value );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//load ams content variables that are language dependent
|
||||
foreach ( $variables['ams_content'] as $key => $value){
|
||||
$smarty -> assign( $key, $value);
|
||||
|
@ -84,20 +89,20 @@ class Helpers {
|
|||
$inherited = "extends:layout_user.tpl|";
|
||||
} else {
|
||||
$inherited = "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// if $returnHTML is set to true, return the html by fetching the template else display the template.
|
||||
if ( $returnHTML == true ) {
|
||||
return $smarty -> fetch( $inherited . $template . '.tpl' );
|
||||
} else {
|
||||
$smarty -> display( $inherited . $template . '.tpl' );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* creates the folders that are needed for smarty.
|
||||
*
|
||||
*
|
||||
* @todo for the drupal module it might be possible that drupal_mkdir needs to be used instead of mkdir, also this should be in the install.php instead.
|
||||
*/
|
||||
static public function create_folders() {
|
||||
|
@ -112,19 +117,19 @@ class Helpers {
|
|||
$SITEBASE . '/configs'
|
||||
);
|
||||
foreach ( $arr as &$value ) {
|
||||
|
||||
|
||||
if ( !file_exists( $value ) ) {
|
||||
print( $value );
|
||||
mkdir( $value );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* check if the http request is sent ingame or not.
|
||||
*
|
||||
*
|
||||
* @return returns true in case it's sent ingame, else false is returned.
|
||||
*/
|
||||
static public function check_if_game_client()
|
||||
|
@ -135,37 +140,37 @@ class Helpers {
|
|||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Handles the language specific aspect.
|
||||
* The language can be changed by setting the $_GET['Language'] & $_GET['setLang'] together. This will also change the language entry of the user in the db.
|
||||
* Cookies are also being used in case the user isn't logged in.
|
||||
*
|
||||
*
|
||||
* @return returns the parsed content of the language .ini file related to the users language setting.
|
||||
*/
|
||||
static public function handle_language() {
|
||||
global $DEFAULT_LANGUAGE;
|
||||
global $AMS_TRANS;
|
||||
|
||||
|
||||
// if user wants to change the language
|
||||
if ( isset( $_GET['Language'] ) && isset( $_GET['setLang'] ) ) {
|
||||
// The ingame client sometimes sends full words, derive those!
|
||||
switch ( $_GET['Language'] ) {
|
||||
|
||||
|
||||
case "English":
|
||||
$lang = "en";
|
||||
break;
|
||||
|
||||
|
||||
case "French":
|
||||
$lang = "fr";
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
$lang = $_GET['Language'];
|
||||
}
|
||||
}
|
||||
// if the file exists en the setLang = true
|
||||
if ( file_exists( $AMS_TRANS . '/' . $lang . '.ini' ) && $_GET['setLang'] == "true" ) {
|
||||
// set a cookie & session var and incase logged in write it to the db!
|
||||
|
@ -173,10 +178,10 @@ class Helpers {
|
|||
$_SESSION['Language'] = $lang;
|
||||
if ( WebUsers :: isLoggedIn() ) {
|
||||
WebUsers :: setLanguage( $_SESSION['id'], $lang );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$_SESSION['Language'] = $DEFAULT_LANGUAGE;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// if the session var is not set yet
|
||||
if ( !isset( $_SESSION['Language'] ) ) {
|
||||
|
@ -186,61 +191,68 @@ class Helpers {
|
|||
// else use the default language
|
||||
} else {
|
||||
$_SESSION['Language'] = $DEFAULT_LANGUAGE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( $_SESSION['Language'] == "" ) {
|
||||
$_SESSION['Language'] = $DEFAULT_LANGUAGE;
|
||||
}
|
||||
}
|
||||
return parse_ini_file( $AMS_TRANS . '/' . $_SESSION['Language'] . '.ini', true );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Time output function for handling the time display.
|
||||
*
|
||||
* @return returns the time in the format specified in the $TIME_FORMAT global variable.
|
||||
*/
|
||||
static public function outputTime( $time, $str = 1 ) {
|
||||
global $TIME_FORMAT;
|
||||
if ( $str ) {
|
||||
return date( $TIME_FORMAT, strtotime( $time ) );
|
||||
} else {
|
||||
return date( $TIME_FORMAT, $time );
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Time output function for handling the time display.
|
||||
*
|
||||
* @return returns the time in the format specified in the $TIME_FORMAT global variable.
|
||||
*/
|
||||
static public function outputTime($time, $str = 1) {
|
||||
global $TIME_FORMAT;
|
||||
if ($str) {
|
||||
return date($TIME_FORMAT, strtotime($time));
|
||||
} else {
|
||||
return date($TIME_FORMAT, $time);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Auto login function for ingame use.
|
||||
* This function will allow users who access the website ingame, to log in without entering the username and password. It uses the COOKIE entry in the open_ring db.
|
||||
* it checks if the cookie sent by the http request matches the one in the db. This cookie in the db is changed everytime the user relogs.
|
||||
*
|
||||
* @return returns "FALSE" if the cookies didn't match, else it returns an array with the user's id and name.
|
||||
*/
|
||||
static public function check_login_ingame() {
|
||||
return NULL;
|
||||
|
||||
// FIXME
|
||||
/*
|
||||
if ( helpers :: check_if_game_client () or $forcelibrender = false ) {
|
||||
$dbr = new DBLayer( "ring" );
|
||||
if ( isset( $_GET['UserId'] ) && isset( $_COOKIE['ryzomId'] ) ) {
|
||||
$id = $_GET['UserId'];
|
||||
|
||||
$statement = $dbr -> select( "ring_users", array( 'id' => $id, 'cookie' => $_COOKIE['ryzomId'] ), "user_id=:id AND cookie =:cookie" );
|
||||
|
||||
// $statement = $dbr->execute("SELECT * FROM ring_users WHERE user_id=:id AND cookie =:cookie", array('id' => $id, 'cookie' => $_COOKIE['ryzomId']));
|
||||
|
||||
if ( $statement -> rowCount() ) {
|
||||
$entry = $statement -> fetch();
|
||||
// print_r($entry);
|
||||
return array( 'id' => $entry['user_id'], 'name' => $entry['user_name'] );
|
||||
} else {
|
||||
return "FALSE";
|
||||
}
|
||||
} else {
|
||||
return "FALSE";
|
||||
}
|
||||
} else {
|
||||
return "FALSE";
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Auto login function for ingame use.
|
||||
* This function will allow users who access the website ingame, to log in without entering the username and password. It uses the COOKIE entry in the open_ring db.
|
||||
* it checks if the cookie sent by the http request matches the one in the db. This cookie in the db is changed everytime the user relogs.
|
||||
*
|
||||
* @return returns "FALSE" if the cookies didn't match, else it returns an array with the user's id and name.
|
||||
*/
|
||||
static public function check_login_ingame() {
|
||||
if ( helpers :: check_if_game_client () or $forcelibrender = false ) {
|
||||
$dbr = new DBLayer( "ring" );
|
||||
if ( isset( $_GET['UserId'] ) && isset( $_COOKIE['ryzomId'] ) ) {
|
||||
$id = $_GET['UserId'];
|
||||
|
||||
$statement = $dbr -> select( "ring_users", array( 'id' => $id, 'cookie' => $_COOKIE['ryzomId'] ), "user_id=:id AND cookie =:cookie" );
|
||||
|
||||
// $statement = $dbr->execute("SELECT * FROM ring_users WHERE user_id=:id AND cookie =:cookie", array('id' => $id, 'cookie' => $_COOKIE['ryzomId']));
|
||||
|
||||
if ( $statement -> rowCount() ) {
|
||||
$entry = $statement -> fetch();
|
||||
// print_r($entry);
|
||||
return array( 'id' => $entry['user_id'], 'name' => $entry['user_name'] );
|
||||
} else {
|
||||
return "FALSE";
|
||||
}
|
||||
} else {
|
||||
return "FALSE";
|
||||
}
|
||||
} else {
|
||||
return "FALSE";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ class In_Support_Group{
|
|||
*/
|
||||
public function create() {
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->insert("`in_support_group`", Array('User' => $this->user, 'Group' => $this->group);
|
||||
$dbl->insert("`in_support_group`", Array('User' => $this->user, 'Group' => $this->group));
|
||||
}
|
||||
|
||||
|
||||
|
@ -64,7 +64,7 @@ class In_Support_Group{
|
|||
*/
|
||||
public function delete() {
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->delete("`in_support_group`", array('user_id' => $this->getUser() ,'group_id' => $this->getGroup(), "`User` = :user_id and `Group` = :group_id");
|
||||
$dbl->delete("`in_support_group`", array('user_id' => $this->getUser() ,'group_id' => $this->getGroup()), "`User` = :user_id and `Group` = :group_id");
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
/**
|
||||
* API for loading and interacting with plugins
|
||||
* contains getters and setters.
|
||||
*
|
||||
* @author shubham meena mentored by Matthew Lagoe
|
||||
*
|
||||
* @author shubham meena mentored by Matthew Lagoe
|
||||
*/
|
||||
class Plugincache {
|
||||
private $id;
|
||||
|
@ -14,14 +14,14 @@ class Plugincache {
|
|||
private $plugin_status;
|
||||
private $plugin_info = array();
|
||||
private $update_info = array();
|
||||
|
||||
|
||||
/**
|
||||
* A constructor.
|
||||
* Empty constructor
|
||||
*/
|
||||
public function __construct() {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function set( $values ) {
|
||||
$this -> setId( $values['Id'] );
|
||||
$this -> setPluginName( $values['Name'] );
|
||||
|
@ -30,146 +30,146 @@ class Plugincache {
|
|||
$this -> setPluginStatus( $values['Status'] );
|
||||
$this -> setPluginInfo( json_decode( $values['Info'] ) );
|
||||
@$this -> setUpdateInfo( json_decode( $values['UpdateInfo'] ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* loads the object's attributes.
|
||||
*/
|
||||
|
||||
|
||||
public function load_With_SID() {
|
||||
$dbl = new DBLayer( "lib" );
|
||||
$statement = $dbl -> executeWithoutParams( "SELECT * FROM plugins" );
|
||||
$row = $statement -> fetch();
|
||||
$this -> set( $row );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* get plugin id attribute of the object.
|
||||
*
|
||||
*
|
||||
* @return integer id
|
||||
*/
|
||||
public function getId() {
|
||||
return $this -> Id;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* get plugin permission attribute of the object.
|
||||
*/
|
||||
public function getPluginPermission() {
|
||||
return $this -> plugin_permission;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* get plugin Type attribute of the object.
|
||||
*/
|
||||
public function getPluginType() {
|
||||
return $this -> plugin_version;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* get plugin status attribute of the object.
|
||||
*/
|
||||
public function getPluginStatus() {
|
||||
return $this -> plugin_status;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* get plugin name attribute of the object.
|
||||
*/
|
||||
public function getPluginName() {
|
||||
return $this -> plugin_name;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* get plugin info array attribute of the object.
|
||||
*/
|
||||
public function getPluginInfo() {
|
||||
return $this -> plugin_info;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* set plugin id attribute of the object.
|
||||
*
|
||||
*
|
||||
* @param $s integer id
|
||||
*/
|
||||
public function setId( $s ) {
|
||||
$this -> Id = $s;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* set plugin permission attribute of the object.
|
||||
*
|
||||
*
|
||||
* @param $t type of the query, set permission
|
||||
*/
|
||||
public function setPluginPermission( $t ) {
|
||||
$this -> plugin_permission = $t;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* set plugin version attribute of the object.
|
||||
*
|
||||
*
|
||||
* @param $q string to set plugin version
|
||||
*/
|
||||
public function setPluginType( $q ) {
|
||||
$this -> plugin_version = $q;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* set plugin status attribute of the object.
|
||||
*
|
||||
*
|
||||
* @param $d status code type int
|
||||
*/
|
||||
public function setPluginStatus( $d ) {
|
||||
$this -> plugin_status = $d;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* set plugin name attribute of the object.
|
||||
*
|
||||
*
|
||||
* @param $p_n string to set plugin name.
|
||||
*/
|
||||
public function setPluginName( $p_n ) {
|
||||
$this -> plugin_name = $p_n;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* set plugin info attribute array of the object.
|
||||
*
|
||||
*
|
||||
* @param $p_n array
|
||||
*/
|
||||
public function setPluginInfo( $p_n ) {
|
||||
$this -> plugin_info = $p_n;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* functionalities for plugin updates
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* set update info attribute array of the object.
|
||||
*
|
||||
*
|
||||
* @param $p_n array
|
||||
*/
|
||||
public function setUpdateInfo( $p_n ) {
|
||||
$this -> update_info = $p_n;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* get plugin info array attribute of the object.
|
||||
*/
|
||||
public function getUpdateInfo() {
|
||||
return $this -> update_info;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* some more plugin function that requires during plugin operations
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* function to remove a non empty directory
|
||||
*
|
||||
*
|
||||
* @param $dir directory address
|
||||
* @return boolean
|
||||
* @return boolean
|
||||
*/
|
||||
public static function rrmdir( $dir ) {
|
||||
$result = array_diff( scandir( $dir ), array( '.', '..' ) );
|
||||
|
@ -177,16 +177,16 @@ class Plugincache {
|
|||
{
|
||||
if ( !@unlink( $dir . '/' . $item ) )
|
||||
Plugincache :: rrmdir( $dir . '/' . $item );
|
||||
}
|
||||
}
|
||||
return rmdir( $dir );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* function to unzip the zipped files
|
||||
*
|
||||
*
|
||||
* @param $target_path path to the target zipped file
|
||||
* @param $destination path to the destination
|
||||
* @return boolean
|
||||
* @return boolean
|
||||
*/
|
||||
public static function zipExtraction( $target_path, $destination )
|
||||
{
|
||||
|
@ -197,21 +197,21 @@ class Plugincache {
|
|||
{
|
||||
$zip -> close();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$zip -> close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns plugin information with respect to the id.
|
||||
*
|
||||
*
|
||||
* @param $id plugin id.
|
||||
* @param $fieldName string plugin field to return
|
||||
*
|
||||
*
|
||||
* @return info field from the db.
|
||||
*/
|
||||
public static function pluginInfoUsingId( $id, $fieldName )
|
||||
|
@ -220,11 +220,11 @@ class Plugincache {
|
|||
$sth = $db -> selectWithParameter( $fieldName, 'plugins', array( 'id' => $id ), 'Id=:id' );
|
||||
$row = $sth -> fetch();
|
||||
return $row[$fieldName];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Function provides list of active plugins
|
||||
*
|
||||
*
|
||||
* @return list of active plugins
|
||||
*/
|
||||
public static function activePlugins()
|
||||
|
@ -233,45 +233,42 @@ class Plugincache {
|
|||
$sth = $db -> selectWithParameter( 'Id', 'plugins', array( 'status' => 1 ), 'Status=:status' );
|
||||
$row = $sth -> fetchAll();
|
||||
return $row;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* function to load hooks for the active plugins
|
||||
* and return the contents get from them.
|
||||
*
|
||||
*
|
||||
* -->Get the list of active plugins then call the global
|
||||
* hooks exists in the plugins hook file ($pluginName.php).
|
||||
* -->Collect the contents from the hooks and associate within
|
||||
* array with key referenced plugin name.
|
||||
* -->return the content to use with smarty template loader
|
||||
*
|
||||
* -->Collect the contents from the hooks and associate within
|
||||
* array with key referenced plugin name.
|
||||
* -->return the content to use with smarty template loader
|
||||
*
|
||||
* @return $content content get from hooks
|
||||
*/
|
||||
public static function loadHooks()
|
||||
{
|
||||
public static function loadHooks() {
|
||||
$content = array();
|
||||
$ac_arr = Plugincache :: activePlugins();
|
||||
foreach( $ac_arr as $key => $value )
|
||||
{
|
||||
$plugin_path = Plugincache :: pluginInfoUsingId( $value['Id'], 'FileName' );
|
||||
$template_path = json_decode( Plugincache :: pluginInfoUsingId( $value['Id'], 'Info' ) ) -> TemplatePath;
|
||||
$plugin_name = explode( '/', $plugin_path )[4];
|
||||
|
||||
// calling hooks in the $pluginName.php
|
||||
include $plugin_path . '/' . $plugin_name . '.php';
|
||||
$arr = get_defined_functions();
|
||||
|
||||
foreach( $arr['user'] as $key => $value )
|
||||
{
|
||||
if ( stristr( $value, $plugin_name ) == true )
|
||||
{
|
||||
$content['hook_info'][$plugin_name] = call_user_func( $value );
|
||||
}
|
||||
}
|
||||
$ac_arr = Plugincache::activePlugins();
|
||||
foreach ($ac_arr as $key => $value) {
|
||||
$plugin_path = Plugincache::pluginInfoUsingId($value['Id'], 'FileName');
|
||||
$template_path = json_decode(Plugincache::pluginInfoUsingId($value['Id'], 'Info'))->TemplatePath;
|
||||
$plugin_name = $plugin_path;
|
||||
|
||||
// calling hooks in the $pluginName.php
|
||||
global $AMS_PLUGINS;
|
||||
include $AMS_PLUGINS . '/' . $plugin_name . '/' . $plugin_name . '.php';
|
||||
$arr = get_defined_functions();
|
||||
|
||||
foreach ($arr['user'] as $key => $value) {
|
||||
if (stristr( $value, $plugin_name) == true) {
|
||||
$content['hook_info'][$plugin_name] = call_user_func($value);
|
||||
}
|
||||
}
|
||||
// path for the template
|
||||
$content['hook_info'][$plugin_name]['TemplatePath'] = $template_path;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ class Querycache{
|
|||
*/
|
||||
public function update(){
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->update("ams_querycache", Array('type' => $this->getType(), 'query' => $this->getQuery(), 'db' => $this->getDb(), "SID=$this->getSID()" );
|
||||
$dbl->update("ams_querycache", Array('type' => $this->getType(), 'query' => $this->getQuery(), 'db' => $this->getDb(), "SID=$this->getSID()" ));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
|
|
@ -327,7 +327,7 @@ class Support_Group{
|
|||
*/
|
||||
public function update(){
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->update("`support_group`", Array('Name' => $this->getName(), 'Tag' => $this->getTag(), 'GroupEmail' => $this->getGroupEmail(), 'IMAP_MailServer' => $this->getIMAP_MailServer(), 'IMAP_Username' => $this->getIMAP_Username(), 'IMAP_password' => $this->getIMAP_Password(), "`SGroupId` = $this->getSGroupId()"));
|
||||
$dbl->update("`support_group`", Array('Name' => $this->getName(), 'Tag' => $this->getTag(), 'GroupEmail' => $this->getGroupEmail(), 'IMAP_MailServer' => $this->getIMAP_MailServer(), 'IMAP_Username' => $this->getIMAP_Username(), 'IMAP_password' => $this->getIMAP_Password()), "`SGroupId` = ".$this->getSGroupId());
|
||||
}
|
||||
|
||||
|
||||
|
@ -337,7 +337,7 @@ class Support_Group{
|
|||
*/
|
||||
public function delete(){
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->delete("`support_group`", Array('id' => $this->getSGroupId(), "`SGroupId` = :id"));
|
||||
$dbl->delete("`support_group`", Array('id' => $this->getSGroupId()), "`SGroupId` = :id");
|
||||
}
|
||||
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
|
|
@ -6,19 +6,19 @@
|
|||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
class Ticket{
|
||||
|
||||
private $tId; /**< The id of ticket */
|
||||
private $timestamp; /**< Timestamp of the ticket */
|
||||
private $title; /**< Title of the ticket */
|
||||
private $status; /**< Status of the ticket (0 = waiting on user reply, 1 = waiting on support, (2= not used atm), 3 = closed */
|
||||
private $queue; /**< (not in use atm) */
|
||||
private $ticket_category; /**< the id of the category belonging to the ticket */
|
||||
private $author; /**< The ticket_users id */
|
||||
private $priority; /**< The priority of the ticket where 0 = low, 3= supadupahigh */
|
||||
|
||||
|
||||
private $tId; /**< The id of ticket */
|
||||
private $timestamp; /**< Timestamp of the ticket */
|
||||
private $title; /**< Title of the ticket */
|
||||
private $status; /**< Status of the ticket (0 = waiting on user reply, 1 = waiting on support, (2= not used atm), 3 = closed */
|
||||
private $queue; /**< (not in use atm) */
|
||||
private $ticket_category; /**< the id of the category belonging to the ticket */
|
||||
private $author; /**< The ticket_users id */
|
||||
private $priority; /**< The priority of the ticket where 0 = low, 3= supadupahigh */
|
||||
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* check if a ticket exists.
|
||||
* @param $id the id of the ticket to be checked.
|
||||
|
@ -31,10 +31,10 @@ class Ticket{
|
|||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return an array of the possible statuses
|
||||
* @return an array containing the string values that represent the different statuses.
|
||||
|
@ -51,8 +51,8 @@ class Ticket{
|
|||
public static function getPriorityArray() {
|
||||
return Array("Low","Normal","High","Super Dupa High");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return an entire ticket.
|
||||
* returns the ticket object and an array of all replies to that ticket.
|
||||
|
@ -64,10 +64,10 @@ class Ticket{
|
|||
$ticket = new Ticket();
|
||||
$ticket->load_With_TId($id);
|
||||
$reply_array = Ticket_Reply::getRepliesOfTicket($id, $view_as_admin);
|
||||
return Array('ticket_obj' => $ticket,'reply_array' => $reply_array);
|
||||
return Array('ticket_obj' => $ticket,'reply_array' => $reply_array);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return all tickets of a specific user.
|
||||
* an array of all tickets created by a specific user are returned by this function.
|
||||
|
@ -90,11 +90,11 @@ class Ticket{
|
|||
$instance->setAuthor($ticket['Author']);
|
||||
$result[] = $instance;
|
||||
}
|
||||
return $result;
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* function that creates a new ticket.
|
||||
* A new ticket will be created, in case the extra_info != 0 and the http request came from ingame, then a ticket_info page will be created.
|
||||
|
@ -117,13 +117,13 @@ class Ticket{
|
|||
$ticket->set($values);
|
||||
$ticket->create();
|
||||
$ticket_id = $ticket->getTId();
|
||||
|
||||
|
||||
//if ingame then add an extra info
|
||||
if(Helpers::check_if_game_client() && $extra_info != 0){
|
||||
$extra_info['Ticket'] = $ticket_id;
|
||||
Ticket_Info::create_Ticket_Info($extra_info);
|
||||
}
|
||||
|
||||
|
||||
//write a log entry
|
||||
if ( $author == $real_author){
|
||||
Ticket_Log::createLogEntry( $ticket_id, $author, 1);
|
||||
|
@ -131,18 +131,18 @@ class Ticket{
|
|||
Ticket_Log::createLogEntry( $ticket_id, $real_author, 2, $author);
|
||||
}
|
||||
Ticket_Reply::createReply($content, $author, $ticket_id, 0, $author);
|
||||
|
||||
|
||||
//forwards the ticket directly after creation to the supposed support group
|
||||
if($for_support_group){
|
||||
Ticket::forwardTicket(0, $ticket_id, $for_support_group);
|
||||
}
|
||||
|
||||
|
||||
//send email that new ticket has been created
|
||||
Mail_Handler::send_ticketing_mail($ticket->getAuthor(), $ticket, $content, "NEW", $ticket->getForwardedGroupId());
|
||||
return $ticket_id;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* updates the ticket's status.
|
||||
|
@ -152,7 +152,7 @@ class Ticket{
|
|||
* @param $author the user (id) that performed the update status action
|
||||
*/
|
||||
public static function updateTicketStatus( $ticket_id, $newStatus, $author) {
|
||||
|
||||
|
||||
$ticket = new Ticket();
|
||||
$ticket->load_With_TId($ticket_id);
|
||||
if ($ticket->getStatus() != $newStatus){
|
||||
|
@ -160,10 +160,10 @@ class Ticket{
|
|||
Ticket_Log::createLogEntry( $ticket_id, $author, 5, $newStatus);
|
||||
}
|
||||
$ticket->update();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* updates the ticket's status & priority.
|
||||
* A log entry about this will be created only if the newStatus is different from the current status and also when the newPriority is different from the current priority.
|
||||
|
@ -174,7 +174,7 @@ class Ticket{
|
|||
* @param $author the user (id) that performed the update
|
||||
*/
|
||||
public static function updateTicketStatusAndPriority( $ticket_id, $newStatus, $newPriority, $author) {
|
||||
|
||||
|
||||
$ticket = new Ticket();
|
||||
$ticket->load_With_TId($ticket_id);
|
||||
if ($ticket->getStatus() != $newStatus){
|
||||
|
@ -186,10 +186,10 @@ class Ticket{
|
|||
Ticket_Log::createLogEntry( $ticket_id, $author, 6, $newPriority);
|
||||
}
|
||||
$ticket->update();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return the latest reply of a ticket
|
||||
* @param $ticket_id the id of the ticket.
|
||||
|
@ -202,8 +202,8 @@ class Ticket{
|
|||
$reply->set($statement->fetch());
|
||||
return $reply;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* create a new reply for a ticket.
|
||||
* A reply will only be added if the content isn't empty and if the ticket isn't closed.
|
||||
|
@ -222,13 +222,13 @@ class Ticket{
|
|||
//if status is not closed
|
||||
if($ticket->getStatus() != 3){
|
||||
Ticket_Reply::createReply($content, $author, $ticket_id, $hidden, $ticket->getAuthor());
|
||||
|
||||
|
||||
//notify ticket author that a new reply is added!
|
||||
if($ticket->getAuthor() != $author){
|
||||
Mail_Handler::send_ticketing_mail($ticket->getAuthor(), $ticket, $content, "REPLY", $ticket->getForwardedGroupId());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
//TODO: Show error message that ticket is closed
|
||||
}
|
||||
|
@ -236,8 +236,8 @@ class Ticket{
|
|||
//TODO: Show error content is empty
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* assign a ticket to a user.
|
||||
* Checks if the ticket exists, if so then it will try to assign the user to it, a log entry will be written about this.
|
||||
|
@ -254,8 +254,8 @@ class Ticket{
|
|||
return "TICKET_NOT_EXISTING";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* unassign a ticket of a user.
|
||||
* Checks if the ticket exists, if so then it will try to unassign the user of it, a log entry will be written about this.
|
||||
|
@ -272,8 +272,8 @@ class Ticket{
|
|||
return "TICKET_NOT_EXISTING";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* forward a ticket to a specific support group.
|
||||
* Checks if the ticket exists, if so then it will try to forward the ticket to the support group specified, a log entry will be written about this.
|
||||
|
@ -288,7 +288,7 @@ class Ticket{
|
|||
if(isset($group_id) && $group_id != ""){
|
||||
//forward the ticket
|
||||
$returnvalue = Forwarded::forwardTicket($group_id, $ticket_id);
|
||||
|
||||
|
||||
if($user_id != 0){
|
||||
//unassign the ticket incase the ticket is assined to yourself
|
||||
self::unAssignTicket($user_id, $ticket_id);
|
||||
|
@ -303,12 +303,12 @@ class Ticket{
|
|||
return "TICKET_NOT_EXISTING";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* A constructor.
|
||||
* Empty constructor
|
||||
|
@ -335,18 +335,18 @@ class Ticket{
|
|||
$this->author = $values['Author'];
|
||||
$this->priority = $values['Priority'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* creates a new 'ticket' entry.
|
||||
* this method will use the object's attributes for creating a new 'ticket' entry in the database.
|
||||
*/
|
||||
public function create(){
|
||||
$dbl = new DBLayer("lib");
|
||||
$this->tId = $dbl->executeReturnId("ticket", Array('Timestamp'=>now(), 'Title' => $this->title, 'Status' => $this->status, 'Queue' => $this->queue, 'Ticket_Category' => $this->ticket_category, 'Author' => $this->author, 'Priority' => $this->priority));
|
||||
$this->tId = $dbl->executeReturnId("ticket", Array('Title' => $this->title, 'Status' => $this->status, 'Queue' => $this->queue, 'Ticket_Category' => $this->ticket_category, 'Author' => $this->author, 'Priority' => $this->priority), array('Timestamp'=>'now()'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* loads the object's attributes.
|
||||
* loads the object's attributes by giving a TId (ticket id).
|
||||
|
@ -365,8 +365,8 @@ class Ticket{
|
|||
$this->author = $row['Author'];
|
||||
$this->priority = $row['Priority'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* update the objects attributes to the db.
|
||||
*/
|
||||
|
@ -374,8 +374,8 @@ class Ticket{
|
|||
$dbl = new DBLayer("lib");
|
||||
$dbl->update("ticket", Array('Timestamp' => $this->timestamp, 'Title' => $this->title, 'Status' => $this->status, 'Queue' => $this->queue, 'Ticket_Category' => $this->ticket_category, 'Author' => $this->author, 'Priority' => $this->priority), "TId=$this->tId");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* check if a ticket has a ticket_info page or not.
|
||||
* @return true or false
|
||||
|
@ -383,38 +383,38 @@ class Ticket{
|
|||
public function hasInfo(){
|
||||
return Ticket_Info::TicketHasInfo($this->getTId());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* get tId attribute of the object.
|
||||
*/
|
||||
public function getTId(){
|
||||
return $this->tId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get timestamp attribute of the object in the format defined in the outputTime function of the Helperclass.
|
||||
*/
|
||||
public function getTimestamp(){
|
||||
return Helpers::outputTime($this->timestamp);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get title attribute of the object.
|
||||
*/
|
||||
public function getTitle(){
|
||||
return $this->title;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get status attribute of the object.
|
||||
*/
|
||||
public function getStatus(){
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get status attribute of the object in the form of text (string).
|
||||
*/
|
||||
|
@ -422,43 +422,43 @@ class Ticket{
|
|||
$statusArray = Ticket::getStatusArray();
|
||||
return $statusArray[$this->getStatus()];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get category attribute of the object in the form of text (string).
|
||||
*/
|
||||
public function getCategoryName(){
|
||||
$category = Ticket_Category::constr_TCategoryId($this->getTicket_Category());
|
||||
return $category->getName();
|
||||
return $category->getName();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get queue attribute of the object.
|
||||
*/
|
||||
public function getQueue(){
|
||||
return $this->queue;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get ticket_category attribute of the object (int).
|
||||
*/
|
||||
public function getTicket_Category(){
|
||||
return $this->ticket_category;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get author attribute of the object (int).
|
||||
*/
|
||||
public function getAuthor(){
|
||||
return $this->author;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get priority attribute of the object (int).
|
||||
*/
|
||||
public function getPriority(){
|
||||
return $this->priority;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get priority attribute of the object in the form of text (string).
|
||||
*/
|
||||
|
@ -466,7 +466,7 @@ class Ticket{
|
|||
$priorityArray = Ticket::getPriorityArray();
|
||||
return $priorityArray[$this->getPriority()];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get the user assigned to the ticket.
|
||||
* or return 0 in case not assigned.
|
||||
|
@ -479,7 +479,7 @@ class Ticket{
|
|||
return $user_id;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get the name of the support group to whom the ticket is forwarded
|
||||
* or return 0 in case not forwarded.
|
||||
|
@ -492,7 +492,7 @@ class Ticket{
|
|||
return Support_Group::getGroup($group_id)->getName();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get the id of the support group to whom the ticket is forwarded
|
||||
* or return 0 in case not forwarded.
|
||||
|
@ -506,7 +506,7 @@ class Ticket{
|
|||
}
|
||||
}
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* set tId attribute of the object.
|
||||
* @param $id integer id of the ticket
|
||||
|
@ -514,7 +514,7 @@ class Ticket{
|
|||
public function setTId($id){
|
||||
$this->tId = $id;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set timestamp attribute of the object.
|
||||
* @param $ts timestamp of the ticket
|
||||
|
@ -522,7 +522,7 @@ class Ticket{
|
|||
public function setTimestamp($ts){
|
||||
$this->timestamp = $ts;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set title attribute of the object.
|
||||
* @param $t title of the ticket
|
||||
|
@ -530,7 +530,7 @@ class Ticket{
|
|||
public function setTitle($t){
|
||||
$this->title = $t;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set status attribute of the object.
|
||||
* @param $s status of the ticket(int)
|
||||
|
@ -538,7 +538,7 @@ class Ticket{
|
|||
public function setStatus($s){
|
||||
$this->status = $s;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set queue attribute of the object.
|
||||
* @param $q queue of the ticket
|
||||
|
@ -546,7 +546,7 @@ class Ticket{
|
|||
public function setQueue($q){
|
||||
$this->queue = $q;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set ticket_category attribute of the object.
|
||||
* @param $tc ticket_category id of the ticket(int)
|
||||
|
@ -554,7 +554,7 @@ class Ticket{
|
|||
public function setTicket_Category($tc){
|
||||
$this->ticket_category = $tc;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set author attribute of the object.
|
||||
* @param $a author of the ticket
|
||||
|
@ -562,7 +562,7 @@ class Ticket{
|
|||
public function setAuthor($a){
|
||||
$this->author = $a;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set priority attribute of the object.
|
||||
* @param $p priority of the ticket
|
||||
|
@ -570,5 +570,5 @@ class Ticket{
|
|||
public function setPriority($p){
|
||||
$this->priority = $p;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
/**
|
||||
* Class that handles the logging. The logging will be used when a ticket is created, a reply is added, if someone views a ticket,
|
||||
* if someone assigns a ticket to him or if someone forwards a ticket. This class provides functions to get retrieve those logs and also make them.
|
||||
*
|
||||
*
|
||||
*-the Action IDs being used are:
|
||||
* -# User X Created ticket
|
||||
* -# Admin X created ticket for arg
|
||||
|
@ -18,13 +18,13 @@
|
|||
*/
|
||||
|
||||
class Ticket_Log{
|
||||
|
||||
private $tLogId; /**< The id of the log entry */
|
||||
private $timestamp; /**< The timestamp of the log entry */
|
||||
private $query; /**< The query (json encoded array containing action id & argument) */
|
||||
private $author; /**< author of the log */
|
||||
private $ticket; /**< the id of the ticket related to the log entry */
|
||||
|
||||
|
||||
private $tLogId; /**< The id of the log entry */
|
||||
private $timestamp; /**< The timestamp of the log entry */
|
||||
private $query; /**< The query (json encoded array containing action id & argument) */
|
||||
private $author; /**< author of the log */
|
||||
private $ticket; /**< the id of the ticket related to the log entry */
|
||||
|
||||
/****************************************
|
||||
*Action ID's:
|
||||
* 1: User X Created Ticket
|
||||
|
@ -38,10 +38,10 @@ class Ticket_Log{
|
|||
* 9: unassigned to the ticket
|
||||
*
|
||||
****************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* return all log entries related to a ticket.
|
||||
* @param $ticket_id the id of the ticket of which we want all related log entries returned.
|
||||
|
@ -65,10 +65,10 @@ class Ticket_Log{
|
|||
$instanceLog->setQuery($log['Query']);
|
||||
$result[] = $instanceLog;
|
||||
}
|
||||
return $result;
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* create a new log entry.
|
||||
* It will check if the $TICKET_LOGGING global var is true, this var is used to turn logging on and off. In case it's on, the log message will be stored.
|
||||
|
@ -82,8 +82,8 @@ class Ticket_Log{
|
|||
global $TICKET_LOGGING;
|
||||
if($TICKET_LOGGING){
|
||||
$dbl = new DBLayer("lib");
|
||||
$values = Array('Timestamp'=>now(), 'Query' => json_encode(array($action,$arg)), 'Ticket' => $ticket_id, 'Author' => $author_id);
|
||||
$dbl->insert("ticket_log", $values);
|
||||
$values = Array('Query' => json_encode(array($action,$arg)), 'Ticket' => $ticket_id, 'Author' => $author_id);
|
||||
$dbl->insert("ticket_log", $values, array('Timestamp'=>'now()'));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ class Ticket_Log{
|
|||
$instance->setTLogId($id);
|
||||
return $instance;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* return all log entries related to a ticket.
|
||||
* @param $ticket_id the id of the ticket of which we want all related log entries returned.
|
||||
|
@ -115,19 +115,19 @@ class Ticket_Log{
|
|||
$instance->set($log);
|
||||
$result[] = $instance;
|
||||
}
|
||||
return $result;
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* A constructor.
|
||||
* Empty constructor
|
||||
*/
|
||||
public function __construct() {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* sets the object's attributes.
|
||||
* @param $values should be an array.
|
||||
|
@ -138,7 +138,7 @@ class Ticket_Log{
|
|||
$this->setQuery($values['Query']);
|
||||
$this->setTicket($values['Ticket']);
|
||||
$this->setAuthor($values['Author']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* loads the object's attributes.
|
||||
|
@ -151,56 +151,56 @@ class Ticket_Log{
|
|||
$row = $statement->fetch();
|
||||
$this->set($row);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* update attributes of the object to the DB.
|
||||
*/
|
||||
public function update(){
|
||||
$dbl = new DBLayer("lib");
|
||||
|
||||
|
||||
$values = Array('timestamp' => $this->getTimestamp(), 'query' => $this->getQuery(), 'author' => $this->getAuthor(), 'ticket' => $this->getTicket() );
|
||||
$dbl->update("ticket_log", $values, "TLogId = $this->getTLogId()");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* get tLogId attribute of the object.
|
||||
*/
|
||||
public function getTLogId(){
|
||||
return $this->tLogId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get timestamp attribute of the object.
|
||||
*/
|
||||
public function getTimestamp(){
|
||||
return Helpers::outputTime($this->timestamp);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get query attribute of the object.
|
||||
*/
|
||||
public function getQuery(){
|
||||
return $this->query;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get author attribute of the object.
|
||||
*/
|
||||
public function getAuthor(){
|
||||
return $this->author;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get ticket attribute of the object.
|
||||
*/
|
||||
public function getTicket(){
|
||||
return $this->ticket;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get the action id out of the query by decoding it.
|
||||
*/
|
||||
|
@ -208,7 +208,7 @@ class Ticket_Log{
|
|||
$decodedQuery = json_decode($this->query);
|
||||
return $decodedQuery[0];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get the argument out of the query by decoding it.
|
||||
*/
|
||||
|
@ -216,7 +216,7 @@ class Ticket_Log{
|
|||
$decodedQuery = json_decode($this->query);
|
||||
return $decodedQuery[1];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get the action text(string) array.
|
||||
* this is being read from the language .ini files.
|
||||
|
@ -229,9 +229,9 @@ class Ticket_Log{
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* set tLogId attribute of the object.
|
||||
* @param $id integer id of the log entry
|
||||
|
@ -239,7 +239,7 @@ class Ticket_Log{
|
|||
public function setTLogId($id){
|
||||
$this->tLogId = $id;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set timestamp attribute of the object.
|
||||
* @param $t timestamp of the log entry
|
||||
|
@ -247,7 +247,7 @@ class Ticket_Log{
|
|||
public function setTimestamp($t){
|
||||
$this->timestamp = $t;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set query attribute of the object.
|
||||
* @param $q the encoded query
|
||||
|
@ -255,7 +255,7 @@ class Ticket_Log{
|
|||
public function setQuery($q){
|
||||
$this->query = $q;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set author attribute of the object.
|
||||
* @param $a integer id of the user who created the log entry
|
||||
|
@ -263,7 +263,7 @@ class Ticket_Log{
|
|||
public function setAuthor($a){
|
||||
$this->author = $a;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set ticket attribute of the object.
|
||||
* @param $t integer id of ticket of which the log entry is related to.
|
||||
|
@ -271,6 +271,6 @@ class Ticket_Log{
|
|||
public function setTicket($t){
|
||||
$this->ticket = $t;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
class Ticket_Reply{
|
||||
private $tReplyId; /**< The id of the reply */
|
||||
private $ticket; /**< the ticket id related to the reply */
|
||||
private $content; /**< the content of the reply */
|
||||
private $author; /**< The id of the user that made the reply */
|
||||
private $timestamp; /**< The timestamp of the reply */
|
||||
private $hidden; /**< indicates if reply should be hidden for normal users or not */
|
||||
|
||||
private $tReplyId; /**< The id of the reply */
|
||||
private $ticket; /**< the ticket id related to the reply */
|
||||
private $content; /**< the content of the reply */
|
||||
private $author; /**< The id of the user that made the reply */
|
||||
private $timestamp; /**< The timestamp of the reply */
|
||||
private $hidden; /**< indicates if reply should be hidden for normal users or not */
|
||||
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* return constructed element based on TReplyId.
|
||||
* @param $id the Id the reply we want to load.
|
||||
|
@ -23,8 +23,8 @@ class Ticket_Reply{
|
|||
$instance->setTReplyId($id);
|
||||
return $instance;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return all replies on a specific ticket.
|
||||
* @param $ticket_id the id of the ticket of which we want the replies.
|
||||
|
@ -43,12 +43,12 @@ class Ticket_Reply{
|
|||
$instanceAuthor = Ticket_User::constr_TUserId($tReply['Author']);
|
||||
$instanceAuthor->setExternId($tReply['ExternId']);
|
||||
$instanceAuthor->setPermission($tReply['Permission']);
|
||||
|
||||
|
||||
//load content
|
||||
$instanceContent = new Ticket_Content();
|
||||
$instanceContent->setTContentId($tReply['TContentId']);
|
||||
$instanceContent->setContent($tReply['Content']);
|
||||
|
||||
|
||||
//load reply and add the author and content object in it.
|
||||
$instanceReply = new self();
|
||||
$instanceReply->setTReplyId($tReply['TReplyId']);
|
||||
|
@ -60,9 +60,9 @@ class Ticket_Reply{
|
|||
$result[] = $instanceReply;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* creates a new reply on a ticket.
|
||||
* Creates a ticket_content entry and links it with a new created ticket_reply, a log entry will be written about this.
|
||||
|
@ -78,19 +78,19 @@ class Ticket_Reply{
|
|||
$ticket_content->setContent($content);
|
||||
$ticket_content->create();
|
||||
$content_id = $ticket_content->getTContentId();
|
||||
|
||||
|
||||
$ticket_reply = new Ticket_Reply();
|
||||
$ticket_reply->set(Array('Ticket' => $ticket_id,'Content' => $content_id,'Author' => $author, 'Hidden' => $hidden));
|
||||
$ticket_reply->create();
|
||||
$reply_id = $ticket_reply->getTReplyId();
|
||||
|
||||
|
||||
if($ticket_creator == $author){
|
||||
Ticket::updateTicketStatus( $ticket_id, 1, $author);
|
||||
}
|
||||
|
||||
|
||||
Ticket_Log::createLogEntry( $ticket_id, $author, 4, $reply_id);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
|
@ -116,14 +116,14 @@ class Ticket_Reply{
|
|||
$this->setHidden($values['Hidden']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* creates a new 'ticket_reply' entry.
|
||||
* this method will use the object's attributes for creating a new 'ticket_reply' entry in the database (the now() function will create the timestamp).
|
||||
*/
|
||||
public function create(){
|
||||
$dbl = new DBLayer("lib");
|
||||
$this->tReplyId = $dbl->executeReturnId("ticket_reply", Array('Ticket' => $this->ticket, 'Content' => $this->content, 'Author' => $this->author,'Timestamp'=>now(), 'Hidden' => $this->hidden));
|
||||
$this->tReplyId = $dbl->executeReturnId("ticket_reply", Array('Ticket' => $this->ticket, 'Content' => $this->content, 'Author' => $this->author, 'Hidden' => $this->hidden), array('Timestamp'=>'now()'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -142,7 +142,7 @@ class Ticket_Reply{
|
|||
$this->timestamp = $row['Timestamp'];
|
||||
$this->hidden = $row['Hidden'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* updates a ticket_reply entry based on the objects attributes.
|
||||
*/
|
||||
|
@ -150,16 +150,16 @@ class Ticket_Reply{
|
|||
$dbl = new DBLayer("lib");
|
||||
$dbl->update("ticket", Array('Ticket' => $this->ticket, 'Content' => $this->content, 'Author' => $this->author, 'Timestamp' => $this->timestamp, 'Hidden' => $this->hidden), "TReplyId=$this->tReplyId, ");
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* get ticket attribute of the object.
|
||||
*/
|
||||
public function getTicket(){
|
||||
return $this->ticket;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get content attribute of the object.
|
||||
*/
|
||||
|
@ -173,7 +173,7 @@ class Ticket_Reply{
|
|||
public function getAuthor(){
|
||||
return $this->author;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get timestamp attribute of the object.
|
||||
* The output format is defined by the Helpers class function, outputTime().
|
||||
|
@ -181,23 +181,23 @@ class Ticket_Reply{
|
|||
public function getTimestamp(){
|
||||
return Helpers::outputTime($this->timestamp);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get tReplyId attribute of the object.
|
||||
*/
|
||||
public function getTReplyId(){
|
||||
return $this->tReplyId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get hidden attribute of the object.
|
||||
*/
|
||||
public function getHidden(){
|
||||
return $this->hidden;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* set ticket attribute of the object.
|
||||
* @param $t integer id of the ticket
|
||||
|
@ -205,7 +205,7 @@ class Ticket_Reply{
|
|||
public function setTicket($t){
|
||||
$this->ticket = $t;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set content attribute of the object.
|
||||
* @param $c integer id of the ticket_content entry
|
||||
|
@ -213,7 +213,7 @@ class Ticket_Reply{
|
|||
public function setContent($c){
|
||||
$this->content = $c;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set author attribute of the object.
|
||||
* @param $a integer id of the user
|
||||
|
@ -221,7 +221,7 @@ class Ticket_Reply{
|
|||
public function setAuthor($a){
|
||||
$this->author = $a;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set timestamp attribute of the object.
|
||||
* @param $t timestamp of the reply
|
||||
|
@ -229,7 +229,7 @@ class Ticket_Reply{
|
|||
public function setTimestamp($t){
|
||||
$this->timestamp = $t;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set tReplyId attribute of the object.
|
||||
* @param $i integer id of the ticket_reply
|
||||
|
@ -237,7 +237,7 @@ class Ticket_Reply{
|
|||
public function setTReplyId($i){
|
||||
$this->tReplyId = $i;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set hidden attribute of the object.
|
||||
* @param $h should be 0 or 1
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
class Ticket_User{
|
||||
|
||||
private $tUserId; /**< The id of the user inside the ticket system*/
|
||||
private $permission; /**< The permission of the user */
|
||||
private $externId; /**< The id of the user account in the www (could be drupal,...) that is linked to the ticket_user */
|
||||
|
||||
|
||||
private $tUserId; /**< The id of the user inside the ticket system*/
|
||||
private $permission; /**< The permission of the user */
|
||||
private $externId; /**< The id of the user account in the www (could be drupal,...) that is linked to the ticket_user */
|
||||
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* create a new ticket user.
|
||||
* @param $extern_id the id of the user account in the www version (drupal,...)
|
||||
|
@ -21,10 +21,10 @@ class Ticket_User{
|
|||
*/
|
||||
public static function createTicketUser( $extern_id, $permission) {
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->insert("ticket_user",array('Permission' => $permission, 'ExternId' => $extern_id));
|
||||
$dbl->insert("ticket_user",array('TUserId' => $extern_id, 'Permission' => $permission, 'ExternId' => $extern_id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* check if a ticket_user object is a mod or not.
|
||||
* @param $user the ticket_user object itself
|
||||
|
@ -36,8 +36,8 @@ class Ticket_User{
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* check if a ticket_user object is an admin or not.
|
||||
* @param $user the ticket_user object itself
|
||||
|
@ -49,8 +49,8 @@ class Ticket_User{
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return constructed ticket_user object based on TUserId.
|
||||
* @param $id the TUserId of the entry.
|
||||
|
@ -60,10 +60,10 @@ class Ticket_User{
|
|||
$instance = new self();
|
||||
$instance->setTUserId($id);
|
||||
return $instance;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return a list of all mods/admins.
|
||||
* @return an array consisting of ticket_user objects that are mods & admins.
|
||||
|
@ -78,10 +78,10 @@ class Ticket_User{
|
|||
$instanceUser->set($user);
|
||||
$result[] = $instanceUser;
|
||||
}
|
||||
return $result;
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return constructed ticket_user object based on ExternId.
|
||||
* @param $id the ExternId of the entry.
|
||||
|
@ -97,8 +97,8 @@ class Ticket_User{
|
|||
$instance->externId = $row['ExternId'];
|
||||
return $instance;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* change the permission of a ticket_user.
|
||||
* @param $user_id the TUserId of the entry.
|
||||
|
@ -110,8 +110,8 @@ class Ticket_User{
|
|||
$user->setPermission($perm);
|
||||
$user->update();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return the email address of a ticket_user.
|
||||
* @param $id the TUserId of the entry.
|
||||
|
@ -121,10 +121,10 @@ class Ticket_User{
|
|||
$user = new Ticket_User();
|
||||
$user->load_With_TUserId($id);
|
||||
$webUser = new WebUsers($user->getExternId());
|
||||
return $webUser->getEmail();
|
||||
return $webUser->getEmail();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return the username of a ticket_user.
|
||||
* @param $id the TUserId of the entry.
|
||||
|
@ -134,10 +134,10 @@ class Ticket_User{
|
|||
$user = new Ticket_User();
|
||||
$user->load_With_TUserId($id);
|
||||
$webUser = new WebUsers($user->getExternId());
|
||||
return $webUser->getUsername();
|
||||
return $webUser->getUsername();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* return the TUserId of a ticket_user by giving a username.
|
||||
* @param $username the username of a user.
|
||||
|
@ -146,9 +146,9 @@ class Ticket_User{
|
|||
public static function get_id_from_username($username){
|
||||
$externId = WebUsers::getId($username);
|
||||
$user = Ticket_User::constr_ExternId($externId);
|
||||
return $user->getTUserId();
|
||||
return $user->getTUserId();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* return the ticket_user id from an email address.
|
||||
* @param $email the emailaddress of a user.
|
||||
|
@ -163,18 +163,18 @@ class Ticket_User{
|
|||
return "FALSE";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* A constructor.
|
||||
* Empty constructor
|
||||
*/
|
||||
public function __construct() {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* sets the object's attributes.
|
||||
* @param $values should be an array of the form array('TUserId' => id, 'Permission' => perm, 'ExternId' => ext_id).
|
||||
|
@ -184,8 +184,8 @@ class Ticket_User{
|
|||
$this->setPermission($values['Permission']);
|
||||
$this->setExternId($values['ExternId']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* loads the object's attributes.
|
||||
* loads the object's attributes by giving a TUserId.
|
||||
|
@ -198,9 +198,9 @@ class Ticket_User{
|
|||
$this->tUserId = $row['TUserId'];
|
||||
$this->permission = $row['Permission'];
|
||||
$this->externId = $row['ExternId'];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* update the object's attributes to the db.
|
||||
*/
|
||||
|
@ -208,33 +208,33 @@ class Ticket_User{
|
|||
$dbl = new DBLayer("lib");
|
||||
$dbl->update("ticket_user" ,array('Permission' => $this->permission, 'ExternId' => $this->externId) ,"TUserId=$this->tUserId");
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* get permission attribute of the object.
|
||||
*/
|
||||
public function getPermission(){
|
||||
return $this->permission;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get externId attribute of the object.
|
||||
*/
|
||||
public function getExternId(){
|
||||
return $this->externId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get tUserId attribute of the object.
|
||||
*/
|
||||
public function getTUserId(){
|
||||
return $this->tUserId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* set permission attribute of the object.
|
||||
* @param $perm integer that indicates the permission level. (1= user, 2= mod, 3= admin)
|
||||
|
@ -242,16 +242,16 @@ class Ticket_User{
|
|||
public function setPermission($perm){
|
||||
$this->permission = $perm;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* set externId attribute of the object.
|
||||
* @param $id the external id.
|
||||
*/
|
||||
*/
|
||||
public function setExternId($id){
|
||||
$this->externId = $id;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set tUserId attribute of the object.
|
||||
* @param $id the ticket_user id
|
||||
|
@ -259,6 +259,6 @@ class Ticket_User{
|
|||
public function setTUserId($id){
|
||||
$this->tUserId= $id;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
class Users{
|
||||
|
||||
|
||||
/**
|
||||
* checks if entered values before registering are valid.
|
||||
* @param $values array with Username,Password, ConfirmPass and Email.
|
||||
* @return string Info: Returns a string, if input data is valid then "success" is returned, else an array with errors
|
||||
*/
|
||||
*/
|
||||
public function check_Register($values){
|
||||
// check values
|
||||
if ( isset( $values["Username"] ) and isset( $values["Password"] ) and isset( $values["ConfirmPass"] ) and isset( $values["Email"] ) ){
|
||||
|
@ -25,8 +25,16 @@ class Users{
|
|||
$cpass = "";
|
||||
$email = "";
|
||||
}
|
||||
|
||||
if ( helpers :: check_if_game_client() or isset($FORCE_INGAME) ) {
|
||||
if ( isset( $_POST["TaC"] )) {
|
||||
$tac="success";
|
||||
}
|
||||
} else {
|
||||
$tac="success";
|
||||
}
|
||||
|
||||
if ( ( $user == "success" ) and ( $pass == "success" ) and ( $cpass == "success" ) and ( $email == "success" ) and ( isset( $_POST["TaC"] ) ) ){
|
||||
if ( ( $user == "success" ) and ( $pass == "success" ) and ( $cpass == "success" ) and ( $email == "success" ) and ($tac=="success") ){
|
||||
return "success";
|
||||
}else{
|
||||
global $TOS_URL;
|
||||
|
@ -44,7 +52,7 @@ class Users{
|
|||
}else{
|
||||
$pageElements['USERNAME_ERROR'] = 'FALSE';
|
||||
}
|
||||
|
||||
|
||||
if ( $pass != "success" ){
|
||||
$pageElements['PASSWORD_ERROR'] = 'TRUE';
|
||||
}else{
|
||||
|
@ -69,13 +77,13 @@ class Users{
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* checks if entered username is valid.
|
||||
* @param $username the username that the user wants to use.
|
||||
* @return string Info: Returns a string based on if the username is valid, if valid then "success" is returned
|
||||
*/
|
||||
*/
|
||||
public function checkUser( $username )
|
||||
{
|
||||
if ( isset( $username ) ){
|
||||
|
@ -95,7 +103,7 @@ class Users{
|
|||
}
|
||||
return "fail";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* check if username already exists.
|
||||
* This is the base function, it should be overwritten by the WebUsers class.
|
||||
|
@ -105,10 +113,10 @@ class Users{
|
|||
protected function checkUserNameExists($username){
|
||||
//You should overwrite this method with your own version!
|
||||
print('this is the base class!');
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* checks if the password is valid.
|
||||
* @param $pass the password willing to be used.
|
||||
|
@ -129,8 +137,8 @@ class Users{
|
|||
}
|
||||
return "fail";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* checks if the confirmPassword matches the original.
|
||||
* @param $pass_result the result of the previous password check.
|
||||
|
@ -152,8 +160,8 @@ class Users{
|
|||
}
|
||||
return "fail";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* wrapper to check if the email address is valid.
|
||||
* @param $email the email address
|
||||
|
@ -185,16 +193,16 @@ class Users{
|
|||
protected function checkEmailExists($email){
|
||||
//TODO: You should overwrite this method with your own version!
|
||||
print('this is the base class!');
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* check if the emailaddress structure is valid.
|
||||
* @param $email the email address
|
||||
* @return true or false
|
||||
*/
|
||||
public function validEmail( $email ){
|
||||
public static function validEmail( $email ){
|
||||
$isValid = true;
|
||||
$atIndex = strrpos( $email, "@" );
|
||||
if ( is_bool( $atIndex ) && !$atIndex ){
|
||||
|
@ -276,7 +284,7 @@ class Users{
|
|||
// done!
|
||||
return $salt;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
@ -286,42 +294,43 @@ class Users{
|
|||
* @param $user_id the extern id of the user (the id given by the www/CMS)
|
||||
* @return ok if it's get correctly added to the shard, else return lib offline and put in libDB, if libDB is also offline return liboffline.
|
||||
*/
|
||||
public static function createUser($values, $user_id){
|
||||
public static function createUser($values, $user_id) {
|
||||
ticket_user::createTicketUser($user_id, 1);
|
||||
try {
|
||||
//make connection with and put into shard db
|
||||
$values["UId"] = $user_id;
|
||||
$dbs = new DBLayer("shard");
|
||||
$dbs->insert("user", $values);
|
||||
/*
|
||||
$dbr = new DBLayer("ring");
|
||||
$valuesRing['user_id'] =$user_id;
|
||||
$valuesRing['user_name'] = $values['Login'];
|
||||
$valuesRing['user_type'] = 'ut_pioneer';
|
||||
$dbr->insert("ring_users", $valuesRing);
|
||||
ticket_user::createTicketUser( $user_id, 1);
|
||||
$dbr->insert("ring_users", $valuesRing);
|
||||
*/
|
||||
return "ok";
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
//oh noooz, the shard is offline! Put in query queue at ams_lib db!
|
||||
try {
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->insert("ams_querycache", array("type" => "createUser",
|
||||
"query" => json_encode(array($values["Login"],$values["Password"],$values["Email"])), "db" => "shard"));
|
||||
ticket_user::createTicketUser( $user_id , 1 );
|
||||
"query" => json_encode(array($values["Login"], $values["Password"], $values["Email"])), "db" => "shard"));
|
||||
return "shardoffline";
|
||||
}catch (PDOException $e) {
|
||||
} catch (PDOException $e) {
|
||||
print_r($e);
|
||||
return "liboffline";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* creates permissions in the shard db for a user.
|
||||
* incase the shard is offline it will place it in the ams_querycache.
|
||||
* @param $pvalues with username
|
||||
*/
|
||||
public static function createPermissions($pvalues) {
|
||||
|
||||
|
||||
try {
|
||||
$values = array('username' => $pvalues[0]);
|
||||
$dbs = new DBLayer("shard");
|
||||
|
@ -338,12 +347,12 @@ class Users{
|
|||
//oh noooz, the shard is offline! Put it in query queue at ams_lib db!
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->insert("ams_querycache", array("type" => "createPermissions",
|
||||
"query" => json_encode(array($pvalues[0])), "db" => "shard"));
|
||||
}
|
||||
"query" => json_encode(array($pvalues[0])), "db" => "shard"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* check if username and password matches.
|
||||
* This is the base function, it should be overwritten by the WebUsers class.
|
||||
|
@ -353,7 +362,7 @@ class Users{
|
|||
protected static function checkLoginMatch($user,$pass){
|
||||
print('This is the base class!');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* check if the changing of a password is valid.
|
||||
* a mod/admin doesn't has to fill in the previous password when he wants to change the password, however for changing his own password he has to fill it in.
|
||||
|
@ -412,7 +421,7 @@ class Users{
|
|||
return $pageElements;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* sets the shards password.
|
||||
* in case the shard is offline, the entry will be stored in the ams_querycache.
|
||||
|
@ -421,9 +430,9 @@ class Users{
|
|||
* @return ok if it worked, if the lib or shard is offline it will return liboffline or shardoffline.
|
||||
*/
|
||||
protected static function setAmsPassword($user, $pass){
|
||||
|
||||
|
||||
$values = Array('Password' => $pass);
|
||||
|
||||
|
||||
try {
|
||||
//make connection with and put into shard db
|
||||
$dbs = new DBLayer("shard");
|
||||
|
@ -435,14 +444,14 @@ class Users{
|
|||
try {
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->insert("ams_querycache", array("type" => "change_pass",
|
||||
"query" => json_encode(array($values["user"],$values["pass"])), "db" => "shard"));
|
||||
"query" => json_encode(array($user,$pass)), "db" => "shard"));
|
||||
return "shardoffline";
|
||||
}catch (PDOException $e) {
|
||||
return "liboffline";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* sets the shards email.
|
||||
* in case the shard is offline, the entry will be stored in the ams_querycache.
|
||||
|
@ -451,25 +460,26 @@ class Users{
|
|||
* @return ok if it worked, if the lib or shard is offline it will return liboffline or shardoffline.
|
||||
*/
|
||||
protected static function setAmsEmail($user, $mail){
|
||||
|
||||
|
||||
$values = Array('Email' => $mail);
|
||||
|
||||
|
||||
try {
|
||||
//make connection with and put into shard db
|
||||
$dbs = new DBLayer("shard");
|
||||
$dbs->update("user", $values, "Login = $user");
|
||||
$dbs->update("user", $values, "Login = '$user'");
|
||||
return "ok";
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
//oh noooz, the shard is offline! Put in query queue at ams_lib db!
|
||||
try {
|
||||
error_log($e);
|
||||
$dbl = new DBLayer("lib");
|
||||
$dbl->insert("ams_querycache", array("type" => "change_mail",
|
||||
"query" => json_encode(array($values["user"],$values["mail"])), "db" => "shard"));
|
||||
"query" => json_encode(array($user,$mail)), "db" => "shard"));
|
||||
return "shardoffline";
|
||||
}catch (PDOException $e) {
|
||||
return "liboffline";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ PluginName = API Key Management
|
|||
Description = Provides public access to the API's by generating access tokens.
|
||||
Version = 1.0.0
|
||||
Type = Manual
|
||||
TemplatePath = ../../../ams_lib/plugins/API_key_management/templates/index.tpl
|
||||
TemplatePath = ../../../private_php/ams/plugins/API_key_management/templates/index.tpl
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
/**
|
||||
* Global and Local Hooks for the API key Management plugin
|
||||
* Global Hooks are defined with the prefix(name of the plugin)
|
||||
* Local Hooks are defined with normal function name
|
||||
*
|
||||
* Local Hooks are defined with normal function name
|
||||
*
|
||||
* All the Global Hooks are called during the page load
|
||||
* and Local Hooks are called according to conditions
|
||||
*
|
||||
* @author shubham meena mentored by Matthew Lagoe
|
||||
*
|
||||
* @author shubham meena mentored by Matthew Lagoe
|
||||
*/
|
||||
|
||||
// Global variable to store the data which is
|
||||
|
@ -27,7 +27,7 @@ function api_key_management_hook_display()
|
|||
global $return_set;
|
||||
// to display plugin name in menu bar
|
||||
$return_set['menu_display'] = 'API Key Management';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Local Hook to validate the posted data
|
||||
|
@ -37,12 +37,12 @@ function hook_validate( $var )
|
|||
if ( isset( $var ) && !empty( $var ) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Local Hook to set the POST variables and validate them
|
||||
|
@ -51,7 +51,7 @@ function hook_variables()
|
|||
{
|
||||
global $var_set;
|
||||
global $return_set;
|
||||
|
||||
|
||||
if ( hook_validate( $_POST['expDate'] ) && hook_validate( $_POST['sp_name'] ) && hook_validate( $_POST['api_type'] )
|
||||
&& hook_validate( $_POST['character_name'] ) )
|
||||
{
|
||||
|
@ -63,12 +63,12 @@ function hook_variables()
|
|||
$var_set['AddedOn'] = date( "Y-m-d H:i:s" );
|
||||
$var_set['Items'] = '';
|
||||
$return_set['gen_key_validate'] = 'true';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$return_set['gen_key_validate'] = 'false';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Global Hook to create table of the API_key_management
|
||||
|
@ -108,12 +108,12 @@ function api_key_management_hook_create_tb()
|
|||
--
|
||||
ALTER TABLE `ams_api_keys`
|
||||
ADD CONSTRAINT `ams_api_keys_ibfk_1` FOREIGN KEY (`User`) REFERENCES `ryzom_ams`.`ams_user` (`Login`);";
|
||||
|
||||
|
||||
$dbl -> executeWithoutParams( $sql );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook to store data to database which is sent as post
|
||||
* Hook to store data to database which is sent as post
|
||||
* method from the forms in this plugin
|
||||
* It also calls the local hook
|
||||
*/
|
||||
|
@ -121,63 +121,67 @@ function api_key_management_hook_store_db()
|
|||
{
|
||||
global $var_set;
|
||||
global $return_set;
|
||||
|
||||
|
||||
// if the form been submited move forward
|
||||
if ( @hook_validate( $_POST['gen_key'] ) ) {
|
||||
|
||||
|
||||
// local hook to validate the POST variables
|
||||
hook_variables();
|
||||
|
||||
|
||||
// if validation successfull move forward
|
||||
if ( $return_set['gen_key_validate'] == 'true' && $_GET['plugin_action'] == 'generate_key' )
|
||||
{
|
||||
// this part generated the access token
|
||||
include 'generate_key.php';
|
||||
$var_set['AccessToken'] = generate_key :: randomToken( 56, false, true, false );
|
||||
|
||||
|
||||
// database connection
|
||||
$db = new DBLayer( 'lib' );
|
||||
// insert the form data to the database
|
||||
$db -> insert( 'ams_api_keys', $var_set );
|
||||
|
||||
|
||||
// redirect to the the main page with success code
|
||||
// 1 refers to the successfull addition of key to the database
|
||||
header( "Location: index.php?page=layout_plugin&&name=API_key_management&&success=1" );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Global Hook to load the data from db and set it
|
||||
* Global Hook to load the data from db and set it
|
||||
* into the global array to return it to the template
|
||||
*/
|
||||
function api_key_management_hook_load_db()
|
||||
{
|
||||
global $var_set;
|
||||
global $return_set;
|
||||
|
||||
$db = new DBLayer( 'lib' );
|
||||
|
||||
|
||||
$dbl = new DBLayer("lib");
|
||||
|
||||
if ( isset( $_SESSION['user'] ) )
|
||||
{
|
||||
// returns the registered keys
|
||||
$sth = $db -> select( 'ams_api_keys', array( 'user' => $_SESSION['user'] ), 'User = :user' );
|
||||
$sth = $dbl -> select( 'ams_api_keys', array( 'user' => $_SESSION['user'] ), 'User = :user' );
|
||||
$row = $sth -> fetchAll();
|
||||
$return_set['api_keys'] = $row;
|
||||
|
||||
|
||||
// fetch the character from the array to compare
|
||||
$com = array_column( $return_set['api_keys'], 'UserCharacter' );
|
||||
|
||||
|
||||
// returns the characters with respect to the user id in the ring_tool->characters
|
||||
$db = new DBLayer( 'ring' );
|
||||
$sth = $db -> selectWithParameter( 'char_name', 'characters' , array(), '1' );
|
||||
$row = $sth -> fetch();
|
||||
|
||||
// loop through the character list and remove the character if already have an api key
|
||||
$return_set['characters'] = array_diff( $row, $com );
|
||||
}
|
||||
}
|
||||
try {
|
||||
$dbl = new DBLayer( 'ring' );
|
||||
$sth = $dbl -> selectWithParameter( 'char_name', 'characters' , array(), '1' );
|
||||
$row = $sth -> fetch();
|
||||
|
||||
// loop through the character list and remove the character if already have an api key
|
||||
$return_set['characters'] = array_diff( $row, $com );
|
||||
}catch( PDOException $e ) {
|
||||
error_log($e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Global Hook to update or delete the data from db
|
||||
|
@ -186,24 +190,24 @@ function api_key_management_hook_update_db()
|
|||
{
|
||||
global $var_set;
|
||||
global $return_set;
|
||||
|
||||
|
||||
$db = new DBLayer( 'lib' );
|
||||
if ( isset( $_GET['delete_id'] ) )
|
||||
{
|
||||
// removes the registered key using get variable which contains the id of the registered key
|
||||
$db -> delete( 'ams_api_keys', array( 'SNo' => $_GET['delete_id'] ), 'SNo = :SNo' );
|
||||
|
||||
|
||||
// redirecting to the API_key_management plugins template with success code
|
||||
// 2 refers to the succssfull delete condition
|
||||
header( "Location: index.php?page=layout_plugin&&name=API_key_management&&success=2" );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Global Hook to return global variables which contains
|
||||
* the content to use in the smarty templates
|
||||
*
|
||||
*
|
||||
* @return $return_set global array returns the template data
|
||||
*/
|
||||
function api_key_management_hook_return_global()
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<div class="row-fluid">
|
||||
<div class="box span12">
|
||||
<div class="box col-md-12">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title>
|
||||
<h2><i class="icon-user"></i> API KEY management</h2>
|
||||
<div class="box-icon">
|
||||
|
@ -8,7 +9,8 @@
|
|||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box span4">
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-th"></i> Generate Access Key</h2>
|
||||
<div class="box-icon">
|
||||
|
@ -39,8 +41,10 @@
|
|||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/span-->
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
{if isset($smarty.get.plugin_action) and $smarty.get.plugin_action eq 'generate_key'}
|
||||
<div class="row-fluid">
|
||||
<div class="box span12">
|
||||
<div class="box col-md-12">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title>
|
||||
<h2><i class="icon-user"></i> API KEY management</h2>
|
||||
<div class="box-icon">
|
||||
|
@ -11,7 +12,7 @@
|
|||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box span4">
|
||||
<div class="box col-md-4">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-th"></i> Generate Access Key</h2>
|
||||
<div class="box-icon">
|
||||
|
@ -75,10 +76,12 @@
|
|||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/span-->
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
{else}
|
||||
<div class="row-fluid">
|
||||
<div class="box span12">
|
||||
<div class="box col-md-12">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title>
|
||||
<h2><i class="icon-user"></i> API KEY management</h2>
|
||||
<div class="box-icon">
|
||||
|
@ -128,6 +131,7 @@
|
|||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/span-->
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
{/if}
|
||||
{/block}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
PluginName = Achievements
|
||||
Description = Returns the achivements of a user with respect to the character =.
|
||||
Version = 1.0.0
|
||||
TemplatePath = ../../../ams_lib/plugins/Achievements/templates/index.tpl
|
||||
TemplatePath = ../../../private_php/ams/plugins/Achievements/templates/index.tpl
|
||||
Type = Manual
|
||||
|
||||
|
||||
|
|
|
@ -2,70 +2,53 @@
|
|||
|
||||
{if isset($smarty.get.plugin_action) and $smarty.get.plugin_action eq 'get_achievements'}
|
||||
<div class="row-fluid">
|
||||
<div class="box span12">
|
||||
<div class="box-header well" data-original-title>
|
||||
<h2><i class="icon-user"></i> Achievements</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box col-md-12">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title>
|
||||
<h2><i class="icon-user"></i> Achievements</h2>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
{if isset($hook_info.Achievements.no_char)}<div class="alert alert-error"><p>{$hook_info.Achievements.no_char}</p></div>{/if}
|
||||
<div class="row-fluid">
|
||||
{$hook_info.Achievements.char_achievements}
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
{else}
|
||||
<div class="row-fluid">
|
||||
<div class="box span12">
|
||||
<div class="box-header well" data-original-title>
|
||||
<h2><i class="icon-user"></i> Achievements</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box span4">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-th"></i> Select your Character</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
<form id="generateKey" class="form-vertical" method="post" action="index.php?page=layout_plugin&&name={$arrkey}&&plugin_action=get_achievements">
|
||||
|
||||
<div class="control-group">
|
||||
<div class="control-group">
|
||||
<label class="control-label">Character:</label>
|
||||
<div class="controls">
|
||||
<select name="Character">
|
||||
</div><!--/span-->
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
</div><!--/row-->
|
||||
{else}
|
||||
<div class="row-fluid">
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-th"></i> Select your Character</h2>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
<form id="generateKey" class="form-vertical" method="post" action="index.php?page=layout_plugin&&name={$arrkey}&&plugin_action=get_achievements">
|
||||
<div class="control-group">
|
||||
<div class="control-group">
|
||||
<label class="control-label">Character:</label>
|
||||
<div class="controls">
|
||||
<select name="Character">
|
||||
{foreach from=$hook_info.Achievements.Character item=element}
|
||||
<option value="{$element}">{$element}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<button type="submit" name="get_data" value="true" class="btn btn-primary" style="margin-left:5px; margin-top:10px;">Get Achievements</button>
|
||||
</div>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<button type="submit" name="get_data" value="true" class="btn btn-primary" style="margin-left:5px; margin-top:10px;">Get Achievements</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/span-->
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
|
||||
{/if}
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
{/if}
|
||||
{/block}
|
||||
|
|
119
code/web/private_php/ams/plugins/doxygen_plugin_management.php
Normal file
119
code/web/private_php/ams/plugins/doxygen_plugin_management.php
Normal file
|
@ -0,0 +1,119 @@
|
|||
<?php
|
||||
/**
|
||||
\defgroup Plugins Plugin management system
|
||||
\section section1 AMS plugin Requirements and functionalities.
|
||||
The following are Ams Plugin Requirements and techniques for users and developers.
|
||||
\subsection subsection11 Plugin Management: Files included in the AMS
|
||||
These are the files that must be in the plugins folder:
|
||||
\n --> . \b info -- This file contains the information related to plugins and is described in below section.
|
||||
\n --> \b Plugin_Name.php -- This file contains the hooks for the plugins . For more info related to hooks see last section: creating hooks.
|
||||
\subsection subsection1 Plugin Management: Supportable Extensions
|
||||
Plugin management system always looks for the Plugins which are compressed with .zip extension.If the uploaded plugin is not a file type of "zip/application", it throws an error and stops updloading.
|
||||
\subsection subsection2 Plugin Management: .info File
|
||||
Plugins always with a .info file inside it which contains the information related to plugins which will be displayed below, otherwise installation will not proceed further.
|
||||
\n\b -------- Content of the .info File----------
|
||||
\n\b PluginName = Sample Plugin
|
||||
\n\b Description = Sample Plugin shows sample
|
||||
\n\b Version = 1.0.0
|
||||
\n\b TemplatePath = Path to the template
|
||||
\n\b Type = Manual or Automatic
|
||||
\n\n If this is an update there must be a field in the .info file
|
||||
\n\b UpdateInfo = what is updated?
|
||||
\subsection subsection3 Plugin Management: Versioning
|
||||
For all plugins we have used semantic versioning
|
||||
\n -->Format: X.Y.Z ,X->Major, Y->Minor, Z->Patch
|
||||
\n -->change in the X Y & Z values refer the type of change in the plugin.
|
||||
\n -->for initial development only Minor an Patch MUST be 0.
|
||||
\n -->if there is bug fix then there MUST be an increment in the Z value.
|
||||
\n -->if there is change in the functionality or addition of new functionality
|
||||
\n -->then there MUST be an increment in the Y value.
|
||||
\n -->When there is increment in the X value , Y and Z MUST be 0.
|
||||
\n -->comparing if there is some change
|
||||
\n -->For more info refer: https://semver.org
|
||||
\subsection subsection4 Plugin Management: Naming Conventions
|
||||
--> The plugin folder and hooks file must have same names in the format
|
||||
\n ----> Plugin Folder name = "Sample_Plugin"
|
||||
\n ----> Plugin hooks file = "Sample_Plugin.php"
|
||||
\n--> All the fields in the .info file must follow the pattern as written in sample above.
|
||||
\subsection subsection5 Plugin Management: Installing New plugins
|
||||
To install a plugin we have to upload the plugin compressed with zip extension.There is an option to Install Plugin in the AMS plugins template which redirects
|
||||
the admin to the uploading pannel. Here, in uploading pannel user uploads the plugin which he want to install and an option to install will occur when uploads finished.
|
||||
Now, admin select the option to install plugin , AMS starts checking for the .info file and compare names for the plugin folder with hook file.
|
||||
If all successfully completed without error your plugin is installed.
|
||||
\subsection subsection6 Plugin Management: Activate Plugin
|
||||
When a plugin is installed now you can perform many actions on it, one of them is Activate plugin.
|
||||
When admin selects Activate Plugin option , AMS start executing hooks available in the Plugin.
|
||||
\subsection subsection7 Plugin Management: Deactivate Plugin
|
||||
When the admin wants to deactivate a running Plugin , Deactivate Plugin option can help him out.
|
||||
\subsection subsection8 Plugin Management: Delete Plugin
|
||||
When a admin want to Delete a plugin from the AMS , he must have to check if the plugin is activated or not.
|
||||
\n if active then to use delete option he must have to deactivate that plugin.
|
||||
\n if inactive then the delete option is already there.
|
||||
\subsection subsection9 Plugin Management: Install Update
|
||||
If admin wants to install the update follow the following steps:
|
||||
\n --> Modify the changes or write the code which need to be added.
|
||||
\n --> Improve the Versioning by following the Versioning sections.
|
||||
\n --> Add a field 'UpdateInfo' (as described above in .info file section) in the .info file.
|
||||
\n --> compress the plugin again with zip extension and upload it in the Install Plugin part.
|
||||
\n\n When the upload is validated , the update is added to the updates template with proper information provided.
|
||||
If admin wants to apply update to the plugin , he have to select the Update option.
|
||||
|
||||
\section section2 Creating Plugins for AMS:
|
||||
\subsection subsection10 Creating Local and Global Variables
|
||||
\b Global \b Variables:
|
||||
\n --> These variables are defined to store the Global information or information that are usable Globally in AMS.
|
||||
\n --> These must be an array to store data with key => value pair.
|
||||
\n --> This is the only variable which is returned after going through all hooks.
|
||||
\n --> Sample:
|
||||
\n \n
|
||||
\b $return_set \b = \b array();
|
||||
\n \n All the information that hooks return will store in it to use with smarty loader or other functionalities.
|
||||
\n --> Field that must be defined to display in menu bar :
|
||||
\n \n
|
||||
\b $return_set[ \b 'menu_display'] \b = \b 'Name \b to \b display \b in \b menu \b bar'
|
||||
\n \n
|
||||
\n \b Local \b Variables:
|
||||
\n --> These variables are defined to store the local information or information that are usable in hooks.
|
||||
\n --> It is used to store values which we get from GET and POST requests.
|
||||
\n --> These must be an array to store data with key => value pair.
|
||||
\n --> Sample:
|
||||
\n \n
|
||||
\b $var_set \b = \b array();
|
||||
\n \n All the information that needs to be usable in hooks is stored in this local array.
|
||||
\subsection subsection12 Creating Global Hooks
|
||||
\b Defining \b Hooks:
|
||||
\n --> Hooks are defined as \b $PluginName_hook_task().
|
||||
\n --> Where \b $PluginName must be same as the file name in which hooks are defined.
|
||||
\n Example:
|
||||
\n
|
||||
--> \b Display \b hook:
|
||||
\n \n
|
||||
\b function \b PluginName_hook_display()
|
||||
\n \b {
|
||||
\n \b $return_set[ \b 'menu_display'] \b = \b 'PluginName'
|
||||
\n \b }
|
||||
\n \n
|
||||
--> For creating hooks for storing and fetching data from databases. You have to define hook like \b $PluginName_hook_store_db() or \b $PluginName_hook_get_db(), Then create the object of the DBLayer class present in AMS libraries.
|
||||
|
||||
\n \b --> \b One \b Global \b hook \b must \b always \b be \b in \b hooks \b list \b that \b will \b return \b the \b Global \b variables.
|
||||
\subsection subsection13 Creating Local Hooks
|
||||
\b Defining \b Hooks:
|
||||
\n --> Hooks are defined as \b hook_task( \b $param,..).
|
||||
\n --> Where \b $param must be the values stored in Local variables.
|
||||
\n Example:
|
||||
\n
|
||||
--> \b cron \b hook:
|
||||
\n \n
|
||||
\b function \b hook_set_cron( \b $connection, \b $path, \b $handle, \b $cron_file )
|
||||
\n \b {
|
||||
\n \b ... \b statements \b ......
|
||||
\n \b }
|
||||
\n \n
|
||||
--> Local hooks are created to set or use values from GET and POST request or stored values stored in local variables.
|
||||
\n --> Local hooks are called according to requests made by the server.(for more info see sample apps at the end of this section)
|
||||
|
||||
\subsection subsection14 Plugins Already installed with AMS
|
||||
\n \b --> \b Achievements.php
|
||||
\n \b --> \b API_key_management.php
|
||||
*/
|
||||
|
|
@ -827,4 +827,4 @@ class Smarty_Internal_Utility {
|
|||
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
|
|
@ -5,47 +5,47 @@
|
|||
*/
|
||||
|
||||
// Variables for database access to the www/CMS database
|
||||
$cfg['db']['web']['host'] = 'localhost';
|
||||
$cfg['db']['web']['host'] = '%sqlHostname%';
|
||||
$cfg['db']['web']['port'] = '3306';
|
||||
$cfg['db']['web']['name'] = 'ryzom_ams';
|
||||
$cfg['db']['web']['user'] = 'shard';
|
||||
$cfg['db']['web']['pass'] = '';
|
||||
$cfg['db']['web']['name'] = '%amsDatabase%';
|
||||
$cfg['db']['web']['user'] = '%sqlUsername%';
|
||||
$cfg['db']['web']['pass'] = '%sqlPassword%';
|
||||
|
||||
// Variables for database access to the lib database
|
||||
$cfg['db']['lib']['host'] = 'localhost';
|
||||
$cfg['db']['lib']['host'] = '%sqlHostname%';
|
||||
$cfg['db']['lib']['port'] = '3306';
|
||||
$cfg['db']['lib']['name'] = 'ryzom_ams_lib';
|
||||
$cfg['db']['lib']['user'] = 'shard';
|
||||
$cfg['db']['lib']['pass'] = '';
|
||||
$cfg['db']['lib']['name'] = '%amsLibDatabase%';
|
||||
$cfg['db']['lib']['user'] = '%sqlUsername%';
|
||||
$cfg['db']['lib']['pass'] = '%sqlPassword%';
|
||||
|
||||
// Variables for database access to the shard database
|
||||
$cfg['db']['shard']['host'] = 'localhost';
|
||||
$cfg['db']['shard']['host'] = '%sqlHostname%';
|
||||
$cfg['db']['shard']['port'] = '3306';
|
||||
$cfg['db']['shard']['name'] = 'nel';
|
||||
$cfg['db']['shard']['user'] = 'shard';
|
||||
$cfg['db']['shard']['pass'] = '';
|
||||
$cfg['db']['shard']['name'] = '%nelDatabase%';
|
||||
$cfg['db']['shard']['user'] = '%sqlUsername%';
|
||||
$cfg['db']['shard']['pass'] = '%sqlPassword%';
|
||||
|
||||
// Variables for database access to the ring_open database
|
||||
$cfg['db']['ring']['host'] = 'localhost';
|
||||
$cfg['db']['ring']['port'] = '3306';
|
||||
$cfg['db']['ring']['name'] = 'ring_open';
|
||||
$cfg['db']['ring']['user'] = 'shard';
|
||||
$cfg['db']['ring']['pass'] = '';
|
||||
// $cfg['db']['ring']['host'] = '%sqlHostname%';
|
||||
// $cfg['db']['ring']['port'] = '3306';
|
||||
// $cfg['db']['ring']['name'] = '%domainDatabase%';
|
||||
// $cfg['db']['ring']['user'] = '%sqlUsername%';
|
||||
// $cfg['db']['ring']['pass'] = '%sqlPassword%';
|
||||
|
||||
// Variables for database access to the nel_tool database
|
||||
$cfg['db']['tool']['host'] = 'localhost';
|
||||
$cfg['db']['tool']['host'] = '%sqlHostname%';
|
||||
$cfg['db']['tool']['port'] = '3306';
|
||||
$cfg['db']['tool']['name'] = 'nel_tool';
|
||||
$cfg['db']['tool']['user'] = 'shard';
|
||||
$cfg['db']['tool']['pass'] = '';
|
||||
$cfg['db']['tool']['name'] = '%toolDatabase%';
|
||||
$cfg['db']['tool']['user'] = '%sqlUsername%';
|
||||
$cfg['db']['tool']['pass'] = '%sqlPassword%';
|
||||
|
||||
// To connect to an IMAP server running on port 143 on the local machine,
|
||||
// do the following: $mbox = imap_open("{localhost:143}INBOX", "user_id", "password");
|
||||
// POP3 server on port 110: $mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");
|
||||
// SSL IMAP or POP3 server, add /ssl after the protocol: $mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");
|
||||
// do the following: $mbox = imap_open("{localhost:143}INBOX", "user_id", "password");
|
||||
// POP3 server on port 110: $mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");
|
||||
// SSL IMAP or POP3 server, add /ssl after the protocol: $mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");
|
||||
// To connect to an SSL IMAP or POP3 server with a self-signed certificate,
|
||||
// add /ssl/novalidate-cert after the protocol specification:
|
||||
// $mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");
|
||||
// $mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");
|
||||
// NNTP server on port 119 use: $nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");
|
||||
// To connect to a remote server replace "localhost" with the name or the IP address of the server you want to connect to.
|
||||
//$cfg['mail']['server'] = '{localhost:110/pop3/novalidate-cert}INBOX';
|
||||
|
@ -55,11 +55,11 @@ $cfg['mail']['default_mailserver']= '{imap.gmail.com:993/imap/ssl}INBOX';
|
|||
//groupemail is the email that sends the email
|
||||
$cfg['mail']['default_groupemail'] = 'example@gmail.com';
|
||||
//groupname will be the name displayed as sender
|
||||
$cfg['mail']['default_groupname'] = 'Ryzomcore Support';
|
||||
//the username of the account
|
||||
$cfg['mail']['default_username'] = 'example@gmail.com';
|
||||
$cfg['mail']['default_groupname'] = 'Ryzom Core Support';
|
||||
//the username of the account
|
||||
$cfg['mail']['default_username'] = 'example@gmail.com';
|
||||
//the matching password
|
||||
$cfg['mail']['default_password'] = 'passw0rd';
|
||||
$cfg['mail']['default_password'] = 'passw0rd';
|
||||
//the host, being used when a mail is sent from a support group: support_groups_name@host
|
||||
$cfg['mail']['host'] = "ryzomcore.com";
|
||||
|
||||
|
@ -76,8 +76,8 @@ $MAIL_LOG_PATH = "/home/username/mail/cron_mail.log";
|
|||
$TOS_URL ="http://www.gnu.org/licenses/agpl-3.0.html";
|
||||
|
||||
//crypt is being used by encrypting & decrypting of the IMAP password of the supportgroups
|
||||
$cfg['crypt']['key'] = 'Sup3rS3cr3tStuff';
|
||||
$cfg['crypt']['enc_method'] = 'AES-256-CBC';
|
||||
$cfg['crypt']['key'] = 'Sup3rS3cr3tStuff';
|
||||
$cfg['crypt']['enc_method'] = 'AES-256-CBC';
|
||||
$cfg['crypt']['hash_method'] = "SHA512";
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
|
@ -87,19 +87,24 @@ $ALLOW_UNKNOWN = true ;
|
|||
// if true= the login service automaticaly create a ring user and a editor character if needed
|
||||
$CREATE_RING = true ;
|
||||
|
||||
// site paths definitions (you shouldn't have to edit these..)
|
||||
$AMS_LIB = dirname( dirname( __FILE__ ) ) . '/ams_lib';
|
||||
// PHP server paths
|
||||
$PUBLIC_PHP_PATH = "%publicPhpDirectory%";
|
||||
$PRIVATE_PHP_PATH = "%privatePhpDirectory%";
|
||||
|
||||
// Site paths definitions (you shouldn't have to edit these..)
|
||||
$AMS_LIB = $PRIVATE_PHP_PATH . '/ams';
|
||||
$AMS_TRANS = $AMS_LIB . '/translations';
|
||||
$AMS_CACHEDIR = $AMS_LIB . '/cache';
|
||||
//Here your inc and func resides
|
||||
$SITEBASE = dirname( __FILE__ ) . '/html/' ;
|
||||
$AMS_PLUGINS = $AMS_LIB . '/plugins';
|
||||
// Here your inc and func resides
|
||||
$SITEBASE = $PUBLIC_PHP_PATH . '/ams/' ;
|
||||
|
||||
//the paths to your website url
|
||||
$BASE_WEBPATH = '';
|
||||
$IMAGELOC_WEBPATH = $BASE_WEBPATH.'img';
|
||||
$WEBPATH = $BASE_WEBPATH . '/index.php';
|
||||
$INGAME_WEBPATH = $BASE_WEBPATH . '/index.php';
|
||||
$CONFIG_PATH = dirname( __FILE__ );
|
||||
$BASE_WEBPATH = '/ams/';
|
||||
$IMAGELOC_WEBPATH = $BASE_WEBPATH . 'img';
|
||||
$WEBPATH = $BASE_WEBPATH . 'index.php';
|
||||
$INGAME_WEBPATH = $BASE_WEBPATH . 'index.php';
|
||||
$CONFIG_PATH = $PUBLIC_PHP_PATH;
|
||||
|
||||
//defines the default language
|
||||
$DEFAULT_LANGUAGE = 'en';
|
|
@ -1,13 +1,13 @@
|
|||
-- phpMyAdmin SQL Dump
|
||||
-- version 3.4.10.1deb1
|
||||
-- version 4.2.8
|
||||
-- http://www.phpmyadmin.net
|
||||
--
|
||||
-- Host: localhost
|
||||
-- Generation Time: Jul 14, 2014 at 09:58 AM
|
||||
-- Server version: 5.5.37
|
||||
-- PHP Version: 5.3.10-1ubuntu3.11
|
||||
-- Generation Time: Sep 02, 2014 at 06:12 PM
|
||||
-- Server version: 5.5.38-0+wheezy1-log
|
||||
-- PHP Version: 5.4.4-14+deb7u14
|
||||
|
||||
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
|
||||
|
@ -27,7 +27,7 @@ SET time_zone = "+00:00";
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `domain` (
|
||||
`domain_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`domain_id` int(10) unsigned NOT NULL,
|
||||
`domain_name` varchar(32) NOT NULL DEFAULT '',
|
||||
`status` enum('ds_close','ds_dev','ds_restricted','ds_open') NOT NULL DEFAULT 'ds_dev',
|
||||
`patch_version` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
|
@ -38,10 +38,8 @@ CREATE TABLE IF NOT EXISTS `domain` (
|
|||
`ring_db_name` varchar(255) NOT NULL DEFAULT '',
|
||||
`web_host` varchar(255) NOT NULL DEFAULT '',
|
||||
`web_host_php` varchar(255) NOT NULL DEFAULT '',
|
||||
`description` varchar(200) DEFAULT NULL,
|
||||
PRIMARY KEY (`domain_id`),
|
||||
UNIQUE KEY `name_idx` (`domain_name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
|
||||
`description` varchar(200) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -54,10 +52,8 @@ CREATE TABLE IF NOT EXISTS `permission` (
|
|||
`ClientApplication` char(64) NOT NULL DEFAULT 'ryzom',
|
||||
`ShardId` int(10) NOT NULL DEFAULT '-1',
|
||||
`AccessPrivilege` set('OPEN','DEV','RESTRICTED') NOT NULL DEFAULT 'OPEN',
|
||||
`prim` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`prim`),
|
||||
KEY `UIDIndex` (`UId`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
|
||||
`prim` int(10) unsigned NOT NULL
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -79,9 +75,8 @@ CREATE TABLE IF NOT EXISTS `shard` (
|
|||
`FixedSessionId` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`State` enum('ds_close','ds_dev','ds_restricted','ds_open') NOT NULL DEFAULT 'ds_dev',
|
||||
`MOTD` text NOT NULL,
|
||||
`prim` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`prim`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='contains all shards information for login system' AUTO_INCREMENT=31 ;
|
||||
`prim` int(10) unsigned NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='contains all shards information for login system';
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -90,7 +85,7 @@ CREATE TABLE IF NOT EXISTS `shard` (
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `user` (
|
||||
`UId` int(10) NOT NULL AUTO_INCREMENT,
|
||||
`UId` int(10) NOT NULL,
|
||||
`Login` varchar(64) NOT NULL DEFAULT '',
|
||||
`Password` varchar(13) DEFAULT NULL,
|
||||
`ShardId` int(10) NOT NULL DEFAULT '-1',
|
||||
|
@ -131,17 +126,61 @@ CREATE TABLE IF NOT EXISTS `user` (
|
|||
`FromSource` varchar(8) NOT NULL DEFAULT '',
|
||||
`ValidMerchantCode` varchar(13) NOT NULL DEFAULT '',
|
||||
`PBC` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`ApiKeySeed` varchar(8) DEFAULT NULL,
|
||||
PRIMARY KEY (`UId`),
|
||||
KEY `LoginIndex` (`Login`),
|
||||
KEY `GroupIndex` (`GroupName`),
|
||||
KEY `ToolsGroup` (`ToolsGroup`),
|
||||
KEY `CurrentSubLength` (`CurrentSubLength`),
|
||||
KEY `Community` (`Community`),
|
||||
KEY `Email` (`Email`),
|
||||
KEY `GMId` (`GMId`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='contains all users information for login system' AUTO_INCREMENT=5 ;
|
||||
`ApiKeySeed` varchar(8) DEFAULT NULL
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='contains all users information for login system';
|
||||
|
||||
--
|
||||
-- Indexes for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- Indexes for table `domain`
|
||||
--
|
||||
ALTER TABLE `domain`
|
||||
ADD PRIMARY KEY (`domain_id`), ADD UNIQUE KEY `name_idx` (`domain_name`);
|
||||
|
||||
--
|
||||
-- Indexes for table `permission`
|
||||
--
|
||||
ALTER TABLE `permission`
|
||||
ADD PRIMARY KEY (`prim`), ADD KEY `UIDIndex` (`UId`);
|
||||
|
||||
--
|
||||
-- Indexes for table `shard`
|
||||
--
|
||||
ALTER TABLE `shard`
|
||||
ADD PRIMARY KEY (`prim`);
|
||||
|
||||
--
|
||||
-- Indexes for table `user`
|
||||
--
|
||||
ALTER TABLE `user`
|
||||
ADD PRIMARY KEY (`UId`), ADD UNIQUE KEY `LoginIndex` (`Login`), ADD UNIQUE KEY `EmailIndex` (`Email`), ADD KEY `GroupIndex` (`GroupName`), ADD KEY `ToolsGroup` (`ToolsGroup`), ADD KEY `CurrentSubLength` (`CurrentSubLength`), ADD KEY `Community` (`Community`), ADD KEY `GMId` (`GMId`);
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `domain`
|
||||
--
|
||||
ALTER TABLE `domain`
|
||||
MODIFY `domain_id` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `permission`
|
||||
--
|
||||
ALTER TABLE `permission`
|
||||
MODIFY `prim` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `shard`
|
||||
--
|
||||
ALTER TABLE `shard`
|
||||
MODIFY `prim` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `user`
|
||||
--
|
||||
ALTER TABLE `user`
|
||||
MODIFY `UId` int(10) NOT NULL AUTO_INCREMENT;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
65
code/web/private_php/setup/sql/nel_ams_00001.sql
Normal file
65
code/web/private_php/setup/sql/nel_ams_00001.sql
Normal file
|
@ -0,0 +1,65 @@
|
|||
-- phpMyAdmin SQL Dump
|
||||
-- version 4.2.8
|
||||
-- http://www.phpmyadmin.net
|
||||
--
|
||||
-- Host: localhost
|
||||
-- Generation Time: Sep 02, 2014 at 03:37 PM
|
||||
-- Server version: 5.5.38-0+wheezy1-log
|
||||
-- PHP Version: 5.4.4-14+deb7u12
|
||||
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
|
||||
--
|
||||
-- Database: `ams_web`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `ams_user`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ams_user` (
|
||||
`UId` int(10) NOT NULL,
|
||||
`Login` varchar(64) NOT NULL DEFAULT '',
|
||||
`Password` varchar(13) DEFAULT NULL,
|
||||
`Email` varchar(255) NOT NULL DEFAULT '',
|
||||
`Permission` int(3) NOT NULL DEFAULT '1',
|
||||
`FirstName` varchar(255) NOT NULL DEFAULT '',
|
||||
`LastName` varchar(255) NOT NULL DEFAULT '',
|
||||
`Gender` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||
`Country` char(2) NOT NULL DEFAULT '',
|
||||
`ReceiveMail` int(1) NOT NULL DEFAULT '1',
|
||||
`Language` varchar(3) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Indexes for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- Indexes for table `ams_user`
|
||||
--
|
||||
ALTER TABLE `ams_user`
|
||||
ADD PRIMARY KEY (`UId`);
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `ams_user`
|
||||
--
|
||||
ALTER TABLE `ams_user`
|
||||
MODIFY `UId` int(10) NOT NULL AUTO_INCREMENT;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
|
582
code/web/private_php/setup/sql/nel_ams_lib_00001.sql
Normal file
582
code/web/private_php/setup/sql/nel_ams_lib_00001.sql
Normal file
|
@ -0,0 +1,582 @@
|
|||
-- phpMyAdmin SQL Dump
|
||||
-- version 4.2.8
|
||||
-- http://www.phpmyadmin.net
|
||||
--
|
||||
-- Host: localhost
|
||||
-- Generation Time: Sep 02, 2014 at 04:12 PM
|
||||
-- Server version: 5.5.38-0+wheezy1-log
|
||||
-- PHP Version: 5.4.4-14+deb7u12
|
||||
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
|
||||
--
|
||||
-- Database: `nel_ams_lib`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `ams_querycache`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ams_querycache` (
|
||||
`SID` int(11) NOT NULL,
|
||||
`type` varchar(64) NOT NULL,
|
||||
`query` varchar(512) NOT NULL,
|
||||
`db` varchar(80) NOT NULL
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `assigned`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `assigned` (
|
||||
`Ticket` int(10) unsigned NOT NULL,
|
||||
`User` int(10) unsigned NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `email`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `email` (
|
||||
`MailId` int(11) NOT NULL,
|
||||
`Recipient` varchar(50) DEFAULT NULL,
|
||||
`Subject` varchar(60) DEFAULT NULL,
|
||||
`Body` varchar(400) DEFAULT NULL,
|
||||
`Status` varchar(45) DEFAULT NULL,
|
||||
`Attempts` varchar(45) DEFAULT '0',
|
||||
`UserId` int(10) unsigned DEFAULT NULL,
|
||||
`MessageId` varchar(45) DEFAULT NULL,
|
||||
`TicketId` int(10) unsigned DEFAULT NULL,
|
||||
`Sender` int(10) unsigned DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `forwarded`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `forwarded` (
|
||||
`Group` int(10) unsigned NOT NULL,
|
||||
`Ticket` int(10) unsigned NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `in_group`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `in_group` (
|
||||
`Ticket_Group` int(10) unsigned NOT NULL,
|
||||
`Ticket` int(10) unsigned NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `in_support_group`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `in_support_group` (
|
||||
`User` int(10) unsigned NOT NULL,
|
||||
`Group` int(10) unsigned NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `plugins`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `plugins` (
|
||||
`Id` int(10) NOT NULL,
|
||||
`FileName` varchar(255) NOT NULL,
|
||||
`Name` varchar(56) NOT NULL,
|
||||
`Type` varchar(12) NOT NULL,
|
||||
`Owner` varchar(25) NOT NULL,
|
||||
`Permission` varchar(5) NOT NULL,
|
||||
`Status` int(11) NOT NULL DEFAULT '0',
|
||||
`Weight` int(11) NOT NULL DEFAULT '0',
|
||||
`Info` text
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `plugins`
|
||||
--
|
||||
|
||||
INSERT INTO `plugins` (`Id`, `FileName`, `Name`, `Type`, `Owner`, `Permission`, `Status`, `Weight`, `Info`) VALUES
|
||||
(1, 'API_key_management', 'API_key_management', 'automatic', '', 'admin', 0, 0, '{"PluginName":"API Key Management","Description":"Provides public access to the API''s by generating access tokens.","Version":"1.0.0","Type":"automatic","TemplatePath":"..\\/..\\/..\\/private_php\\/ams\\/plugins\\/API_key_management\\/templates\\/index.tpl","":null}'),
|
||||
(2, 'Achievements', 'Achievements', 'Manual', '', 'admin', 0, 0, '{"PluginName":"Achievements","Description":"Returns the achivements of a user with respect to the character =.","Version":"1.0.0","TemplatePath":"..\\/..\\/..\\/private_php\\/ams\\/plugins\\/Achievements\\/templates\\/index.tpl","Type":"Manual","":null}');
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `support_group`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `support_group` (
|
||||
`SGroupId` int(10) unsigned NOT NULL,
|
||||
`Name` varchar(22) NOT NULL,
|
||||
`Tag` varchar(7) NOT NULL,
|
||||
`GroupEmail` varchar(45) DEFAULT NULL,
|
||||
`IMAP_MailServer` varchar(60) DEFAULT NULL,
|
||||
`IMAP_Username` varchar(45) DEFAULT NULL,
|
||||
`IMAP_Password` varchar(90) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `tag`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `tag` (
|
||||
`TagId` int(10) unsigned NOT NULL,
|
||||
`Value` varchar(60) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `tagged`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `tagged` (
|
||||
`Ticket` int(10) unsigned NOT NULL,
|
||||
`Tag` int(10) unsigned NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `ticket`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ticket` (
|
||||
`TId` int(10) unsigned NOT NULL,
|
||||
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`Title` varchar(120) NOT NULL,
|
||||
`Status` int(11) DEFAULT '0',
|
||||
`Queue` int(11) DEFAULT '0',
|
||||
`Ticket_Category` int(10) unsigned NOT NULL,
|
||||
`Author` int(10) unsigned NOT NULL,
|
||||
`Priority` int(3) DEFAULT '0'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `ticket_category`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ticket_category` (
|
||||
`TCategoryId` int(10) unsigned NOT NULL,
|
||||
`Name` varchar(45) NOT NULL
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `ticket_category`
|
||||
--
|
||||
|
||||
INSERT INTO `ticket_category` (`TCategoryId`, `Name`) VALUES
|
||||
(2, 'Hacking'),
|
||||
(3, 'Ingame-Bug'),
|
||||
(5, 'Installation'),
|
||||
(1, 'Uncategorized'),
|
||||
(4, 'Website-Bug');
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `ticket_content`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ticket_content` (
|
||||
`TContentId` int(10) unsigned NOT NULL,
|
||||
`Content` text
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `ticket_group`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ticket_group` (
|
||||
`TGroupId` int(10) unsigned NOT NULL,
|
||||
`Title` varchar(80) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `ticket_info`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ticket_info` (
|
||||
`TInfoId` int(10) unsigned NOT NULL,
|
||||
`Ticket` int(10) unsigned NOT NULL,
|
||||
`ShardId` int(11) DEFAULT NULL,
|
||||
`UserPosition` varchar(65) DEFAULT NULL,
|
||||
`ViewPosition` varchar(65) DEFAULT NULL,
|
||||
`ClientVersion` varchar(65) DEFAULT NULL,
|
||||
`PatchVersion` varchar(65) DEFAULT NULL,
|
||||
`ServerTick` varchar(40) DEFAULT NULL,
|
||||
`ConnectState` varchar(40) DEFAULT NULL,
|
||||
`LocalAddress` varchar(70) DEFAULT NULL,
|
||||
`Memory` varchar(60) DEFAULT NULL,
|
||||
`OS` varchar(120) DEFAULT NULL,
|
||||
`Processor` varchar(120) DEFAULT NULL,
|
||||
`CPUID` varchar(50) DEFAULT NULL,
|
||||
`CpuMask` varchar(50) DEFAULT NULL,
|
||||
`HT` varchar(35) DEFAULT NULL,
|
||||
`NeL3D` varchar(120) DEFAULT NULL,
|
||||
`PlayerName` varchar(45) DEFAULT NULL,
|
||||
`UserId` int(11) DEFAULT NULL,
|
||||
`TimeInGame` varchar(50) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `ticket_log`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ticket_log` (
|
||||
`TLogId` int(10) unsigned NOT NULL,
|
||||
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`Query` varchar(255) NOT NULL,
|
||||
`Ticket` int(10) unsigned NOT NULL,
|
||||
`Author` int(10) unsigned DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `ticket_reply`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ticket_reply` (
|
||||
`TReplyId` int(10) unsigned NOT NULL,
|
||||
`Ticket` int(10) unsigned NOT NULL,
|
||||
`Author` int(10) unsigned NOT NULL,
|
||||
`Content` int(10) unsigned NOT NULL,
|
||||
`Timestamp` timestamp NULL DEFAULT NULL,
|
||||
`Hidden` tinyint(1) DEFAULT '0'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `ticket_user`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ticket_user` (
|
||||
`TUserId` int(10) unsigned NOT NULL,
|
||||
`Permission` int(3) NOT NULL DEFAULT '1',
|
||||
`ExternId` int(10) unsigned NOT NULL
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `updates`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `updates` (
|
||||
`s.no` int(10) NOT NULL,
|
||||
`PluginId` int(10) DEFAULT NULL,
|
||||
`UpdatePath` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`UpdateInfo` text CHARACTER SET utf8 COLLATE utf8_unicode_ci
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Indexes for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- Indexes for table `ams_querycache`
|
||||
--
|
||||
ALTER TABLE `ams_querycache`
|
||||
ADD PRIMARY KEY (`SID`);
|
||||
|
||||
--
|
||||
-- Indexes for table `assigned`
|
||||
--
|
||||
ALTER TABLE `assigned`
|
||||
ADD PRIMARY KEY (`Ticket`,`User`), ADD KEY `fk_assigned_ticket_idx` (`Ticket`), ADD KEY `fk_assigned_ams_user_idx` (`User`);
|
||||
|
||||
--
|
||||
-- Indexes for table `email`
|
||||
--
|
||||
ALTER TABLE `email`
|
||||
ADD PRIMARY KEY (`MailId`), ADD KEY `fk_email_ticket_user2` (`UserId`), ADD KEY `fk_email_ticket1` (`TicketId`), ADD KEY `fk_email_support_group1` (`Sender`);
|
||||
|
||||
--
|
||||
-- Indexes for table `forwarded`
|
||||
--
|
||||
ALTER TABLE `forwarded`
|
||||
ADD KEY `fk_forwarded_support_group1` (`Group`), ADD KEY `fk_forwarded_ticket1` (`Ticket`);
|
||||
|
||||
--
|
||||
-- Indexes for table `in_group`
|
||||
--
|
||||
ALTER TABLE `in_group`
|
||||
ADD PRIMARY KEY (`Ticket_Group`,`Ticket`), ADD KEY `fk_in_group_ticket_group_idx` (`Ticket_Group`), ADD KEY `fk_in_group_ticket_idx` (`Ticket`);
|
||||
|
||||
--
|
||||
-- Indexes for table `in_support_group`
|
||||
--
|
||||
ALTER TABLE `in_support_group`
|
||||
ADD KEY `fk_in_support_group_ticket_user1` (`User`), ADD KEY `fk_in_support_group_support_group1` (`Group`);
|
||||
|
||||
--
|
||||
-- Indexes for table `plugins`
|
||||
--
|
||||
ALTER TABLE `plugins`
|
||||
ADD PRIMARY KEY (`Id`);
|
||||
|
||||
--
|
||||
-- Indexes for table `support_group`
|
||||
--
|
||||
ALTER TABLE `support_group`
|
||||
ADD PRIMARY KEY (`SGroupId`), ADD UNIQUE KEY `Name_UNIQUE` (`Name`), ADD UNIQUE KEY `Tag_UNIQUE` (`Tag`);
|
||||
|
||||
--
|
||||
-- Indexes for table `tag`
|
||||
--
|
||||
ALTER TABLE `tag`
|
||||
ADD PRIMARY KEY (`TagId`), ADD UNIQUE KEY `Value_UNIQUE` (`Value`);
|
||||
|
||||
--
|
||||
-- Indexes for table `tagged`
|
||||
--
|
||||
ALTER TABLE `tagged`
|
||||
ADD PRIMARY KEY (`Ticket`,`Tag`), ADD KEY `fk_tagged_tag_idx` (`Tag`);
|
||||
|
||||
--
|
||||
-- Indexes for table `ticket`
|
||||
--
|
||||
ALTER TABLE `ticket`
|
||||
ADD PRIMARY KEY (`TId`), ADD KEY `fk_ticket_ticket_category_idx` (`Ticket_Category`), ADD KEY `fk_ticket_ams_user_idx` (`Author`);
|
||||
|
||||
--
|
||||
-- Indexes for table `ticket_category`
|
||||
--
|
||||
ALTER TABLE `ticket_category`
|
||||
ADD PRIMARY KEY (`TCategoryId`), ADD UNIQUE KEY `Name_UNIQUE` (`Name`);
|
||||
|
||||
--
|
||||
-- Indexes for table `ticket_content`
|
||||
--
|
||||
ALTER TABLE `ticket_content`
|
||||
ADD PRIMARY KEY (`TContentId`);
|
||||
|
||||
--
|
||||
-- Indexes for table `ticket_group`
|
||||
--
|
||||
ALTER TABLE `ticket_group`
|
||||
ADD PRIMARY KEY (`TGroupId`), ADD UNIQUE KEY `Title_UNIQUE` (`Title`);
|
||||
|
||||
--
|
||||
-- Indexes for table `ticket_info`
|
||||
--
|
||||
ALTER TABLE `ticket_info`
|
||||
ADD PRIMARY KEY (`TInfoId`), ADD KEY `fk_ticket_info_ticket1` (`Ticket`);
|
||||
|
||||
--
|
||||
-- Indexes for table `ticket_log`
|
||||
--
|
||||
ALTER TABLE `ticket_log`
|
||||
ADD PRIMARY KEY (`TLogId`), ADD KEY `fk_ticket_log_ticket1` (`Ticket`), ADD KEY `fk_ticket_log_ticket_user1` (`Author`);
|
||||
|
||||
--
|
||||
-- Indexes for table `ticket_reply`
|
||||
--
|
||||
ALTER TABLE `ticket_reply`
|
||||
ADD PRIMARY KEY (`TReplyId`), ADD KEY `fk_ticket_reply_ticket_idx` (`Ticket`), ADD KEY `fk_ticket_reply_ams_user_idx` (`Author`), ADD KEY `fk_ticket_reply_content_idx` (`Content`);
|
||||
|
||||
--
|
||||
-- Indexes for table `ticket_user`
|
||||
--
|
||||
ALTER TABLE `ticket_user`
|
||||
ADD PRIMARY KEY (`TUserId`);
|
||||
|
||||
--
|
||||
-- Indexes for table `updates`
|
||||
--
|
||||
ALTER TABLE `updates`
|
||||
ADD PRIMARY KEY (`s.no`), ADD KEY `PluginId` (`PluginId`);
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `ams_querycache`
|
||||
--
|
||||
ALTER TABLE `ams_querycache`
|
||||
MODIFY `SID` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=2;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `email`
|
||||
--
|
||||
ALTER TABLE `email`
|
||||
MODIFY `MailId` int(11) NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `plugins`
|
||||
--
|
||||
ALTER TABLE `plugins`
|
||||
MODIFY `Id` int(10) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `support_group`
|
||||
--
|
||||
ALTER TABLE `support_group`
|
||||
MODIFY `SGroupId` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `tag`
|
||||
--
|
||||
ALTER TABLE `tag`
|
||||
MODIFY `TagId` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `ticket`
|
||||
--
|
||||
ALTER TABLE `ticket`
|
||||
MODIFY `TId` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `ticket_category`
|
||||
--
|
||||
ALTER TABLE `ticket_category`
|
||||
MODIFY `TCategoryId` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=6;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `ticket_content`
|
||||
--
|
||||
ALTER TABLE `ticket_content`
|
||||
MODIFY `TContentId` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `ticket_group`
|
||||
--
|
||||
ALTER TABLE `ticket_group`
|
||||
MODIFY `TGroupId` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `ticket_info`
|
||||
--
|
||||
ALTER TABLE `ticket_info`
|
||||
MODIFY `TInfoId` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `ticket_log`
|
||||
--
|
||||
ALTER TABLE `ticket_log`
|
||||
MODIFY `TLogId` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `ticket_reply`
|
||||
--
|
||||
ALTER TABLE `ticket_reply`
|
||||
MODIFY `TReplyId` int(10) unsigned NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `ticket_user`
|
||||
--
|
||||
ALTER TABLE `ticket_user`
|
||||
MODIFY `TUserId` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=2;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `updates`
|
||||
--
|
||||
ALTER TABLE `updates`
|
||||
MODIFY `s.no` int(10) NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- Constraints for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- Constraints for table `assigned`
|
||||
--
|
||||
ALTER TABLE `assigned`
|
||||
ADD CONSTRAINT `fk_assigned_ticket` FOREIGN KEY (`Ticket`) REFERENCES `ticket` (`TId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_assigned_ams_user` FOREIGN KEY (`User`) REFERENCES `ticket_user` (`TUserId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
--
|
||||
-- Constraints for table `email`
|
||||
--
|
||||
ALTER TABLE `email`
|
||||
ADD CONSTRAINT `fk_email_ticket_user2` FOREIGN KEY (`UserId`) REFERENCES `ticket_user` (`TUserId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_email_ticket1` FOREIGN KEY (`TicketId`) REFERENCES `ticket` (`TId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_email_support_group1` FOREIGN KEY (`Sender`) REFERENCES `support_group` (`SGroupId`) ON DELETE CASCADE ON UPDATE NO ACTION;
|
||||
|
||||
--
|
||||
-- Constraints for table `forwarded`
|
||||
--
|
||||
ALTER TABLE `forwarded`
|
||||
ADD CONSTRAINT `fk_forwarded_support_group1` FOREIGN KEY (`Group`) REFERENCES `support_group` (`SGroupId`) ON DELETE CASCADE ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_forwarded_ticket1` FOREIGN KEY (`Ticket`) REFERENCES `ticket` (`TId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
--
|
||||
-- Constraints for table `in_group`
|
||||
--
|
||||
ALTER TABLE `in_group`
|
||||
ADD CONSTRAINT `fk_in_group_ticket_group` FOREIGN KEY (`Ticket_Group`) REFERENCES `ticket_group` (`TGroupId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_in_group_ticket` FOREIGN KEY (`Ticket`) REFERENCES `ticket` (`TId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
--
|
||||
-- Constraints for table `in_support_group`
|
||||
--
|
||||
ALTER TABLE `in_support_group`
|
||||
ADD CONSTRAINT `fk_in_support_group_ticket_user1` FOREIGN KEY (`User`) REFERENCES `ticket_user` (`TUserId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_in_support_group_support_group1` FOREIGN KEY (`Group`) REFERENCES `support_group` (`SGroupId`) ON DELETE CASCADE ON UPDATE NO ACTION;
|
||||
|
||||
--
|
||||
-- Constraints for table `tagged`
|
||||
--
|
||||
ALTER TABLE `tagged`
|
||||
ADD CONSTRAINT `fk_tagged_ticket` FOREIGN KEY (`Ticket`) REFERENCES `ticket` (`TId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_tagged_tag` FOREIGN KEY (`Tag`) REFERENCES `tag` (`TagId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
--
|
||||
-- Constraints for table `ticket`
|
||||
--
|
||||
ALTER TABLE `ticket`
|
||||
ADD CONSTRAINT `fk_ticket_ticket_category` FOREIGN KEY (`Ticket_Category`) REFERENCES `ticket_category` (`TCategoryId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_ticket_ams_user` FOREIGN KEY (`Author`) REFERENCES `ticket_user` (`TUserId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
--
|
||||
-- Constraints for table `ticket_info`
|
||||
--
|
||||
ALTER TABLE `ticket_info`
|
||||
ADD CONSTRAINT `fk_ticket_info_ticket1` FOREIGN KEY (`Ticket`) REFERENCES `ticket` (`TId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
--
|
||||
-- Constraints for table `ticket_log`
|
||||
--
|
||||
ALTER TABLE `ticket_log`
|
||||
ADD CONSTRAINT `fk_ticket_log_ticket1` FOREIGN KEY (`Ticket`) REFERENCES `ticket` (`TId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_ticket_log_ticket_user1` FOREIGN KEY (`Author`) REFERENCES `ticket_user` (`TUserId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
--
|
||||
-- Constraints for table `ticket_reply`
|
||||
--
|
||||
ALTER TABLE `ticket_reply`
|
||||
ADD CONSTRAINT `fk_ticket_reply_ticket` FOREIGN KEY (`Ticket`) REFERENCES `ticket` (`TId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_ticket_reply_ams_user` FOREIGN KEY (`Author`) REFERENCES `ticket_user` (`TUserId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
ADD CONSTRAINT `fk_ticket_reply_ticket_content` FOREIGN KEY (`Content`) REFERENCES `ticket_content` (`TContentId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
--
|
||||
-- Constraints for table `updates`
|
||||
--
|
||||
ALTER TABLE `updates`
|
||||
ADD CONSTRAINT `updates_ibfk_1` FOREIGN KEY (`PluginId`) REFERENCES `plugins` (`Id`);
|
||||
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
@ -36,14 +36,14 @@ CREATE TABLE IF NOT EXISTS `neltool_annotations` (
|
|||
PRIMARY KEY (`annotation_id`),
|
||||
UNIQUE KEY `annotation_shard_id` (`annotation_shard_id`),
|
||||
UNIQUE KEY `annotation_domain_id` (`annotation_domain_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `neltool_annotations`
|
||||
--
|
||||
|
||||
INSERT INTO `neltool_annotations` (`annotation_id`, `annotation_domain_id`, `annotation_shard_id`, `annotation_data`, `annotation_user_name`, `annotation_date`) VALUES
|
||||
(12, NULL, 106, 'Welcome to the Shard Admin Website!', 'vl', 1272378352);
|
||||
(1, NULL, 106, 'Welcome to the Shard Admin Website!', 'vl', 1272378352);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -126,7 +126,7 @@ CREATE TABLE IF NOT EXISTS `neltool_domains` (
|
|||
`domain_mfs_web` text,
|
||||
`domain_cs_sql_string` varchar(255) DEFAULT NULL,
|
||||
PRIMARY KEY (`domain_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -143,7 +143,7 @@ CREATE TABLE IF NOT EXISTS `neltool_groups` (
|
|||
`group_default_domain_id` tinyint(3) unsigned DEFAULT NULL,
|
||||
`group_default_shard_id` smallint(3) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`group_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `neltool_groups`
|
||||
|
@ -370,7 +370,7 @@ CREATE TABLE IF NOT EXISTS `neltool_group_domains` (
|
|||
`group_domain_domain_id` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`group_domain_id`),
|
||||
KEY `group_domain_group_id` (`group_domain_group_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=97 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -386,7 +386,7 @@ CREATE TABLE IF NOT EXISTS `neltool_group_shards` (
|
|||
PRIMARY KEY (`group_shard_id`),
|
||||
KEY `group_shard_group_id` (`group_shard_group_id`),
|
||||
KEY `group_shard_domain_id` (`group_shard_domain_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1532 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `neltool_group_shards`
|
||||
|
@ -408,7 +408,7 @@ CREATE TABLE IF NOT EXISTS `neltool_locks` (
|
|||
PRIMARY KEY (`lock_id`),
|
||||
UNIQUE KEY `lock_shard_id` (`lock_shard_id`),
|
||||
UNIQUE KEY `lock_domain_id` (`lock_domain_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -422,7 +422,7 @@ CREATE TABLE IF NOT EXISTS `neltool_logs` (
|
|||
`logs_date` int(11) NOT NULL DEFAULT '0',
|
||||
`logs_data` varchar(255) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`logs_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=83 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -523,7 +523,7 @@ CREATE TABLE IF NOT EXISTS `neltool_restart_sequences` (
|
|||
`restart_sequence_date_end` int(11) DEFAULT NULL,
|
||||
`restart_sequence_timer` int(11) unsigned DEFAULT '0',
|
||||
PRIMARY KEY (`restart_sequence_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -540,7 +540,7 @@ CREATE TABLE IF NOT EXISTS `neltool_shards` (
|
|||
`shard_restart` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`shard_id`),
|
||||
KEY `shard_domain_id` (`shard_domain_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=403 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -561,7 +561,7 @@ CREATE TABLE IF NOT EXISTS `neltool_stats_hd_datas` (
|
|||
PRIMARY KEY (`hd_id`),
|
||||
KEY `hd_domain_id` (`hd_domain_id`),
|
||||
KEY `hd_server` (`hd_server`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -595,14 +595,14 @@ CREATE TABLE IF NOT EXISTS `neltool_users` (
|
|||
UNIQUE KEY `user_login` (`user_name`),
|
||||
KEY `user_group_id` (`user_group_id`),
|
||||
KEY `user_active` (`user_active`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=34 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `neltool_users`
|
||||
--
|
||||
|
||||
INSERT INTO `neltool_users` (`user_id`, `user_name`, `user_password`, `user_group_id`, `user_created`, `user_active`, `user_logged_last`, `user_logged_count`, `user_menu_style`) VALUES
|
||||
(33, 'guest', '084e0343a0486ff05530df6c705c8bb4', 1, 1405357395, 1, 0, 0, 0);
|
||||
(1, 'guest', '084e0343a0486ff05530df6c705c8bb4', 1, 1405357395, 1, 0, 0, 0);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -617,7 +617,7 @@ CREATE TABLE IF NOT EXISTS `neltool_user_applications` (
|
|||
PRIMARY KEY (`user_application_id`),
|
||||
KEY `user_application_user_id` (`user_application_user_id`),
|
||||
KEY `user_application_application_id` (`user_application_application_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -631,7 +631,7 @@ CREATE TABLE IF NOT EXISTS `neltool_user_domains` (
|
|||
`user_domain_domain_id` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`user_domain_id`),
|
||||
KEY `user_domain_user_id` (`user_domain_user_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -647,7 +647,7 @@ CREATE TABLE IF NOT EXISTS `neltool_user_shards` (
|
|||
PRIMARY KEY (`user_shard_id`),
|
||||
KEY `user_shard_user_id` (`user_shard_user_id`),
|
||||
KEY `user_shard_domain_id` (`user_shard_domain_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=166 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
@ -358,7 +358,7 @@ CREATE TABLE IF NOT EXISTS `sessions` (
|
|||
KEY `owner_idx` (`owner`),
|
||||
KEY `folder_idx` (`folder_id`),
|
||||
KEY `state_type_idx` (`state`,`session_type`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=303 ;
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=1001 ;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
|
@ -5,16 +5,16 @@
|
|||
-- HeidiSQL version: 7.0.0.4053
|
||||
-- Date/time: 2013-02-12 16:14:54
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
|
||||
|
||||
|
||||
-- Dumping database structure for webig
|
||||
CREATE DATABASE IF NOT EXISTS `webig` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
|
||||
USE `webig`;
|
||||
|
||||
|
||||
-- CREATE DATABASE IF NOT EXISTS `webig` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
|
||||
-- USE `webig`;
|
||||
|
||||
|
||||
-- Dumping structure for table webig.players
|
||||
CREATE TABLE IF NOT EXISTS `players` (
|
||||
`id` INT(32) NOT NULL AUTO_INCREMENT,
|
||||
|
@ -27,7 +27,7 @@ CREATE TABLE IF NOT EXISTS `players` (
|
|||
`dev_shard` tinyint(4) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||
|
||||
|
||||
-- Dumping structure for table webig.accounts
|
||||
CREATE TABLE IF NOT EXISTS `accounts` (
|
||||
`uid` INT(10) DEFAULT NULL,
|
|
@ -260,7 +260,7 @@ class WebUsers extends Users{
|
|||
try {
|
||||
//make connection with and put into shard db
|
||||
$dbw = new DBLayer("web");
|
||||
$dbw->update("ams_user", $values, "Login = $user");
|
||||
$dbw->update("ams_user", $values, "Login = '$user'");
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
//ERROR: the web DB is offline
|
||||
|
|
10
code/web/public_php/ams/css/animate.min.css
vendored
Normal file
10
code/web/public_php/ams/css/animate.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
code/web/public_php/ams/css/bootstrap-cerulean.min.css
vendored
Normal file
7
code/web/public_php/ams/css/bootstrap-cerulean.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
code/web/public_php/ams/css/bootstrap-cyborg.min.css
vendored
Normal file
7
code/web/public_php/ams/css/bootstrap-cyborg.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
code/web/public_php/ams/css/bootstrap-darkly.min.css
vendored
Normal file
7
code/web/public_php/ams/css/bootstrap-darkly.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
code/web/public_php/ams/css/bootstrap-lumen.min.css
vendored
Normal file
7
code/web/public_php/ams/css/bootstrap-lumen.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
code/web/public_php/ams/css/bootstrap-simplex.min.css
vendored
Normal file
7
code/web/public_php/ams/css/bootstrap-simplex.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
code/web/public_php/ams/css/bootstrap-slate.min.css
vendored
Normal file
7
code/web/public_php/ams/css/bootstrap-slate.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
code/web/public_php/ams/css/bootstrap-spacelab.min.css
vendored
Normal file
7
code/web/public_php/ams/css/bootstrap-spacelab.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
code/web/public_php/ams/css/bootstrap-united.min.css
vendored
Normal file
7
code/web/public_php/ams/css/bootstrap-united.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
|
@ -8,6 +8,7 @@
|
|||
|
||||
.top-block {
|
||||
background-color: white;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.row-fluid [class*="span"] {
|
||||
|
@ -48,4 +49,80 @@
|
|||
position:relative;
|
||||
left:67%;
|
||||
top:210px;
|
||||
}
|
||||
|
||||
.input-prepend .add-on,
|
||||
.input-append .add-on {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
select,
|
||||
textarea,
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="datetime"],
|
||||
input[type="datetime-local"],
|
||||
input[type="date"],
|
||||
input[type="month"],
|
||||
input[type="time"],
|
||||
input[type="week"],
|
||||
input[type="number"],
|
||||
input[type="email"],
|
||||
input[type="url"],
|
||||
input[type="search"],
|
||||
input[type="tel"],
|
||||
input[type="color"],
|
||||
.uneditable-input {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.btn .caret {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.btn .caret {
|
||||
border-top-color: #333;
|
||||
}
|
||||
|
||||
.table-bordered {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.table {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.nav {
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
|
||||
.radio, .checkbox {
|
||||
display: table-row-group;
|
||||
}
|
||||
|
||||
.gender-list {
|
||||
margin-left: 22px;
|
||||
}
|
||||
|
||||
.lg-icon {
|
||||
font-size: 20px;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.sidebar-nav {
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.sidebar-nav .nav-header{
|
||||
color:#666;
|
||||
}
|
||||
|
||||
.flags_logged_in{
|
||||
display: inline;
|
||||
position:absolute;
|
||||
margin:7px;
|
||||
}
|
||||
|
||||
.setup-width {
|
||||
width:75%;
|
||||
}
|
BIN
code/web/public_php/ams/fonts/glyphicons-halflings-regular.eot
Normal file
BIN
code/web/public_php/ams/fonts/glyphicons-halflings-regular.eot
Normal file
Binary file not shown.
229
code/web/public_php/ams/fonts/glyphicons-halflings-regular.svg
Normal file
229
code/web/public_php/ams/fonts/glyphicons-halflings-regular.svg
Normal file
|
@ -0,0 +1,229 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata></metadata>
|
||||
<defs>
|
||||
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
|
||||
<font-face units-per-em="1200" ascent="960" descent="-240" />
|
||||
<missing-glyph horiz-adv-x="500" />
|
||||
<glyph />
|
||||
<glyph />
|
||||
<glyph unicode="
" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
|
||||
<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode=" " horiz-adv-x="652" />
|
||||
<glyph unicode=" " horiz-adv-x="1304" />
|
||||
<glyph unicode=" " horiz-adv-x="652" />
|
||||
<glyph unicode=" " horiz-adv-x="1304" />
|
||||
<glyph unicode=" " horiz-adv-x="434" />
|
||||
<glyph unicode=" " horiz-adv-x="326" />
|
||||
<glyph unicode=" " horiz-adv-x="217" />
|
||||
<glyph unicode=" " horiz-adv-x="217" />
|
||||
<glyph unicode=" " horiz-adv-x="163" />
|
||||
<glyph unicode=" " horiz-adv-x="260" />
|
||||
<glyph unicode=" " horiz-adv-x="72" />
|
||||
<glyph unicode=" " horiz-adv-x="260" />
|
||||
<glyph unicode=" " horiz-adv-x="326" />
|
||||
<glyph unicode="€" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
|
||||
<glyph unicode="−" d="M200 400h900v300h-900v-300z" />
|
||||
<glyph unicode="☁" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
|
||||
<glyph unicode="✉" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
|
||||
<glyph unicode="✏" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
|
||||
<glyph unicode="" horiz-adv-x="500" d="M0 0z" />
|
||||
<glyph unicode="" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
|
||||
<glyph unicode="" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
|
||||
<glyph unicode="" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
|
||||
<glyph unicode="" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
|
||||
<glyph unicode="" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
|
||||
<glyph unicode="" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
|
||||
<glyph unicode="" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
|
||||
<glyph unicode="" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
|
||||
<glyph unicode="" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
|
||||
<glyph unicode="" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
|
||||
<glyph unicode="" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
|
||||
<glyph unicode="" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
|
||||
<glyph unicode="" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
|
||||
<glyph unicode="" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
|
||||
<glyph unicode="" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
|
||||
<glyph unicode="" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
|
||||
<glyph unicode="" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
|
||||
<glyph unicode="" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
|
||||
<glyph unicode="" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
|
||||
<glyph unicode="" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
|
||||
<glyph unicode="" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
|
||||
<glyph unicode="" d="M0 25v475l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
|
||||
<glyph unicode="" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
|
||||
<glyph unicode="" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
|
||||
<glyph unicode="" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
|
||||
<glyph unicode="" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
|
||||
<glyph unicode="" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
|
||||
<glyph unicode="" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
|
||||
<glyph unicode="" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
|
||||
<glyph unicode="" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
|
||||
<glyph unicode="" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
|
||||
<glyph unicode="" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
|
||||
<glyph unicode="" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
|
||||
<glyph unicode="" d="M1 700v475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
|
||||
<glyph unicode="" d="M2 700v475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
|
||||
<glyph unicode="" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
|
||||
<glyph unicode="" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
|
||||
<glyph unicode="" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
|
||||
<glyph unicode="" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
|
||||
<glyph unicode="" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
|
||||
<glyph unicode="" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v70h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
|
||||
<glyph unicode="" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
|
||||
<glyph unicode="" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
|
||||
<glyph unicode="" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
|
||||
<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
|
||||
<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
|
||||
<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
|
||||
<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
|
||||
<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
|
||||
<glyph unicode="" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
|
||||
<glyph unicode="" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
|
||||
<glyph unicode="" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
|
||||
<glyph unicode="" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
|
||||
<glyph unicode="" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
|
||||
<glyph unicode="" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
|
||||
<glyph unicode="" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
|
||||
<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
|
||||
<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
|
||||
<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l566 567l-136 137l-430 -431l-147 147z" />
|
||||
<glyph unicode="" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
|
||||
<glyph unicode="" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
|
||||
<glyph unicode="" d="M200 0l900 550l-900 550v-1100z" />
|
||||
<glyph unicode="" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
|
||||
<glyph unicode="" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
|
||||
<glyph unicode="" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
|
||||
<glyph unicode="" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
|
||||
<glyph unicode="" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
|
||||
<glyph unicode="" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
|
||||
<glyph unicode="" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
|
||||
<glyph unicode="" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h600v200h-600v-200z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM363 700h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26 q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-105 0 -172 -56t-67 -183zM500 300h200v100h-200v-100z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
|
||||
<glyph unicode="" d="M0 500v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200 v-206q149 48 201 206h-201v200h200q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
|
||||
<glyph unicode="" d="M0 547l600 453v-300h600v-300h-600v-301z" />
|
||||
<glyph unicode="" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
|
||||
<glyph unicode="" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
|
||||
<glyph unicode="" d="M104 600h296v600h300v-600h298l-449 -600z" />
|
||||
<glyph unicode="" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
|
||||
<glyph unicode="" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
|
||||
<glyph unicode="" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
|
||||
<glyph unicode="" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
|
||||
<glyph unicode="" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100z M100 0h400v400h-400v-400zM200 900q-3 0 14 48t35 96l18 47l214 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
|
||||
<glyph unicode="" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
|
||||
<glyph unicode="" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
|
||||
<glyph unicode="" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
|
||||
<glyph unicode="" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
|
||||
<glyph unicode="" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
|
||||
<glyph unicode="" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64 q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
|
||||
<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
|
||||
<glyph unicode="" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
|
||||
<glyph unicode="" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
|
||||
<glyph unicode="" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
|
||||
<glyph unicode="" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
|
||||
<glyph unicode="" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
|
||||
<glyph unicode="" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
|
||||
<glyph unicode="" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
|
||||
<glyph unicode="" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
|
||||
<glyph unicode="" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
|
||||
<glyph unicode="" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
|
||||
<glyph unicode="" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
|
||||
<glyph unicode="" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
|
||||
<glyph unicode="" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM99 500v250v5q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351z M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
|
||||
<glyph unicode="" d="M74 350q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37 t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
|
||||
<glyph unicode="" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
|
||||
<glyph unicode="" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 212l100 213h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
|
||||
<glyph unicode="" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
|
||||
<glyph unicode="" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
|
||||
<glyph unicode="" d="M-101 651q0 72 54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM999 201v600h200v-600h-200z" />
|
||||
<glyph unicode="" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
|
||||
<glyph unicode="" d="M1 585q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM76 565l237 339h503l89 -100v-294l-340 -130 q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
|
||||
<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 500h300l-2 -194l402 294l-402 298v-197h-298v-201z" />
|
||||
<glyph unicode="" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l400 -294v194h302v201h-300v197z" />
|
||||
<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
|
||||
<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
|
||||
<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -34 5.5 -93t7.5 -87q0 -9 17 -44t16 -60q12 0 23 -5.5 t23 -15t20 -13.5q20 -10 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55.5t-20 -57.5q12 -21 22.5 -34.5t28 -27t36.5 -17.5q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q101 -2 221 111q31 30 47 48t34 49t21 62q-14 9 -37.5 9.5t-35.5 7.5q-14 7 -49 15t-52 19 q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q8 16 22 22q6 -1 26 -1.5t33.5 -4.5t19.5 -13q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5 t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23 q-19 -3 -37 0q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -46 0t-45 -3q-20 -6 -51.5 -25.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79zM518 915q3 12 16 30.5t16 25.5q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -18 8 -42.5t16.5 -44 t9.5 -23.5q-6 1 -39 5t-53.5 10t-36.5 16z" />
|
||||
<glyph unicode="" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
|
||||
<glyph unicode="" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
|
||||
<glyph unicode="" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
|
||||
<glyph unicode="" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
|
||||
<glyph unicode="" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM513 609q0 32 21 56.5t52 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-16 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5q-37 0 -62.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
|
||||
<glyph unicode="" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36 q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60l517 511 q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
|
||||
<glyph unicode="" d="M79 784q0 131 99 229.5t230 98.5q144 0 242 -129q103 129 245 129q130 0 227 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100l-84.5 84.5t-68 74t-60 78t-33.5 70.5t-15 78z M250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-106 48.5q-73 0 -131 -83l-118 -171l-114 174q-51 80 -124 80q-59 0 -108.5 -49.5t-49.5 -118.5z" />
|
||||
<glyph unicode="" d="M57 353q0 -94 66 -160l141 -141q66 -66 159 -66q95 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141l19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
|
||||
<glyph unicode="" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
|
||||
<glyph unicode="" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
|
||||
<glyph unicode="" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5v-307l64 -14 q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5zM700 237 q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
|
||||
<glyph unicode="" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5 t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10 t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221z" />
|
||||
<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
|
||||
<glyph unicode="" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
|
||||
<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
|
||||
<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
|
||||
<glyph unicode="" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
|
||||
<glyph unicode="" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
|
||||
<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
|
||||
<glyph unicode="" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
|
||||
<glyph unicode="" d="M216 519q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40z" />
|
||||
<glyph unicode="" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
|
||||
<glyph unicode="" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
|
||||
<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
|
||||
<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
|
||||
<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
|
||||
<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 401h700v699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
|
||||
<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l248 -237v700h-699zM900 150h100v50h-100v-50z" />
|
||||
<glyph unicode="" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
|
||||
<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
|
||||
<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
|
||||
<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
|
||||
<glyph unicode="" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
|
||||
<glyph unicode="" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359z" />
|
||||
<glyph unicode="" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
|
||||
<glyph unicode="" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
|
||||
<glyph unicode="" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118q17 17 20 41.5 t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
|
||||
<glyph unicode="" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
|
||||
<glyph unicode="" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
|
||||
<glyph unicode="" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
|
||||
<glyph unicode="" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
|
||||
<glyph unicode="" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300 h200l-300 -300z" />
|
||||
<glyph unicode="" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
|
||||
<glyph unicode="" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
|
||||
<glyph unicode="" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
|
||||
</font>
|
||||
</defs></svg>
|
After Width: | Height: | Size: 61 KiB |
BIN
code/web/public_php/ams/fonts/glyphicons-halflings-regular.ttf
Normal file
BIN
code/web/public_php/ams/fonts/glyphicons-halflings-regular.ttf
Normal file
Binary file not shown.
BIN
code/web/public_php/ams/fonts/glyphicons-halflings-regular.woff
Normal file
BIN
code/web/public_php/ams/fonts/glyphicons-halflings-regular.woff
Normal file
Binary file not shown.
|
@ -4,14 +4,14 @@
|
|||
* This can be done by providing id using $_GET global variable of the plugin which
|
||||
* we want to activate. After getting id we update the respective plugin with status
|
||||
* activate which here means '1' .
|
||||
*
|
||||
* @author Shubham Meena, mentored by Matthew Lagoe
|
||||
*
|
||||
* @author Shubham Meena, mentored by Matthew Lagoe
|
||||
*/
|
||||
function activate_plugin() {
|
||||
|
||||
|
||||
// if logged in
|
||||
if ( WebUsers :: isLoggedIn() ) {
|
||||
|
||||
|
||||
if ( isset( $_GET['id'] ) )
|
||||
{
|
||||
// id of plugin to activate
|
||||
|
@ -21,21 +21,24 @@ function activate_plugin() {
|
|||
if ( $result )
|
||||
{
|
||||
// if result is successfull it redirects and shows success message
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=3" );
|
||||
exit;
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
else
|
||||
{
|
||||
//if result is unsuccessfull it redirects and throws error
|
||||
//if result is unsuccessfull it redirects and throws error
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=4" );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//if $_GET variable is not set it redirects and shows error
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=4" );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ function add_sgroup(){
|
|||
global $INGAME_WEBPATH;
|
||||
global $WEBPATH;
|
||||
if(WebUsers::isLoggedIn()){
|
||||
|
||||
|
||||
//check if admin
|
||||
if( Ticket_User::isAdmin(unserialize($_SESSION['ticket_user']))){
|
||||
$name = filter_var($_POST['Name'],FILTER_SANITIZE_STRING);
|
||||
|
@ -20,7 +20,7 @@ function add_sgroup(){
|
|||
$imap_mailserver = filter_var($_POST['IMAP_MailServer'], FILTER_SANITIZE_STRING);
|
||||
$imap_username = filter_var($_POST['IMAP_Username'], FILTER_SANITIZE_STRING);
|
||||
$imap_password = filter_var($_POST['IMAP_Password'], FILTER_SANITIZE_STRING);
|
||||
|
||||
|
||||
//create a new support group
|
||||
$result['RESULT_OF_ADDING'] = Support_Group::createSupportGroup($name, $tag, $groupemail, $imap_mailserver, $imap_username, $imap_password);
|
||||
$result['permission'] = unserialize($_SESSION['ticket_user'])->getPermission();
|
||||
|
@ -30,6 +30,7 @@ function add_sgroup(){
|
|||
require($SITEBASE . '/inc/sgroup_list.php');
|
||||
$result= array_merge($result, sgroup_list());
|
||||
return $result;
|
||||
header("Cache-Control: max-age=1");
|
||||
/*if (Helpers::check_if_game_client()) {
|
||||
header("Location: ".$INGAME_WEBPATH."?page=sgroup_list");
|
||||
}else{
|
||||
|
@ -40,13 +41,15 @@ function add_sgroup(){
|
|||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@ function add_user(){
|
|||
//check if the POST variables are valid, before actual registering
|
||||
$result = $webUser->check_Register($params);
|
||||
|
||||
global $SITEBASE;
|
||||
require_once($SITEBASE . '/inc/settings.php');
|
||||
// if all are good then create user
|
||||
if ( $result == "success"){
|
||||
$edit = array(
|
||||
|
@ -30,22 +32,30 @@ function add_user(){
|
|||
if(Helpers::check_if_game_client()){
|
||||
//if registering ingame then we have to set the header and dont need to reload the template.
|
||||
header('Location: email_sent.php');
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
$pageElements['status'] = $status;
|
||||
$pageElements['no_visible_elements'] = 'TRUE';
|
||||
$pageElements['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
helpers :: loadtemplate( 'register_feedback', $pageElements);
|
||||
exit;
|
||||
}elseif ($_POST['page']=="settings"){
|
||||
$pageElements = settings();
|
||||
$pageElements['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
$pageElements['permission'] = unserialize($_SESSION['ticket_user'])->getPermission();
|
||||
$pageElements['SUCCESS_ADD'] = $status;
|
||||
if (isset($_GET['page']) && $_GET['page']=="settings"){
|
||||
helpers :: loadtemplate( 'settings', $pageElements);
|
||||
}else{
|
||||
$pageElements['no_visible_elements'] = 'TRUE';
|
||||
helpers :: loadtemplate( 'register_feedback', $pageElements);
|
||||
}
|
||||
throw new SystemExit();
|
||||
}elseif (isset($_GET['page']) && $_GET['page']=="settings"){
|
||||
$pageElements = array_merge(settings(), $result);
|
||||
// pass error and reload template accordingly
|
||||
$result['prevUsername'] = $_POST["Username"];
|
||||
$result['prevPassword'] = $_POST["Password"];
|
||||
$result['prevConfirmPass'] = $_POST["ConfirmPass"];
|
||||
$result['prevEmail'] = $_POST["Email"];
|
||||
$result['no_visible_elements'] = 'TRUE';
|
||||
helpers :: loadtemplate( 'settings', $result);
|
||||
exit;
|
||||
$pageElements['prevUsername'] = $_POST["Username"];
|
||||
$pageElements['prevPassword'] = $_POST["Password"];
|
||||
$pageElements['prevConfirmPass'] = $_POST["ConfirmPass"];
|
||||
$pageElements['prevEmail'] = $_POST["Email"];
|
||||
$pageElements['permission'] = unserialize($_SESSION['ticket_user'])->getPermission();
|
||||
$pageElements['do'] = "add_user";
|
||||
helpers :: loadtemplate( 'settings', $pageElements);
|
||||
throw new SystemExit();
|
||||
}else{
|
||||
// pass error and reload template accordingly
|
||||
$result['prevUsername'] = $_POST["Username"];
|
||||
|
@ -55,7 +65,7 @@ function add_user(){
|
|||
$result['no_visible_elements'] = 'TRUE';
|
||||
$pageElements['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
helpers :: loadtemplate( 'register', $result);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -83,7 +93,7 @@ function write_user($newUser){
|
|||
}catch (PDOException $e) {
|
||||
//go to error page or something, because can't access website db
|
||||
print_r($e);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
|
|
@ -9,7 +9,7 @@ function add_user_to_sgroup(){
|
|||
global $INGAME_WEBPATH;
|
||||
global $WEBPATH;
|
||||
if(WebUsers::isLoggedIn()){
|
||||
|
||||
|
||||
//check if the that executed the task is an admin.
|
||||
if( Ticket_User::isAdmin(unserialize($_SESSION['ticket_user'])) && isset($_POST['target_id'])){
|
||||
$name = filter_var($_POST['Name'],FILTER_SANITIZE_STRING);
|
||||
|
@ -24,7 +24,7 @@ function add_user_to_sgroup(){
|
|||
//return error message.
|
||||
$result['RESULT_OF_ADDING'] = "NOT_MOD_OR_ADMIN";
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
$result['RESULT_OF_ADDING'] = "USER_NOT_EXISTING";
|
||||
}
|
||||
|
@ -36,22 +36,26 @@ function add_user_to_sgroup(){
|
|||
//$result= array_merge($result, show_sgroup());
|
||||
//helpers :: loadtemplate( 'show_sgroup', $result);
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: ".$INGAME_WEBPATH."?page=show_sgroup&id=".$id);
|
||||
}else{
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: ".$WEBPATH."?page=show_sgroup&id=".$id);
|
||||
}
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
function change_info(){
|
||||
|
||||
|
||||
try{
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn()){
|
||||
|
||||
|
||||
if(isset($_POST['target_id'])){
|
||||
|
||||
// check if the user who executed this function is the person of whom the information is or if it's a mod/admin.
|
||||
|
||||
// check if the user who executed this function is the person of whom the information is or if it's a mod/admin.
|
||||
if( ($_POST['target_id'] == $_SESSION['id']) || Ticket_User::isMod(unserialize($_SESSION['ticket_user']) ) ){
|
||||
if($_POST['target_id'] == $_SESSION['id']){
|
||||
//if the info is of the executing user himself
|
||||
|
@ -24,21 +24,21 @@ function change_info(){
|
|||
$webUser = new WebUsers($_POST['target_id']);
|
||||
$target_username = $webUser->getUsername();
|
||||
}
|
||||
|
||||
|
||||
$webUser = new WebUsers($_POST['target_id']);
|
||||
//use current info to check for changes
|
||||
$current_info = $webUser->getInfo();
|
||||
|
||||
|
||||
$current_info['FirstName'] = filter_var($current_info['FirstName'], FILTER_SANITIZE_STRING);
|
||||
$current_info['LastName'] = filter_var($current_info['LastName'], FILTER_SANITIZE_STRING);
|
||||
$current_info['Country'] = filter_var($current_info['Country'], FILTER_SANITIZE_STRING);
|
||||
$current_info['Gender'] = filter_var($current_info['Gender'], FILTER_SANITIZE_NUMBER_INT);
|
||||
|
||||
|
||||
|
||||
|
||||
$updated = false;
|
||||
$values = Array();
|
||||
$values['user'] = $target_username;
|
||||
|
||||
|
||||
//make the query that will update the data.
|
||||
$query = "UPDATE ams_user SET ";
|
||||
if(($_POST['FirstName'] != "") && ($_POST['FirstName'] != $current_info['FirstName'])){
|
||||
|
@ -72,7 +72,7 @@ function change_info(){
|
|||
}
|
||||
$updated = true;
|
||||
$values['gender'] = filter_var($_POST['Gender'], FILTER_SANITIZE_NUMBER_INT);
|
||||
}
|
||||
}
|
||||
//finish the query!
|
||||
$query = $query . "WHERE Login = :user";
|
||||
|
||||
|
@ -80,7 +80,7 @@ function change_info(){
|
|||
if($updated){
|
||||
//execute the query in the web DB.
|
||||
$dbw = new DBLayer("web");
|
||||
$dbw->execute($query,$values);
|
||||
$dbw->execute($query,$values);
|
||||
}
|
||||
|
||||
//reload the settings inc function before recalling the settings template.
|
||||
|
@ -97,29 +97,32 @@ function change_info(){
|
|||
global $INGAME_WEBPATH;
|
||||
$result['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
helpers :: loadtemplate( 'settings', $result);
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}else{
|
||||
//ERROR: permission denied!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: The form was not filled in correclty
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=settings");
|
||||
exit;
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: user is not logged in
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}catch (PDOException $e) {
|
||||
//go to error page or something, because can't access website db
|
||||
print_r($e);
|
||||
exit;
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ function change_mail(){
|
|||
}
|
||||
}
|
||||
helpers :: loadtemplate( 'settings', $result);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
|
||||
}else{
|
||||
$result['EMAIL'] = $reply;
|
||||
|
@ -71,32 +71,33 @@ function change_mail(){
|
|||
$result['isMod'] = "TRUE";
|
||||
}
|
||||
}
|
||||
$result['CEMAIL_ERROR'] = true;
|
||||
helpers :: loadtemplate( 'settings', $result);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}else{
|
||||
//ERROR: permission denied!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}else{
|
||||
//ERROR: The form was not filled in correclty
|
||||
//ERROR: The form was not filled in correctly
|
||||
header("Location: index.php?page=settings");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: user is not logged in
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}catch (PDOException $e) {
|
||||
//go to error page or something, because can't access website db
|
||||
print_r($e);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,11 +7,11 @@
|
|||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
function change_password(){
|
||||
|
||||
|
||||
try{
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn()){
|
||||
|
||||
|
||||
if(isset($_POST['target_id'])){
|
||||
$adminChangesOther = false;
|
||||
//if target_id is the same as session id or is admin
|
||||
|
@ -27,7 +27,7 @@ function change_password(){
|
|||
$adminChangesOther = true;
|
||||
$_POST["CurrentPass"] = "dummypass";
|
||||
}
|
||||
|
||||
|
||||
$webUser = new WebUsers($_POST['target_id']);
|
||||
$params = Array( 'user' => $target_username, 'CurrentPass' => $_POST["CurrentPass"], 'NewPass' => $_POST["NewPass"], 'ConfirmNewPass' => $_POST["ConfirmNewPass"], 'adminChangesOther' => $adminChangesOther);
|
||||
$result = $webUser->check_change_password($params);
|
||||
|
@ -47,10 +47,10 @@ function change_password(){
|
|||
$succresult['username'] = $_SESSION['user'];
|
||||
$succresult['target_id'] = $_POST['target_id'];
|
||||
helpers :: loadtemplate( 'settings', $succresult);
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
$result['prevCurrentPass'] = filter_var($_POST["CurrentPass"], FILTER_SANITIZE_STRING);
|
||||
$result['prevNewPass'] = filter_var($_POST["NewPass"], FILTER_SANITIZE_STRING);
|
||||
$result['prevConfirmNewPass'] = filter_var($_POST["ConfirmNewPass"], FILTER_SANITIZE_STRING);
|
||||
|
@ -62,35 +62,38 @@ function change_password(){
|
|||
global $SITEBASE;
|
||||
require_once($SITEBASE . '/inc/settings.php');
|
||||
$settings = settings();
|
||||
|
||||
|
||||
$result = array_merge($result,$settings);
|
||||
helpers :: loadtemplate( 'settings', $result);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: permission denied!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: The form was not filled in correclty
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=settings");
|
||||
exit;
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: user is not logged in
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}catch (PDOException $e) {
|
||||
//go to error page or something, because can't access website db
|
||||
print_r($e);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -6,15 +6,15 @@
|
|||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
function change_receivemail(){
|
||||
|
||||
|
||||
try{
|
||||
//if logged in
|
||||
global $INGAME_WEBPATH;
|
||||
global $WEBPATH;
|
||||
if(WebUsers::isLoggedIn()){
|
||||
|
||||
|
||||
if(isset($_POST['target_id'])){
|
||||
|
||||
|
||||
//check if the user who executed this function is the person of whom the setting is or if it's a mod/admin.
|
||||
if( ( ($_POST['target_id'] == $_SESSION['id']) || Ticket_User::isMod(unserialize($_SESSION['ticket_user']))) && isset($_POST['ReceiveMail']) ){
|
||||
$user_id = filter_var($_POST['target_id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
|
@ -23,36 +23,41 @@ function change_receivemail(){
|
|||
WebUsers::setReceiveMail($user_id, $receiveMail);
|
||||
}
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: ".$INGAME_WEBPATH."?page=settings&id=".$user_id);
|
||||
}else{
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: ".$WEBPATH."?page=settings&id=".$user_id);
|
||||
}
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}else{
|
||||
//ERROR: permission denied!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: The form was not filled in correclty
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=settings");
|
||||
exit;
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: user is not logged in
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}catch (PDOException $e) {
|
||||
//go to error page or something, because can't access website db
|
||||
print_r($e);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -10,12 +10,12 @@ function create_ticket(){
|
|||
global $INGAME_WEBPATH;
|
||||
global $WEBPATH;
|
||||
if(WebUsers::isLoggedIn() && isset($_SESSION['ticket_user'])){
|
||||
|
||||
|
||||
if(isset($_POST['target_id'])){
|
||||
|
||||
|
||||
//if target_id is the same as session id or is admin
|
||||
if( ($_POST['target_id'] == $_SESSION['id']) || Ticket_User::isMod(unserialize($_SESSION['ticket_user'])) ){
|
||||
|
||||
|
||||
$category = filter_var($_POST['Category'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$title = filter_var($_POST['Title'], FILTER_SANITIZE_STRING);
|
||||
$content = filter_var($_POST['Content'], FILTER_SANITIZE_STRING);
|
||||
|
@ -31,37 +31,43 @@ function create_ticket(){
|
|||
$ticket_id = Ticket::create_Ticket($title, $content, $category, $author, unserialize($_SESSION['ticket_user'])->getTUserId(),0, $_POST);
|
||||
//redirect to the new ticket.
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: ".$INGAME_WEBPATH."?page=show_ticket&id=".$ticket_id);
|
||||
}else{
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: ".$WEBPATH."?page=show_ticket&id=".$ticket_id);
|
||||
}
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}catch (PDOException $e) {
|
||||
//ERROR: LIB DB is not online!
|
||||
print_r($e);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: permission denied!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: The form was not filled in correclty
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=create_ticket");
|
||||
exit;
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: user is not logged in
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
* This can be done by providing id using $_GET global variable of the plugin which
|
||||
* we want to activate. After getting id we update the respective plugin with status
|
||||
* deactivate which here means '0'.
|
||||
*
|
||||
* @author Shubham Meena, mentored by Matthew Lagoe
|
||||
*
|
||||
* @author Shubham Meena, mentored by Matthew Lagoe
|
||||
*/
|
||||
function deactivate_plugin() {
|
||||
|
||||
|
||||
// if logged in
|
||||
if ( WebUsers :: isLoggedIn() ) {
|
||||
|
||||
|
||||
|
||||
|
||||
if ( isset( $_GET['id'] ) )
|
||||
{
|
||||
// id of plugin to deactivate
|
||||
|
@ -20,24 +20,28 @@ function deactivate_plugin() {
|
|||
$db = new DBLayer( 'lib' );
|
||||
$result = $db -> update( "plugins", array( 'Status' => '0' ), "Id = $id" );
|
||||
if ( $result )
|
||||
{
|
||||
// if result is successfull it redirects and shows success message
|
||||
{
|
||||
// if result is successfull it redirects and shows success message
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=5" );
|
||||
exit;
|
||||
}
|
||||
|
||||
throw new SystemExit();
|
||||
}
|
||||
else
|
||||
{
|
||||
// if result is unsuccessfull it redirects and shows success message
|
||||
// if result is unsuccessfull it redirects and shows success message
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=6" );
|
||||
exit;
|
||||
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//if $_GET variable is not set it redirects and shows error
|
||||
//if $_GET variable is not set it redirects and shows error
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=6" );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,49 +3,52 @@
|
|||
* This function is used in deleting plugins.
|
||||
* It removes the plugin from the codebase as well as
|
||||
* from the Database. When user request to delete a plugin
|
||||
* id of that plugin is sent in $_GET global variable.
|
||||
*
|
||||
* @author Shubham Meena, mentored by Matthew Lagoe
|
||||
* id of that plugin is sent in $_GET global variable.
|
||||
*
|
||||
* @author Shubham Meena, mentored by Matthew Lagoe
|
||||
*/
|
||||
function delete_plugin() {
|
||||
|
||||
|
||||
// if logged in
|
||||
if ( WebUsers :: isLoggedIn() ) {
|
||||
|
||||
|
||||
if ( isset( $_GET['id'] ) )
|
||||
{
|
||||
// id of plugin to delete after filtering
|
||||
$id = filter_var( $_GET['id'], FILTER_SANITIZE_FULL_SPECIAL_CHARS );
|
||||
|
||||
|
||||
$db = new DBLayer( 'lib' );
|
||||
$sth = $db -> selectWithParameter( "FileName", "plugins", array( 'id' => $id ), "Id=:id" );
|
||||
$name = $sth -> fetch();
|
||||
|
||||
|
||||
if ( is_dir( "$name[FileName]" ) )
|
||||
{
|
||||
// removing plugin directory from the code base
|
||||
if ( Plugincache::rrmdir( "$name[FileName]" ) )
|
||||
{
|
||||
$db -> delete( 'plugins', array( 'id' => $id ), "Id=:id" );
|
||||
|
||||
|
||||
//if result successfull redirect and show success message
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=2" );
|
||||
exit;
|
||||
|
||||
}
|
||||
throw new SystemExit();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// if result unsuccessfull redirect and show error message
|
||||
// if result unsuccessfull redirect and show error message
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=0" );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// if result unsuccessfull redirect and show error message
|
||||
// if result unsuccessfull redirect and show error message
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=0" );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?php
|
||||
|
||||
function forgot_password(){
|
||||
|
||||
|
||||
$email = filter_var($_POST["Email"], FILTER_SANITIZE_EMAIL);
|
||||
|
||||
|
||||
$target_id = WebUsers::getIdFromEmail($email);
|
||||
if ($target_id == "FALSE"){
|
||||
//the email address doesn't exist.
|
||||
|
@ -11,27 +11,27 @@ function forgot_password(){
|
|||
$result['EMAIL_ERROR'] = 'TRUE';
|
||||
$result['no_visible_elements'] = 'TRUE';
|
||||
helpers :: loadtemplate( 'forgot_password', $result);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
$webUser = new WebUsers($target_id);
|
||||
$target_username = $webUser->getUsername();
|
||||
$target_hashedPass = $webUser->getHashedPass();
|
||||
$hashed_key = hash('sha512',$target_hashedPass);
|
||||
|
||||
if ( isset( $_COOKIE['Language'] ) ) {
|
||||
|
||||
if ( isset( $_COOKIE['Language'] ) ) {
|
||||
$lang = $_COOKIE['Language'];
|
||||
}else{
|
||||
global $DEFAULT_LANGUAGE;
|
||||
$lang = $DEFAULT_LANGUAGE;
|
||||
}
|
||||
|
||||
|
||||
global $AMS_TRANS;
|
||||
$variables = parse_ini_file( $AMS_TRANS . '/' . $lang . '.ini', true );
|
||||
$mailText = array();
|
||||
foreach ( $variables['email'] as $key => $value ){
|
||||
$mailText[$key] = $value;
|
||||
}
|
||||
|
||||
|
||||
//create the reset url
|
||||
global $WEBPATH;
|
||||
$resetURL = $WEBPATH . "?page=reset_password&user=". $target_username . "&email=" . $email . "&key=" . $hashed_key;
|
||||
|
@ -44,7 +44,7 @@ function forgot_password(){
|
|||
$result['prevEmail'] = $email;
|
||||
$result['no_visible_elements'] = 'TRUE';
|
||||
helpers :: loadtemplate( 'forgot_password', $result);
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
/**
|
||||
* This module contains the function to install plugins
|
||||
* or check if the uploaded file is an update for a plugin.
|
||||
*
|
||||
*
|
||||
* When user uploads a file with .zip extension(neccessary requirement)
|
||||
* steps that should perform:
|
||||
* steps that should perform:
|
||||
* --> Check if the file type is .zip.
|
||||
* --> Extract it to a temp folder.
|
||||
* --> Extract it to a temp folder.
|
||||
* --> Check for the .info file. If not exists throw error
|
||||
* --> Extract the information from the .info file.
|
||||
* --> Check for the plugin name already exists or not.
|
||||
|
@ -16,35 +16,35 @@
|
|||
* --> if UpdateInfo not found throw error.
|
||||
* --> if UpdateInfo found add the update to the ryzom_ams_lib.updates table.
|
||||
* --> if it's not an update and plugin with same name already exists throw error.
|
||||
* --> if plugin with same name not present provide option to install plugin
|
||||
*
|
||||
* --> if plugin with same name not present provide option to install plugin
|
||||
*
|
||||
* @author Shubham Meena, mentored by Matthew Lagoe
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* This function is used in installing plugins or adding updates
|
||||
* for previously installed plugins.
|
||||
*
|
||||
*
|
||||
*/
|
||||
function install_plugin() {
|
||||
|
||||
|
||||
$result = array();
|
||||
|
||||
|
||||
// if logged in
|
||||
if ( WebUsers :: isLoggedIn() ) {
|
||||
|
||||
|
||||
// path of temporary folder for storing files
|
||||
$temp_path = "../../ams_lib/temp";
|
||||
|
||||
|
||||
// create a temp directory if not exist
|
||||
// temp folder where we first store all uploaded plugins before install
|
||||
if ( !file_exists( "$temp_path" ) )
|
||||
{
|
||||
mkdir( $temp_path );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// checking the server if file is uploaded or not
|
||||
if ( ( isset( $_FILES["file"] ) ) && ( $_FILES["file"]["size"] > 0 ) )
|
||||
{
|
||||
|
@ -53,26 +53,26 @@ function install_plugin() {
|
|||
$dir = trim( $_FILES["file"]["name"], ".zip" );
|
||||
$target_path = "../../ams_lib/plugins/$dir"; //path in which the zip extraction is to be done
|
||||
$destination = "../../ams_lib/plugins/";
|
||||
|
||||
|
||||
// scanning plugin folder if plugin with same name is already exists or not
|
||||
$x = checkForUpdate( $dir, $destination, $fileTmpLoc, $temp_path );
|
||||
if ( $x == '1' )
|
||||
{
|
||||
echo "update found";
|
||||
exit();
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
else if ( $x == '2' )
|
||||
{
|
||||
echo "Plugin already exists with same name .";
|
||||
exit();
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
else if ( $x == '3' )
|
||||
{
|
||||
echo "Update info is not present in the update";
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
// checking for the command to install plugin is given or not
|
||||
if ( !isset( $_POST['install_plugin'] ) )
|
||||
{
|
||||
|
@ -80,30 +80,30 @@ function install_plugin() {
|
|||
{
|
||||
if ( move_uploaded_file( $fileTmpLoc, $temp_path . "/" . $fileName ) ) {
|
||||
echo "$fileName upload is complete.</br>" . "<button type='submit' class='btn btn-primary' style='margin-left:5px; margin-top:10px;' name='install_plugin'>Install Plugin</button></br>";
|
||||
exit();
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Error in uploading file.";
|
||||
exit();
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Please select a file with .zip extension to upload.";
|
||||
exit();
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
// calling function to unzip archives
|
||||
if ( zipExtraction( $temp_path . "/" . $fileName , $destination ) )
|
||||
{
|
||||
if ( file_exists( $target_path . "/.info" ) )
|
||||
{
|
||||
$result = readPluginFile( ".info", $target_path );
|
||||
|
||||
|
||||
// sending all info to the database
|
||||
$install_result = array();
|
||||
$install_result['FileName'] = $target_path;
|
||||
|
@ -112,52 +112,55 @@ function install_plugin() {
|
|||
if ( Ticket_User :: isMod( unserialize( $_SESSION['ticket_user'] ) ) )
|
||||
{
|
||||
$install_result['Permission'] = 'admin';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$install_result['Permission'] = 'user';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$install_result['Info'] = json_encode( $result );
|
||||
|
||||
|
||||
// connection with the database
|
||||
$dbr = new DBLayer( "lib" );
|
||||
$dbr -> insert( "plugins", $install_result );
|
||||
|
||||
|
||||
// if everything is successfull redirecting to the plugin template
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=1" );
|
||||
exit;
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
else
|
||||
{
|
||||
// file .info not exists
|
||||
rmdir( $target_path );
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=install_plugin&result=2" );
|
||||
exit;
|
||||
}
|
||||
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
} else
|
||||
{
|
||||
// extraction failed
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=install_plugin&result=0" );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Please Browse for a file before clicking the upload button";
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* function to unzip the zipped files
|
||||
*
|
||||
*
|
||||
* @param $target_path path to the target zipped file
|
||||
* @param $destination path to the destination
|
||||
* @return boolean
|
||||
* @return boolean
|
||||
*/
|
||||
function zipExtraction( $target_path, $destination )
|
||||
{
|
||||
|
@ -168,31 +171,31 @@ function zipExtraction( $target_path, $destination )
|
|||
{
|
||||
$zip -> close();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$zip -> close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* function to read text files and extract
|
||||
* the information into an array
|
||||
*
|
||||
*
|
||||
* -----------------------------------------------------------
|
||||
* format:
|
||||
* -----------------------------------------------------------
|
||||
* PluginName = Name of the plugin
|
||||
* PluginName = Name of the plugin
|
||||
* Version = version of the plugin
|
||||
* Type = type of the plugin
|
||||
* TemplatePath = path to the template
|
||||
* Description = Description of the plugin ,it's functionality
|
||||
* -----------------------------------------------------------
|
||||
*
|
||||
*
|
||||
* reads only files with name .info
|
||||
*
|
||||
*
|
||||
* @param $fileName file to read
|
||||
* @param $target_path path to the folder containing .info file
|
||||
* @return array containing above information in array(value => key)
|
||||
|
@ -205,17 +208,17 @@ function readPluginFile( $fileName, $target_path )
|
|||
$line_of_text = fgets( $file_handle );
|
||||
$parts = array_map( 'trim', explode( '=', $line_of_text, 2 ) );
|
||||
@$result[$parts[0]] = $parts[1];
|
||||
}
|
||||
}
|
||||
fclose( $file_handle );
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* function to check for updates or
|
||||
* function to check for updates or
|
||||
* if the same plugin already exists
|
||||
* also, if the update founds ,check for the UpdateInfo in the .info file.
|
||||
* also, if the update founds ,check for the UpdateInfo in the .info file.
|
||||
* Update is saved in the temp directory with pluginName_version.zip
|
||||
*
|
||||
*
|
||||
* @param $fileName file which is uploaded in .zip extension
|
||||
* @param $findPath where we have to look for the installed plugins
|
||||
* @param $tempFile path for the temporary file
|
||||
|
@ -234,23 +237,23 @@ function checkForUpdate( $fileName, $findPath, $tempFile, $tempPath )
|
|||
if ( !file_exists( $tempPath . "/test" ) )
|
||||
{
|
||||
mkdir( $tempPath . "/test" );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// extracting the update
|
||||
if ( zipExtraction( $tempFile, $tempPath . "/test/" ) )
|
||||
{
|
||||
$result = readPluginFile( ".info", $tempPath . "/test/" . $fileName );
|
||||
|
||||
|
||||
// check for the version for the plugin
|
||||
$db = new DBLayer( "lib" );
|
||||
$sth = $db -> select( "plugins", array( 'Name' => $result['PluginName'] ), "Name = :Name" );
|
||||
$info = $sth -> fetch();
|
||||
$info['Info'] = json_decode( $info['Info'] );
|
||||
|
||||
|
||||
// the two versions from main plugin and the updated part
|
||||
$new_version = explode( '.', $result['Version'] );
|
||||
$pre_version = explode( '.', $info['Info'] -> Version );
|
||||
|
||||
|
||||
// For all plugins we have used semantic versioning
|
||||
// Format: X.Y.Z ,X->Major, Y->Minor, Z->Patch
|
||||
// change in the X Y & Z values refer the type of change in the plugin.
|
||||
|
@ -265,22 +268,22 @@ function checkForUpdate( $fileName, $findPath, $tempFile, $tempPath )
|
|||
// removing the uploaded file
|
||||
Plugincache :: rrmdir( $tempPath . "/test/" . $fileName );
|
||||
return '2'; //plugin already exists
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// check for update info if exists
|
||||
if ( !array_key_exists( 'UpdateInfo', $result ) )
|
||||
{
|
||||
return '3'; //update info tag not found
|
||||
}
|
||||
return '3'; //update info tag not found
|
||||
}
|
||||
else
|
||||
{
|
||||
// check if update already exists
|
||||
if ( pluginUpdateExists( $info['Id'], $tempPath . "/" . trim( $fileName, ".zip" ) . "_" . $result['Version'] . ".zip" ) )
|
||||
{
|
||||
echo "Update already exists";
|
||||
exit;
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
else {
|
||||
// removing the preivous update
|
||||
$dbr = new DBLayer( "lib" );
|
||||
|
@ -293,24 +296,25 @@ function checkForUpdate( $fileName, $findPath, $tempFile, $tempPath )
|
|||
$update['UpdatePath'] = $tempPath . "/" . trim( $fileName, ".zip" ) . "_" . $result['Version'] . ".zip";
|
||||
$update['UpdateInfo'] = json_encode( $result );
|
||||
$dbr -> insert( "updates", $update );
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=7" );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to check for the update of a plugin already exists
|
||||
*
|
||||
*
|
||||
* @param $pluginId id of the plugin for which update is available
|
||||
* @param $updatePath path of the new update
|
||||
* @return boolean True if update already exists else False
|
||||
*
|
||||
* @return boolean True if update already exists else False
|
||||
*
|
||||
*/
|
||||
function PluginUpdateExists( $pluginId, $updatePath )
|
||||
{
|
||||
|
@ -320,10 +324,10 @@ function PluginUpdateExists( $pluginId, $updatePath )
|
|||
if ( $updatePath == $row['UpdatePath'] )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rmdir( $row['UpdatePath'] );
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ function login(){
|
|||
|
||||
//check if the filtered sent POST data returns a match with the DB
|
||||
$result = WebUsers::checkLoginMatch($login_value, $password);
|
||||
|
||||
|
||||
if( $result != "fail"){
|
||||
//handle successful login
|
||||
$_SESSION['user'] = $result['Login'];
|
||||
|
@ -22,37 +22,38 @@ function login(){
|
|||
$_SESSION['ticket_user'] = serialize(Ticket_User::constr_ExternId($_SESSION['id']));
|
||||
$user = new WebUsers($_SESSION['id']);
|
||||
$_SESSION['Language'] = $user->getLanguage();
|
||||
|
||||
|
||||
$GETString = "";
|
||||
foreach($_GET as $key => $value){
|
||||
$GETString = $GETString . $key . '=' . $value . "&";
|
||||
}
|
||||
}
|
||||
if($GETString != ""){
|
||||
$GETString = '?'.$GETString;
|
||||
}
|
||||
|
||||
|
||||
//go back to the index page.
|
||||
header("Cache-Control: max-age=1");
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header( 'Location: '. $INGAME_WEBPATH . $GETString);
|
||||
}else{
|
||||
header( 'Location: '. $WEBPATH . $GETString);
|
||||
}
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}else{
|
||||
//handle login failure
|
||||
$result = Array();
|
||||
$result['login_error'] = 'TRUE';
|
||||
$result['no_visible_elements'] = 'TRUE';
|
||||
helpers :: loadtemplate( 'login', $result);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}catch (PDOException $e) {
|
||||
//go to error page or something, because can't access website db
|
||||
print_r($e);
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ function modify_email_of_sgroup(){
|
|||
global $INGAME_WEBPATH;
|
||||
global $WEBPATH;
|
||||
if(WebUsers::isLoggedIn()){
|
||||
|
||||
|
||||
//check if user is an admin
|
||||
if( Ticket_User::isAdmin(unserialize($_SESSION['ticket_user'])) && isset($_POST['target_id'])){
|
||||
|
||||
|
@ -18,11 +18,11 @@ function modify_email_of_sgroup(){
|
|||
$group = Support_Group::getGroup($sgroupid);
|
||||
$groupemail = filter_var($_POST['GroupEmail'],FILTER_SANITIZE_STRING);
|
||||
if(Users::validEmail($groupemail) || $groupemail == ""){
|
||||
$password = filter_var($_POST['IMAP_Password'],FILTER_SANITIZE_STRING);
|
||||
$password = filter_var($_POST['IMAP_Password'],FILTER_SANITIZE_STRING);
|
||||
$group->setGroupEmail($groupemail);
|
||||
$group->setIMAP_MailServer(filter_var($_POST['IMAP_MailServer'],FILTER_SANITIZE_STRING));
|
||||
$group->setIMAP_Username(filter_var($_POST['IMAP_Username'],FILTER_SANITIZE_STRING));
|
||||
|
||||
|
||||
//encrypt password!
|
||||
global $cfg;
|
||||
$crypter = new MyCrypt($cfg['crypt']);
|
||||
|
@ -36,7 +36,7 @@ function modify_email_of_sgroup(){
|
|||
}else{
|
||||
$result['RESULT_OF_MODIFYING'] = "EMAIL_NOT_VALID";
|
||||
}
|
||||
|
||||
|
||||
$result['permission'] = unserialize($_SESSION['ticket_user'])->getPermission();
|
||||
$result['no_visible_elements'] = 'FALSE';
|
||||
$result['username'] = $_SESSION['user'];
|
||||
|
@ -44,23 +44,26 @@ function modify_email_of_sgroup(){
|
|||
//require_once($SITEBASE . 'inc/show_sgroup.php');
|
||||
//$result= array_merge($result, show_sgroup());
|
||||
//helpers :: loadtemplate( 'show_sgroup', $result);
|
||||
header("Cache-Control: max-age=1");
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header("Location: ".$INGAME_WEBPATH."?page=show_sgroup&id=".$sgroupid);
|
||||
}else{
|
||||
header("Location: ".$WEBPATH."?page=show_sgroup&id=".$sgroupid);
|
||||
}
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,14 +11,14 @@ function reply_on_ticket(){
|
|||
global $WEBPATH;
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn() && isset($_POST['ticket_id'])){
|
||||
|
||||
$ticket_id = filter_var($_POST['ticket_id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
|
||||
$ticket_id = filter_var($_POST['ticket_id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$target_ticket = new Ticket();
|
||||
$target_ticket->load_With_TId($ticket_id);
|
||||
|
||||
|
||||
//check if the user who executed this function is a mod/admin or the topic creator himself.
|
||||
if(($target_ticket->getAuthor() == unserialize($_SESSION['ticket_user'])->getTUserId()) || Ticket_User::isMod(unserialize($_SESSION['ticket_user'])) ){
|
||||
|
||||
|
||||
try{
|
||||
$author = unserialize($_SESSION['ticket_user'])->getTUserId();
|
||||
if(isset($_POST['Content'])){
|
||||
|
@ -27,44 +27,47 @@ function reply_on_ticket(){
|
|||
$content="";
|
||||
}
|
||||
$hidden = 0;
|
||||
|
||||
|
||||
if(isset($_POST['hidden']) && Ticket_User::isMod(unserialize($_SESSION['ticket_user']))){
|
||||
$hidden = 1;
|
||||
}
|
||||
|
||||
|
||||
//create the reply
|
||||
Ticket::createReply($content, $author, $ticket_id, $hidden);
|
||||
|
||||
|
||||
//try to update the status & priority in case these are set.
|
||||
if(isset($_POST['ChangeStatus']) && isset($_POST['ChangePriority']) && Ticket_User::isMod(unserialize($_SESSION['ticket_user']))){
|
||||
$newStatus = filter_var($_POST['ChangeStatus'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$newPriority = filter_var($_POST['ChangePriority'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$newPriority = filter_var($_POST['ChangePriority'], FILTER_SANITIZE_NUMBER_INT);
|
||||
Ticket::updateTicketStatusAndPriority($ticket_id,$newStatus, $newPriority, $author);
|
||||
}
|
||||
header("Cache-Control: max-age=1");
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header("Location: ".$INGAME_WEBPATH."?page=show_ticket&id=".$ticket_id);
|
||||
}else{
|
||||
header("Location: ".$WEBPATH."?page=show_ticket&id=".$ticket_id);
|
||||
}
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}catch (PDOException $e) {
|
||||
//ERROR: LIB DB is not online!
|
||||
print_r($e);
|
||||
//header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ function reset_password(){
|
|||
$email = filter_var($_GET["email"], FILTER_SANITIZE_EMAIL);
|
||||
$user = filter_var($_GET["user"], FILTER_SANITIZE_STRING);
|
||||
$key = filter_var($_GET["key"], FILTER_SANITIZE_STRING);
|
||||
|
||||
|
||||
$password = filter_var($_POST['NewPass'], FILTER_SANITIZE_STRING);
|
||||
$confirmpass = filter_var($_POST['ConfirmNewPass'], FILTER_SANITIZE_STRING);
|
||||
|
||||
|
@ -24,12 +24,12 @@ function reset_password(){
|
|||
}
|
||||
$result['no_visible_elements'] = 'TRUE';
|
||||
helpers :: loadtemplate( 'reset_success', $result);
|
||||
exit;
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
$GETString = "";
|
||||
foreach($_GET as $key => $value){
|
||||
$GETString = $GETString . $key . '=' . $value . "&";
|
||||
}
|
||||
}
|
||||
if($GETString != ""){
|
||||
$GETString = '?'.$GETString;
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ function reset_password(){
|
|||
$result['prevConfirmNewPass'] = $confirmpass;
|
||||
$result['no_visible_elements'] = 'TRUE';
|
||||
helpers :: loadtemplate( 'reset_password', $result);
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
/**
|
||||
* This function is used in installing updates for plugins.
|
||||
* It takes id of the plugin whose update is available using
|
||||
* $_GET global variable and then extract the update details
|
||||
* $_GET global variable and then extract the update details
|
||||
* from db and then install it in the plugin.
|
||||
*
|
||||
* @author Shubham Meena, mentored by Matthew Lagoe
|
||||
*
|
||||
* @author Shubham Meena, mentored by Matthew Lagoe
|
||||
*/
|
||||
function update_plugin() {
|
||||
|
||||
|
||||
// if logged in
|
||||
if ( WebUsers :: isLoggedIn() ) {
|
||||
|
||||
|
||||
if ( isset( $_GET['id'] ) )
|
||||
{
|
||||
// id of plugin to update
|
||||
|
@ -19,20 +19,21 @@ function update_plugin() {
|
|||
$db = new DBLayer( 'lib' );
|
||||
$sth = $db -> executeWithoutParams( "SELECT * FROM plugins INNER JOIN updates ON plugins.Id=updates.PluginId Where plugins.Id=$id" );
|
||||
$row = $sth -> fetch();
|
||||
|
||||
|
||||
// replacing update in the database
|
||||
Plugincache :: rrmdir( $row['FileName'] );
|
||||
Plugincache :: zipExtraction( $row['UpdatePath'], rtrim( $row['FileName'], strtolower( $row['Name'] ) ) );
|
||||
|
||||
|
||||
$db -> update( "plugins", array( 'Info' => $row['UpdateInfo'] ), "Id=$row[Id]" );
|
||||
|
||||
|
||||
// deleting the previous update
|
||||
$db -> delete( "updates", array( 'id' => $row['s.no'] ), "s.no=:id" );
|
||||
|
||||
|
||||
// if update is installed succesffully redirect to show success message
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=plugins&result=8" );
|
||||
exit;
|
||||
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,48 +11,52 @@ function change_permission(){
|
|||
global $WEBPATH;
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn()){
|
||||
|
||||
|
||||
//check if user who executed this function is an admin
|
||||
if(ticket_user::isAdmin(unserialize($_SESSION['ticket_user']))){
|
||||
|
||||
|
||||
//in case the $_GET['value'] is smaller than 4 and the user whoes permission is being changed is different from the admin(id 1)
|
||||
if(isset($_GET['user_id']) && isset($_GET['value']) && $_GET['user_id'] != 1 && $_GET['value'] < 4 ){
|
||||
$user_id = filter_var($_GET['user_id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$value = filter_var($_GET['value'], FILTER_SANITIZE_NUMBER_INT);
|
||||
|
||||
|
||||
//execute change.
|
||||
Ticket_User::change_permission(Ticket_User::constr_ExternId($user_id)->getTUserId(), $value);
|
||||
header("Cache-Control: max-age=1");
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header("Location: ".$INGAME_WEBPATH."?page=show_user&id=".$user_id);
|
||||
}else{
|
||||
header("Location: ".$WEBPATH."?page=show_user&id=".$user_id);
|
||||
}
|
||||
exit;
|
||||
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: GET PARAMS not given or trying to change admin
|
||||
header("Cache-Control: max-age=1");
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header("Location: ".$INGAME_WEBPATH."?page=show_user&id=".$user_id);
|
||||
}else{
|
||||
header("Location: ".$WEBPATH."?page=show_user&id=".$user_id);
|
||||
}
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -11,44 +11,46 @@ function createticket(){
|
|||
if(WebUsers::isLoggedIn()){
|
||||
//in case user_id-GET param set it's value as target_id, if no user_id-param is given, use the session id.
|
||||
if(isset($_GET['user_id'])){
|
||||
|
||||
|
||||
//check if you are a mod/admin or you try to create a ticket for your own, if this is not the case redirect to error page
|
||||
if(($_GET['user_id'] != $_SESSION['id']) && ( ! ticket_user::isMod(unserialize($_SESSION['ticket_user']))) ){
|
||||
|
||||
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}else{
|
||||
//if user_id is given, then set it as the target_id
|
||||
$result['target_id'] = filter_var($_GET['user_id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//set session_id as target_id
|
||||
$result['target_id'] = $_SESSION['id'];
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
if(Helpers::check_if_game_client()){
|
||||
//get all additional info, which is needed for adding the extra info page
|
||||
$result[] = $_GET;
|
||||
$result['ingame'] = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//create array of category id & names
|
||||
$catArray = Ticket_Category::getAllCategories();
|
||||
$result['category'] = Gui_Elements::make_table_with_key_is_id($catArray, Array("getName"), "getTCategoryId" );
|
||||
global $INGAME_WEBPATH;
|
||||
$result['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
return $result;
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
function dashboard(){
|
||||
|
||||
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn()){
|
||||
|
||||
|
||||
//is Mod
|
||||
if(ticket_user::isMod(unserialize($_SESSION['ticket_user']))){
|
||||
//return useful information about the status of the ticket system.
|
||||
|
@ -25,20 +25,22 @@ function dashboard(){
|
|||
global $INGAME_WEBPATH;
|
||||
$result['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
return $result;
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -5,35 +5,35 @@
|
|||
* We will compare the values and if they match, the user will be automatically logged in!
|
||||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
function login(){
|
||||
function login() {
|
||||
global $INGAME_WEBPATH;
|
||||
global $WEBPATH;
|
||||
if ( helpers :: check_if_game_client () ){
|
||||
if (helpers::check_if_game_client()) {
|
||||
//check if you are logged in ingame, this should auto login
|
||||
$result = Helpers::check_login_ingame();
|
||||
if( $result != "FALSE"){
|
||||
if ($result) {
|
||||
//handle successful login
|
||||
$_SESSION['user'] = $result['name'];
|
||||
$_SESSION['id'] = WebUsers::getId($result['name']);
|
||||
$_SESSION['ticket_user'] = serialize(Ticket_User::constr_ExternId($_SESSION['id']));
|
||||
//go back to the index page.
|
||||
header("Cache-Control: max-age=1");
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header( 'Location: '.$INGAME_WEBPATH );
|
||||
}else{
|
||||
header( 'Location: '.$WEBPATH );
|
||||
header('Location: ' . $INGAME_WEBPATH);
|
||||
} else {
|
||||
header('Location: ' . $WEBPATH);
|
||||
}
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
$pageElements['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
$GETString = "";
|
||||
foreach($_GET as $key => $value){
|
||||
foreach ($_GET as $key => $value) {
|
||||
$GETString = $GETString . $key . '=' . $value . "&";
|
||||
}
|
||||
if($GETString != ""){
|
||||
$GETString = '?'.$GETString;
|
||||
}
|
||||
if ($GETString != "") {
|
||||
$GETString = '?' . $GETString;
|
||||
}
|
||||
$pageElements['getstring'] = $GETString;
|
||||
return $pageElements;
|
||||
|
||||
}
|
||||
|
|
|
@ -3,37 +3,38 @@
|
|||
/**
|
||||
* function plugins to get
|
||||
* plugins from the Database using pagination object
|
||||
*
|
||||
* @author shubham meena mentored by Matthew Lagoe
|
||||
*
|
||||
* @author shubham meena mentored by Matthew Lagoe
|
||||
*/
|
||||
|
||||
function plugins()
|
||||
{
|
||||
if ( Ticket_User :: isMod( unserialize( $_SESSION['ticket_user'] ) ) ) {
|
||||
|
||||
|
||||
$pagination = new Pagination( "SELECT * FROM plugins", "lib", 5, "Plugincache" );
|
||||
$pageResult['plug'] = Gui_Elements :: make_table( $pagination -> getElements(), Array( "getId", "getPluginName", "getPluginType", "getPluginPermission", "getPluginStatus", "getPluginInfo" ), Array( "id", "plugin_name", "plugin_type", "plugin_permission", "plugin_status", "plugin_info" ) );
|
||||
$pageResult['links'] = $pagination -> getLinks( 5 );
|
||||
$pageResult['lastPage'] = $pagination -> getLast();
|
||||
$pageResult['currentPage'] = $pagination -> getCurrent();
|
||||
|
||||
|
||||
global $INGAME_WEBPATH;
|
||||
$pageResult['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
|
||||
|
||||
// check if shard is online
|
||||
try {
|
||||
$dbs = new DBLayer( "shard" );
|
||||
$pageResult['shard'] = "online";
|
||||
}
|
||||
}
|
||||
catch( PDOException $e ) {
|
||||
$pageResult['shard'] = "offline";
|
||||
}
|
||||
}
|
||||
return( $pageResult );
|
||||
} else {
|
||||
// ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=error" );
|
||||
exit;
|
||||
}
|
||||
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
/**
|
||||
* function plugins_update to get
|
||||
* plugins updates from the Database using pagination object.
|
||||
*
|
||||
* @author shubham meena mentored by Matthew Lagoe
|
||||
*
|
||||
* @author shubham meena mentored by Matthew Lagoe
|
||||
*/
|
||||
|
||||
function plugins_update()
|
||||
|
@ -14,23 +14,24 @@ function plugins_update()
|
|||
$pageResult['links'] = $pagination -> getLinks( 5 );
|
||||
$pageResult['lastPage'] = $pagination -> getLast();
|
||||
$pageResult['currentPage'] = $pagination -> getCurrent();
|
||||
|
||||
|
||||
global $INGAME_WEBPATH;
|
||||
$pageResult['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
|
||||
|
||||
// check if shard is online
|
||||
try {
|
||||
$dbs = new DBLayer( "shard" );
|
||||
$pageResult['shard'] = "online";
|
||||
}
|
||||
}
|
||||
catch( PDOException $e ) {
|
||||
$pageResult['shard'] = "offline";
|
||||
}
|
||||
}
|
||||
return( $pageResult );
|
||||
} else {
|
||||
// ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header( "Location: index.php?page=error" );
|
||||
exit;
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,28 +4,29 @@ function reset_password(){
|
|||
$email = filter_var($_GET["email"], FILTER_SANITIZE_EMAIL);
|
||||
$user = filter_var($_GET["user"], FILTER_SANITIZE_STRING);
|
||||
$key = filter_var($_GET["key"], FILTER_SANITIZE_STRING);
|
||||
|
||||
|
||||
$target_id = WebUsers::getId($user);
|
||||
$webUser = new WebUsers($target_id);
|
||||
|
||||
|
||||
if( (WebUsers::getIdFromEmail($email) == $target_id) && (hash('sha512',$webUser->getHashedPass()) == $key) ){
|
||||
//you are allowed on the page!
|
||||
|
||||
|
||||
$GETString = "";
|
||||
foreach($_GET as $key => $value){
|
||||
$GETString = $GETString . $key . '=' . $value . "&";
|
||||
}
|
||||
}
|
||||
if($GETString != ""){
|
||||
$GETString = '?'.$GETString;
|
||||
}
|
||||
$pageElements['getstring'] = $GETString;
|
||||
|
||||
|
||||
return $pageElements;
|
||||
|
||||
|
||||
}else{
|
||||
global $WEBPATH;
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: ".$WEBPATH."?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,8 +12,9 @@ function settings(){
|
|||
if(($_GET['id'] != $_SESSION['id']) && (!Ticket_User::isMod(unserialize($_SESSION['ticket_user']))) ){
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}else{
|
||||
$webUser = new Webusers($_GET['id']);
|
||||
$result = $webUser->getInfo();
|
||||
|
@ -47,7 +48,8 @@ function settings(){
|
|||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
header("Cache-Control: max-age=1");
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,20 +8,21 @@
|
|||
function sgroup_list(){
|
||||
global $INGAME_WEBPATH;
|
||||
global $WEBPATH;
|
||||
//if logged in
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn()){
|
||||
if(Ticket_User::isMod(unserialize($_SESSION['ticket_user']))){
|
||||
|
||||
|
||||
//if delete GET var is set and user is admin, then delete the groups entry.
|
||||
if(isset($_GET['delete']) && Ticket_User::isAdmin(unserialize($_SESSION['ticket_user']))){
|
||||
$delete_id = filter_var($_GET['delete'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$result['delete'] = Support_Group::deleteSupportGroup( $delete_id);
|
||||
header("Cache-Control: max-age=1");
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header("Location: ".$INGAME_WEBPATH."?page=sgroup_list");
|
||||
}else{
|
||||
header("Location: ".$WEBPATH."?page=sgroup_list");
|
||||
}
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
if(Ticket_User::isAdmin(unserialize($_SESSION['ticket_user']))){
|
||||
$result['isAdmin'] = "TRUE";
|
||||
|
@ -33,13 +34,15 @@ function sgroup_list(){
|
|||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -14,33 +14,33 @@ function show_queue(){
|
|||
global $WEBPATH;
|
||||
//if logged in & queue id is given
|
||||
if(WebUsers::isLoggedIn() && isset($_GET['get'])){
|
||||
|
||||
|
||||
if( Ticket_User::isMod(unserialize($_SESSION['ticket_user']))){
|
||||
|
||||
|
||||
//the queue you want to see.
|
||||
$result['queue_view'] = filter_var($_GET['get'], FILTER_SANITIZE_STRING);
|
||||
$user_id = unserialize($_SESSION['ticket_user'])->getTUserId();
|
||||
$queueArray = array();
|
||||
$queueArray = array();
|
||||
$queue_handler = new Ticket_Queue_handler();
|
||||
|
||||
|
||||
//Pagination Base Links
|
||||
if (Helpers::check_if_game_client()) {
|
||||
$result['pagination_base_link'] = $INGAME_WEBPATH."?page=show_queue&get=".$result['queue_view'] ;
|
||||
}else{
|
||||
$result['pagination_base_link'] = $WEBPATH."?page=show_queue&get=".$result['queue_view'] ;
|
||||
}
|
||||
|
||||
//form url to keep the getters constant
|
||||
|
||||
//form url to keep the getters constant
|
||||
if (Helpers::check_if_game_client()) {
|
||||
$result['getURL'] = $INGAME_WEBPATH."?page=show_queue&get=" . $result['queue_view'];
|
||||
}else{
|
||||
$result['getURL'] = $WEBPATH."?page=show_queue&get=" . $result['queue_view'];
|
||||
}
|
||||
|
||||
|
||||
if(isset($_GET['pagenum'])){
|
||||
$result['getURL'] = $result['getURL'] . "&pagenum=".$_GET['pagenum'];
|
||||
}
|
||||
|
||||
|
||||
if(isset($_GET['get']) && ($_GET['get'] == "create") && isset($_GET['userid']) && isset($_GET['groupid']) && isset($_GET['what']) && isset($_GET['how']) && isset($_GET['who'])){
|
||||
$userid = filter_var($_GET['userid'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$groupid = filter_var($_GET['groupid'], FILTER_SANITIZE_NUMBER_INT);
|
||||
|
@ -49,24 +49,24 @@ function show_queue(){
|
|||
$who = filter_var($_GET['who'], FILTER_SANITIZE_STRING);
|
||||
//create the custom queue
|
||||
$queue_handler->CreateQueue($userid, $groupid, $what, $how, $who);
|
||||
|
||||
|
||||
if (Helpers::check_if_game_client()) {
|
||||
$result['pagination_base_link'] = $INGAME_WEBPATH."?page=show_queue&get=create&userid=".$userid."&groupid=".$groupid."&what=".$what."&how=".$how."&who=".$who;
|
||||
}else{
|
||||
$result['pagination_base_link'] = $WEBPATH."?page=show_queue&get=create&userid=".$userid."&groupid=".$groupid."&what=".$what."&how=".$how."&who=".$who;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$result['prev_created_userid'] = $userid;
|
||||
$result['prev_created_groupid'] = $groupid;
|
||||
$result['prev_created_what'] = $what;
|
||||
$result['prev_created_how'] = $how;
|
||||
$result['prev_created_who'] = $who;
|
||||
|
||||
|
||||
$result['getURL'] = $result['getURL'] . "&userid=".$userid."&groupid=".$groupid."&what=".$what."&how=".$how."&who=".$who;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//if an action is set
|
||||
if(isset($_POST['action'])){
|
||||
switch($_POST['action']){
|
||||
|
@ -74,12 +74,12 @@ function show_queue(){
|
|||
$ticket_id = filter_var($_POST['ticket_id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$result['ACTION_RESULT'] = Ticket::assignTicket($user_id, $ticket_id);
|
||||
break;
|
||||
|
||||
|
||||
case "unAssignTicket":
|
||||
$ticket_id = filter_var($_POST['ticket_id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$result['ACTION_RESULT'] = Ticket::unAssignTicket($user_id, $ticket_id);
|
||||
break;
|
||||
|
||||
|
||||
case "create_queue":
|
||||
$userid = filter_var($_POST['userid'], FILTER_SANITIZE_NUMBER_INT);
|
||||
if (isset($_POST['groupid'])) {
|
||||
|
@ -95,7 +95,7 @@ function show_queue(){
|
|||
if (Helpers::check_if_game_client()) {
|
||||
$result['pagination_base_link'] = $INGAME_WEBPATH."?page=show_queue&get=create&userid=".$userid."&groupid=".$groupid."&what=".$what."&how=".$how."&who=".$who;
|
||||
}else{
|
||||
$result['pagination_base_link'] = $WEBPATH."?page=show_queue&get=create&userid=".$userid."&groupid=".$groupid."&what=".$what."&how=".$how."&who=".$who;
|
||||
$result['pagination_base_link'] = $WEBPATH."?page=show_queue&get=create&userid=".$userid."&groupid=".$groupid."&what=".$what."&how=".$how."&who=".$who;
|
||||
}
|
||||
$result['prev_created_userid'] = $userid;
|
||||
$result['prev_created_groupid'] = $groupid;
|
||||
|
@ -103,20 +103,20 @@ function show_queue(){
|
|||
$result['prev_created_how'] = $how;
|
||||
$result['prev_created_who'] = $who;
|
||||
$result['getURL'] = $result['getURL'] . "&userid=".$userid."&groupid=".$groupid."&what=".$what."&how=".$how."&who=".$who;
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$queueArray = $queue_handler->getTickets($result['queue_view'], $user_id);
|
||||
|
||||
|
||||
//pagination
|
||||
$result['links'] = $queue_handler->getPagination()->getLinks(5);
|
||||
$result['lastPage'] = $queue_handler->getPagination()->getLast();
|
||||
$result['currentPage'] = $queue_handler->getPagination()->getCurrent();
|
||||
|
||||
|
||||
|
||||
|
||||
//if queue_view is a valid parameter value
|
||||
if ($queueArray != "ERROR"){
|
||||
$result['tickets'] = Gui_Elements::make_table($queueArray, Array("getTId","getTitle","getTimestamp","getAuthor()->getExternId","getTicket_Category()->getName","getStatus","getStatusText","getAssigned","getForwardedGroupName","getForwardedGroupId"), Array("tId","title","timestamp","authorExtern","category","status","statusText","assigned","forwardedGroupName","forwardedGroupId"));
|
||||
|
@ -130,8 +130,8 @@ function show_queue(){
|
|||
$i++;
|
||||
}
|
||||
$result['user_id'] = unserialize($_SESSION['ticket_user'])->getTUserId();
|
||||
|
||||
//Queue creator field info
|
||||
|
||||
//Queue creator field info
|
||||
$result['grouplist'] = Gui_Elements::make_table(Support_Group::getGroups(), Array("getSGroupId","getName"), Array("sGroupId","name"));
|
||||
$result['teamlist'] = Gui_Elements::make_table(Ticket_User::getModsAndAdmins(), Array("getTUserId","getExternId"), Array("tUserId","externId"));
|
||||
$i = 0;
|
||||
|
@ -143,25 +143,28 @@ function show_queue(){
|
|||
global $INGAME_WEBPATH;
|
||||
$result['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
return $result;
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
//ERROR: Doesn't exist!
|
||||
$_SESSION['error_code'] = "404";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: ams?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,23 +8,23 @@
|
|||
function show_reply(){
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn() && isset($_GET['id'])){
|
||||
|
||||
|
||||
$result['reply_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$reply = new Ticket_Reply();
|
||||
$reply->load_With_TReplyId($result['reply_id']);
|
||||
|
||||
|
||||
|
||||
|
||||
$ticket = new Ticket();
|
||||
$ticket->load_With_TId($reply->getTicket());
|
||||
|
||||
|
||||
//check if the user is allowed to see the reply
|
||||
if(( $ticket->getAuthor() == unserialize($_SESSION['ticket_user'])->getTUserId() && ! $reply->getHidden()) || Ticket_User::isMod(unserialize($_SESSION['ticket_user']) )){
|
||||
$content = new Ticket_Content();
|
||||
$content->load_With_TContentId($reply->getContent());
|
||||
|
||||
|
||||
$author = new Ticket_User();
|
||||
$author->load_With_TUserId($reply->getAuthor());
|
||||
|
||||
|
||||
$result['hidden'] = $reply->getHidden();
|
||||
$result['ticket_id'] = $reply->getTicket();
|
||||
$result['reply_timestamp'] = $reply->getTimestamp();
|
||||
|
@ -39,16 +39,18 @@ function show_reply(){
|
|||
global $INGAME_WEBPATH;
|
||||
$result['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
return $result;
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,24 +15,25 @@ function show_sgroup(){
|
|||
if( isset($_GET['id'])){
|
||||
//['target_id'] holds the id of the group!
|
||||
$result['target_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
|
||||
|
||||
//if the $_GET['delete'] var is set and the user executing is an admin, an entry will be deleted out of the support group.
|
||||
if(isset($_GET['delete']) && Ticket_User::isAdmin(unserialize($_SESSION['ticket_user']))){
|
||||
$delete_id = filter_var($_GET['delete'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$result['delete'] = Support_Group::deleteUserOfSupportGroup( $delete_id, $result['target_id'] );
|
||||
header("Cache-Control: max-age=1");
|
||||
if (Helpers::check_if_game_client()) {
|
||||
header("Location: ".$INGAME_WEBPATH."?page=show_sgroup&id=" . $result['target_id']);
|
||||
}else{
|
||||
header("Location: ".$WEBPATH."?page=show_sgroup&id=" . $result['target_id']);
|
||||
}
|
||||
exit;
|
||||
|
||||
throw new SystemExit();
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(Ticket_User::isAdmin(unserialize($_SESSION['ticket_user']))){
|
||||
$result['isAdmin'] = "TRUE";
|
||||
}
|
||||
|
||||
|
||||
$group = Support_Group::getGroup($result['target_id']);
|
||||
$result['groupsname'] = $group->getName();
|
||||
$result['groupemail'] = $group->getGroupEmail();
|
||||
|
@ -58,26 +59,29 @@ function show_sgroup(){
|
|||
}
|
||||
|
||||
return $result;
|
||||
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
//ERROR: No page specified!
|
||||
$_SESSION['error_code'] = "404";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: ams?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
function show_ticket(){
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn() && isset($_GET['id'])){
|
||||
|
||||
|
||||
$result['user_id'] = unserialize($_SESSION['ticket_user'])->getTUserId();
|
||||
$result['ticket_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$result['ticket_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$target_ticket = new Ticket();
|
||||
$target_ticket->load_With_TId($result['ticket_id']);
|
||||
|
||||
if(Ticket_User::isMod(unserialize($_SESSION['ticket_user'] ))){
|
||||
|
||||
if(Ticket_User::isMod(unserialize($_SESSION['ticket_user'] ))){
|
||||
if(isset($_POST['action'])){
|
||||
switch($_POST['action']){
|
||||
case "forward":
|
||||
|
@ -32,18 +32,18 @@ function show_ticket(){
|
|||
$ticket_id = filter_var($_POST['ticket_id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$result['ACTION_RESULT'] = Ticket::unAssignTicket($result['user_id'], $ticket_id);
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(($target_ticket->getAuthor() == unserialize($_SESSION['ticket_user'])->getTUserId()) || Ticket_User::isMod(unserialize($_SESSION['ticket_user']) )){
|
||||
|
||||
|
||||
$show_as_admin = false;
|
||||
if(Ticket_User::isMod(unserialize($_SESSION['ticket_user']))){
|
||||
$show_as_admin = true;
|
||||
}
|
||||
|
||||
|
||||
$entire_ticket = Ticket::getEntireTicket( $result['ticket_id'],$show_as_admin);
|
||||
Ticket_Log::createLogEntry($result['ticket_id'],unserialize($_SESSION['ticket_user'])->getTUserId(), 3);
|
||||
$result['ticket_tId'] = $entire_ticket['ticket_obj']->getTId();
|
||||
|
@ -78,16 +78,18 @@ function show_ticket(){
|
|||
global $INGAME_WEBPATH;
|
||||
$result['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
return $result;
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,18 +6,18 @@
|
|||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
function show_ticket_info(){
|
||||
|
||||
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn() && isset($_GET['id'])){
|
||||
|
||||
|
||||
$result['ticket_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$target_ticket = new Ticket();
|
||||
$target_ticket->load_With_TId($result['ticket_id']);
|
||||
|
||||
|
||||
if( $target_ticket->hasInfo() && (($target_ticket->getAuthor() == unserialize($_SESSION['ticket_user'])->getTUserId()) || Ticket_User::isMod(unserialize($_SESSION['ticket_user']) ))){
|
||||
$result['ticket_title'] = $target_ticket->getTitle();
|
||||
$result['ticket_author'] = $target_ticket->getAuthor();
|
||||
|
||||
|
||||
$ticket_info = new Ticket_Info();
|
||||
$ticket_info->load_With_Ticket($result['ticket_id']);
|
||||
$result['shard_id'] = $ticket_info->getShardId();
|
||||
|
@ -38,23 +38,25 @@ function show_ticket_info(){
|
|||
$result['user_id'] = $ticket_info->getUser_Id();
|
||||
global $IMAGELOC_WEBPATH;
|
||||
$result['IMAGELOC_WEBPATH'] = $IMAGELOC_WEBPATH;
|
||||
|
||||
|
||||
if(Ticket_User::isMod(unserialize($_SESSION['ticket_user']))){
|
||||
$result['isMod'] = "TRUE";
|
||||
}
|
||||
global $INGAME_WEBPATH;
|
||||
$result['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
return $result;
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,15 +10,15 @@ function show_ticket_log(){
|
|||
global $WEBPATH;
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn() && isset($_GET['id'])){
|
||||
|
||||
|
||||
//only allow admins to browse the log!
|
||||
if(Ticket_User::isMod(unserialize($_SESSION['ticket_user'])) ){
|
||||
|
||||
$result['ticket_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
|
||||
$result['ticket_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$target_ticket = new Ticket();
|
||||
$target_ticket->load_With_TId($result['ticket_id']);
|
||||
$result['ticket_title'] = $target_ticket->getTitle();
|
||||
|
||||
|
||||
//return all logs related to a ticket.
|
||||
$ticket_logs = Ticket_Log::getLogsOfTicket( $result['ticket_id']);
|
||||
$log_action_array = Ticket_Log::getActionTextArray();
|
||||
|
@ -56,23 +56,25 @@ function show_ticket_log(){
|
|||
$result['ticket_logs'][$i]['query'] = $author . " " . $log_action_array[$log['action']] . " " . $query_backpart;
|
||||
$result['ticket_logs'][$i]['timestamp_elapsed'] = Gui_Elements::time_elapsed_string($log['timestamp']);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if(Ticket_User::isMod(unserialize($_SESSION['ticket_user']))){
|
||||
$result['isMod'] = "TRUE";
|
||||
}
|
||||
global $INGAME_WEBPATH;
|
||||
$result['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
return $result;
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,14 +8,14 @@
|
|||
function show_user(){
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn()){
|
||||
|
||||
|
||||
//Users can only browse their own user page, while mods/admins can browse all user pages
|
||||
if( !isset($_GET['id']) || Ticket_User::isMod(unserialize($_SESSION['ticket_user'])) || $_GET['id'] == $_SESSION['id'] ){
|
||||
|
||||
|
||||
if(isset($_GET['id'])){
|
||||
$result['target_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$result['target_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
|
||||
}else{
|
||||
$result['target_id'] = $_SESSION['id'];
|
||||
$result['target_id'] = $_SESSION['id'];
|
||||
}
|
||||
$webUser = new WebUsers($result['target_id']);
|
||||
$result['target_name'] = $webUser->getUsername();
|
||||
|
@ -25,28 +25,30 @@ function show_user(){
|
|||
$result['lastName'] = $info['LastName'];
|
||||
$result['country'] = $info['Country'];
|
||||
$result['gender'] = $info['Gender'];
|
||||
|
||||
|
||||
$ticket_user = Ticket_User::constr_ExternId($result['target_id']);
|
||||
$result['userPermission'] = $ticket_user->getPermission();
|
||||
if(Ticket_User::isAdmin(unserialize($_SESSION['ticket_user']))){
|
||||
$result['isAdmin'] = "TRUE";
|
||||
}
|
||||
$ticketlist = Ticket::getTicketsOf($ticket_user->getTUserId());
|
||||
|
||||
|
||||
$result['ticketlist'] = Gui_Elements::make_table($ticketlist, Array("getTId","getTimestamp","getTitle","getStatus","getStatusText","getStatusText","getCategoryName"), Array("tId","timestamp","title","status","statustext","statusText","category"));
|
||||
global $INGAME_WEBPATH;
|
||||
$result['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
return $result;
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}else{
|
||||
//ERROR: not logged in!
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,19 +6,19 @@
|
|||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
function syncing(){
|
||||
|
||||
|
||||
if(Ticket_User::isAdmin(unserialize($_SESSION['ticket_user']))){
|
||||
|
||||
|
||||
//return a paginated version of all unsynced changes.
|
||||
$pagination = new Pagination("SELECT * FROM ams_querycache","lib",5,"Querycache");
|
||||
$pageResult['liblist'] = Gui_Elements::make_table($pagination->getElements() , Array("getSID","getType"), Array("id","type"));
|
||||
$pageResult['links'] = $pagination->getLinks(5);
|
||||
$pageResult['lastPage'] = $pagination->getLast();
|
||||
$pageResult['currentPage'] = $pagination->getCurrent();
|
||||
|
||||
|
||||
global $INGAME_WEBPATH;
|
||||
$pageResult['ingame_webpath'] = $INGAME_WEBPATH;
|
||||
|
||||
|
||||
//check if shard is online
|
||||
try{
|
||||
$dbs = new DBLayer("shard");
|
||||
|
@ -30,7 +30,8 @@ function syncing(){
|
|||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,19 +6,19 @@
|
|||
*/
|
||||
function userlist(){
|
||||
if(Ticket_User::isMod(unserialize($_SESSION['ticket_user']))){
|
||||
|
||||
|
||||
$pagination = new Pagination(WebUsers::getAllUsersQuery(),"web",10,"WebUsers");
|
||||
$pageResult['userlist'] = Gui_Elements::make_table($pagination->getElements() , Array("getUId","getUsername","getEmail"), Array("id","username","email"));
|
||||
$pageResult['links'] = $pagination->getLinks(5);
|
||||
$pageResult['lastPage'] = $pagination->getLast();
|
||||
$pageResult['currentPage'] = $pagination->getCurrent();
|
||||
|
||||
|
||||
$i = 0;
|
||||
foreach( $pageResult['userlist'] as $user ){
|
||||
$pageResult['userlist'][$i]['permission'] = Ticket_User::constr_ExternId($pageResult['userlist'][$i]['id'])->getPermission();
|
||||
$i++;
|
||||
}
|
||||
|
||||
|
||||
if (Ticket_User::isAdmin(unserialize($_SESSION['ticket_user']))){
|
||||
$pageResult['isAdmin'] = "TRUE";
|
||||
}
|
||||
|
@ -30,7 +30,8 @@ function userlist(){
|
|||
}else{
|
||||
//ERROR: No access!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Cache-Control: max-age=1");
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
throw new SystemExit();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,23 +7,24 @@
|
|||
* -# else load the inc's folder matching function related to the page
|
||||
* -# set the permission and other smarty related settings
|
||||
* -# call the helper function to load the page.
|
||||
*
|
||||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*
|
||||
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||
*/
|
||||
|
||||
// load required pages and turn error reporting on/off
|
||||
error_reporting( E_ALL );
|
||||
ini_set( 'display_errors', 'on' );
|
||||
if ( !file_exists( '../is_installed' ) ) {
|
||||
// if is_installed doesnt exist run setup
|
||||
require( 'installer/libsetup.php' );
|
||||
} elseif ( isset( $_POST["function"] ) && $_POST["function"] == "do_install" ) {
|
||||
echo "Can't run setup while file '../is_installed' exists, please remove that file if you wish to run the install";
|
||||
exit;
|
||||
} else {
|
||||
// if config exists then include it
|
||||
require( '../config.php' );
|
||||
}
|
||||
|
||||
class SystemExit extends Exception {}
|
||||
try {
|
||||
|
||||
if (!file_exists( '../is_installed')) {
|
||||
header("Cache-Control: max-age=1");
|
||||
header('Location: ../setup', true, 303);
|
||||
throw new SystemExit();
|
||||
}
|
||||
|
||||
require( '../config.php' );
|
||||
require_once( $AMS_LIB . '/libinclude.php' );
|
||||
session_start();
|
||||
|
||||
|
@ -31,26 +32,27 @@ session_start();
|
|||
if ( isset( $_GET["cron"] ) ) {
|
||||
if ( $_GET["cron"] == "true" ) {
|
||||
Sync :: syncdata( false );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Always try to sync on page load, ie "lazy" cron
|
||||
Sync :: syncdata( false );
|
||||
|
||||
// Decide what page to load
|
||||
if ( ! isset( $_GET["page"] ) ) {
|
||||
|
||||
|
||||
if ( isset( $_SESSION['user'] ) ) {
|
||||
if ( Ticket_User :: isMod( unserialize( $_SESSION['ticket_user'] ) ) ) {
|
||||
$page = 'dashboard';
|
||||
} else {
|
||||
$page = 'show_user';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// default page
|
||||
$page = 'login';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// if the session exists load page with $_GET requests
|
||||
if ( isset( $_SESSION['user'] ) ) {
|
||||
$page = $_GET["page"];
|
||||
} else {
|
||||
|
@ -70,16 +72,16 @@ if ( ! isset( $_GET["page"] ) ) {
|
|||
default:
|
||||
$page = 'login';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// check if ingame & page= register
|
||||
// this is needed because the ingame register can't send a hidden $_POST["function"]
|
||||
if ( Helpers :: check_if_game_client() && ( $page == "register" ) ) {
|
||||
require( "func/add_user.php" );
|
||||
$return = add_user();
|
||||
}
|
||||
}
|
||||
|
||||
// perform an action in case one is specified
|
||||
// else check if a php page is included in the inc folder, else just set page to the get param
|
||||
|
@ -91,16 +93,17 @@ if ( isset( $_POST["function"] ) ) {
|
|||
$return = $_GET["action"]();
|
||||
} else {
|
||||
$filename = 'inc/' . $page . '.php';
|
||||
//check if this is a file
|
||||
if ( is_file( $filename ) ) {
|
||||
require_once( $filename );
|
||||
$return = $page();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add username to the return array in case logged in.
|
||||
if ( isset( $_SESSION['user'] ) ) {
|
||||
$return['username'] = $_SESSION['user'];
|
||||
}
|
||||
}
|
||||
|
||||
// Set permission
|
||||
if ( isset( $_SESSION['ticket_user'] ) ) {
|
||||
|
@ -108,27 +111,30 @@ if ( isset( $_SESSION['ticket_user'] ) ) {
|
|||
} else {
|
||||
// default permission
|
||||
$return['permission'] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// hide sidebar + topbar in case of login/register
|
||||
if ( $page == 'login' || $page == 'register' || $page == 'logout' || $page == 'forgot_password' || $page == 'reset_password' ) {
|
||||
$return['no_visible_elements'] = 'TRUE';
|
||||
} else {
|
||||
$return['no_visible_elements'] = 'FALSE';
|
||||
}
|
||||
}
|
||||
|
||||
// handle error page
|
||||
if ( $page == 'error' ) {
|
||||
$return['permission'] = 0;
|
||||
$return['no_visible_elements'] = 'FALSE';
|
||||
}
|
||||
}
|
||||
|
||||
// call to load hooks for the active plugins
|
||||
$hook_content = Plugincache :: loadHooks();
|
||||
foreach( $hook_content as $key => $value )
|
||||
{
|
||||
$return[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
// load the template with the variables in the $return array
|
||||
helpers :: loadTemplate( $page , $return );
|
||||
|
||||
}
|
||||
catch (SystemExit $e) { /* do nothing */ }
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
260
code/web/public_php/ams/js/init-chart.js
Normal file
260
code/web/public_php/ams/js/init-chart.js
Normal file
|
@ -0,0 +1,260 @@
|
|||
//chart with points
|
||||
if ($("#sincos").length) {
|
||||
var sin = [], cos = [];
|
||||
|
||||
for (var i = 0; i < 14; i += 0.5) {
|
||||
sin.push([i, Math.sin(i) / i]);
|
||||
cos.push([i, Math.cos(i)]);
|
||||
}
|
||||
|
||||
var plot = $.plot($("#sincos"),
|
||||
[
|
||||
{ data: sin, label: "sin(x)/x"},
|
||||
{ data: cos, label: "cos(x)" }
|
||||
], {
|
||||
series: {
|
||||
lines: { show: true },
|
||||
points: { show: true }
|
||||
},
|
||||
grid: { hoverable: true, clickable: true, backgroundColor: { colors: ["#fff", "#eee"] } },
|
||||
yaxis: { min: -1.2, max: 1.2 },
|
||||
colors: ["#539F2E", "#3C67A5"]
|
||||
});
|
||||
|
||||
function showTooltip(x, y, contents) {
|
||||
$('<div id="tooltip">' + contents + '</div>').css({
|
||||
position: 'absolute',
|
||||
display: 'none',
|
||||
top: y + 5,
|
||||
left: x + 5,
|
||||
border: '1px solid #fdd',
|
||||
padding: '2px',
|
||||
'background-color': '#dfeffc',
|
||||
opacity: 0.80
|
||||
}).appendTo("body").fadeIn(200);
|
||||
}
|
||||
|
||||
var previousPoint = null;
|
||||
$("#sincos").bind("plothover", function (event, pos, item) {
|
||||
$("#x").text(pos.x.toFixed(2));
|
||||
$("#y").text(pos.y.toFixed(2));
|
||||
|
||||
if (item) {
|
||||
if (previousPoint != item.dataIndex) {
|
||||
previousPoint = item.dataIndex;
|
||||
|
||||
$("#tooltip").remove();
|
||||
var x = item.datapoint[0].toFixed(2),
|
||||
y = item.datapoint[1].toFixed(2);
|
||||
|
||||
showTooltip(item.pageX, item.pageY,
|
||||
item.series.label + " of " + x + " = " + y);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$("#tooltip").remove();
|
||||
previousPoint = null;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$("#sincos").bind("plotclick", function (event, pos, item) {
|
||||
if (item) {
|
||||
$("#clickdata").text("You clicked point " + item.dataIndex + " in " + item.series.label + ".");
|
||||
plot.highlight(item.series, item.datapoint);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//flot chart
|
||||
if ($("#flotchart").length) {
|
||||
var d1 = [];
|
||||
for (var i = 0; i < Math.PI * 2; i += 0.25)
|
||||
d1.push([i, Math.sin(i)]);
|
||||
|
||||
var d2 = [];
|
||||
for (var i = 0; i < Math.PI * 2; i += 0.25)
|
||||
d2.push([i, Math.cos(i)]);
|
||||
|
||||
var d3 = [];
|
||||
for (var i = 0; i < Math.PI * 2; i += 0.1)
|
||||
d3.push([i, Math.tan(i)]);
|
||||
|
||||
$.plot($("#flotchart"), [
|
||||
{ label: "sin(x)", data: d1},
|
||||
{ label: "cos(x)", data: d2},
|
||||
{ label: "tan(x)", data: d3}
|
||||
], {
|
||||
series: {
|
||||
lines: { show: true },
|
||||
points: { show: true }
|
||||
},
|
||||
xaxis: {
|
||||
ticks: [0, [Math.PI / 2, "\u03c0/2"], [Math.PI, "\u03c0"], [Math.PI * 3 / 2, "3\u03c0/2"], [Math.PI * 2, "2\u03c0"]]
|
||||
},
|
||||
yaxis: {
|
||||
ticks: 10,
|
||||
min: -2,
|
||||
max: 2
|
||||
},
|
||||
grid: {
|
||||
backgroundColor: { colors: ["#fff", "#eee"] }
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//stack chart
|
||||
if ($("#stackchart").length) {
|
||||
var d1 = [];
|
||||
for (var i = 0; i <= 10; i += 1)
|
||||
d1.push([i, parseInt(Math.random() * 30)]);
|
||||
|
||||
var d2 = [];
|
||||
for (var i = 0; i <= 10; i += 1)
|
||||
d2.push([i, parseInt(Math.random() * 30)]);
|
||||
|
||||
var d3 = [];
|
||||
for (var i = 0; i <= 10; i += 1)
|
||||
d3.push([i, parseInt(Math.random() * 30)]);
|
||||
|
||||
var stack = 0, bars = true, lines = false, steps = false;
|
||||
|
||||
function plotWithOptions() {
|
||||
$.plot($("#stackchart"), [ d1, d2, d3 ], {
|
||||
series: {
|
||||
stack: stack,
|
||||
lines: { show: lines, fill: true, steps: steps },
|
||||
bars: { show: bars, barWidth: 0.6 }
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
plotWithOptions();
|
||||
|
||||
$(".stackControls input").click(function (e) {
|
||||
e.preventDefault();
|
||||
stack = $(this).val() == "With stacking" ? true : null;
|
||||
plotWithOptions();
|
||||
});
|
||||
$(".graphControls input").click(function (e) {
|
||||
e.preventDefault();
|
||||
bars = $(this).val().indexOf("Bars") != -1;
|
||||
lines = $(this).val().indexOf("Lines") != -1;
|
||||
steps = $(this).val().indexOf("steps") != -1;
|
||||
plotWithOptions();
|
||||
});
|
||||
}
|
||||
|
||||
//pie chart
|
||||
var data = [
|
||||
{ label: "Internet Explorer", data: 12},
|
||||
{ label: "Mobile", data: 27},
|
||||
{ label: "Safari", data: 85},
|
||||
{ label: "Opera", data: 64},
|
||||
{ label: "Firefox", data: 90},
|
||||
{ label: "Chrome", data: 112}
|
||||
];
|
||||
|
||||
if ($("#piechart").length) {
|
||||
$.plot($("#piechart"), data,
|
||||
{
|
||||
series: {
|
||||
pie: {
|
||||
show: true
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
hoverable: true,
|
||||
clickable: true
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
function pieHover(event, pos, obj) {
|
||||
if (!obj)
|
||||
return;
|
||||
percent = parseFloat(obj.series.percent).toFixed(2);
|
||||
$("#hover").html('<span style="font-weight: bold; color: ' + obj.series.color + '">' + obj.series.label + ' (' + percent + '%)</span>');
|
||||
}
|
||||
|
||||
$("#piechart").bind("plothover", pieHover);
|
||||
}
|
||||
|
||||
//donut chart
|
||||
if ($("#donutchart").length) {
|
||||
$.plot($("#donutchart"), data,
|
||||
{
|
||||
series: {
|
||||
pie: {
|
||||
innerRadius: 0.5,
|
||||
show: true
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// we use an inline data source in the example, usually data would
|
||||
// be fetched from a server
|
||||
var data = [], totalPoints = 300;
|
||||
|
||||
function getRandomData() {
|
||||
if (data.length > 0)
|
||||
data = data.slice(1);
|
||||
|
||||
// do a random walk
|
||||
while (data.length < totalPoints) {
|
||||
var prev = data.length > 0 ? data[data.length - 1] : 50;
|
||||
var y = prev + Math.random() * 10 - 5;
|
||||
if (y < 0)
|
||||
y = 0;
|
||||
if (y > 100)
|
||||
y = 100;
|
||||
data.push(y);
|
||||
}
|
||||
|
||||
// zip the generated y values with the x values
|
||||
var res = [];
|
||||
for (var i = 0; i < data.length; ++i)
|
||||
res.push([i, data[i]])
|
||||
return res;
|
||||
}
|
||||
|
||||
// setup control widget
|
||||
var updateInterval = 30;
|
||||
$("#updateInterval").val(updateInterval).change(function () {
|
||||
var v = $(this).val();
|
||||
if (v && !isNaN(+v)) {
|
||||
updateInterval = +v;
|
||||
if (updateInterval < 1)
|
||||
updateInterval = 1;
|
||||
if (updateInterval > 2000)
|
||||
updateInterval = 2000;
|
||||
$(this).val("" + updateInterval);
|
||||
}
|
||||
});
|
||||
|
||||
//realtime chart
|
||||
if ($("#realtimechart").length) {
|
||||
var options = {
|
||||
series: { shadowSize: 1 }, // drawing is faster without shadows
|
||||
yaxis: { min: 0, max: 100 },
|
||||
xaxis: { show: false }
|
||||
};
|
||||
var plot = $.plot($("#realtimechart"), [ getRandomData() ], options);
|
||||
|
||||
function update() {
|
||||
plot.setData([ getRandomData() ]);
|
||||
// since the axes don't change, we don't need to call plot.setupGrid()
|
||||
plot.draw();
|
||||
|
||||
setTimeout(update, updateInterval);
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
|
@ -1,18 +1,15 @@
|
|||
{block name=content}
|
||||
<div class="row-fluid sortable ui-sortable">
|
||||
<div class="box span8">
|
||||
<div class="box col-md-12">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-th"></i> Create a new Ticket</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
<form id="changePassword" class="form-vertical" method="post" action="index.php?page=createticket&id={$target_id}">
|
||||
<legend>New ticket</legend>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">Title</label>
|
||||
<div class="controls">
|
||||
|
@ -21,7 +18,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">Category</label>
|
||||
<div class="controls">
|
||||
|
@ -29,10 +26,10 @@
|
|||
{foreach from=$category key=k item=v}
|
||||
<option value="{$k}">{$v}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">Description</label>
|
||||
<div class="controls">
|
||||
|
@ -50,10 +47,11 @@
|
|||
<button type="submit" class="btn btn-primary" style="margin-left:5px; margin-top:10px;">Send Ticket</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
{/block}
|
||||
|
||||
|
||||
|
|
|
@ -4,42 +4,37 @@
|
|||
<div class="sortable row-fluid ui-sortable">
|
||||
<a data-original-title="{$nrAssignedWaiting} Assigned to you and waiting for support!" data-rel="tooltip" class="well span3 top-block"
|
||||
href="index.php?page=show_queue&get=create&userid={$user_id}&groupid=1&what=waiting_for_support&how=assigned&who=user">
|
||||
<span class="icon32 icon-blue icon-alert"></span>
|
||||
<span class="glyphicon glyphicon-exclamation-sign lg-icon red"></span>
|
||||
<div>Tickets Waiting for Direct Action</div>
|
||||
<span class="notification red">{$nrAssignedWaiting}</span>
|
||||
</a>
|
||||
|
||||
|
||||
<a data-original-title="{$nrToDo} Tickets Todo." data-rel="tooltip" class="well span3 top-block" href="index.php?page=show_queue&get=todo">
|
||||
<span class="icon32 icon-blue icon-tag"></span>
|
||||
<span class="glyphicon glyphicon-edit lg-icon yellow"></span>
|
||||
<div>Tickets Todo</div>
|
||||
<span class="notification red">{$nrToDo}</span>
|
||||
</a>
|
||||
|
||||
|
||||
<a data-original-title="By {$newestTicketAuthor}" data-rel="tooltip" class="well span3 top-block" href="index.php?page=show_ticket&id={$newestTicketId}">
|
||||
<span class="icon32 icon-blue icon-flag"></span>
|
||||
<span class="glyphicon glyphicon-flag lg-icon green"></span>
|
||||
<div>Newest Ticket</div>
|
||||
<span class="notification blue">{$newestTicketTitle}</span>
|
||||
</a>
|
||||
|
||||
|
||||
<a data-original-title="{$nrTotalTickets} tickets in total" data-rel="tooltip" class="well span3 top-block" href="index.php?page=show_queue&get=all">
|
||||
<span class="icon32 icon-blue icon-archive"></span>
|
||||
<span class="glyphicon glyphicon-briefcase lg-icon blue"></span>
|
||||
<div>Total amount of Tickets</div>
|
||||
<span class="notification blue">{$nrTotalTickets}</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row-fluid">
|
||||
<div class="box span12">
|
||||
<div class="box col-md-12">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well">
|
||||
<h2><i class="icon-info-sign"></i> {$home_title}</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-round" onclick="javascript:show_help('intro');return false;"><i class="icon-info-sign"></i></a>
|
||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<p><strong>{$home_info}</strong></p>
|
||||
|
@ -61,12 +56,13 @@
|
|||
<li>Browse additional info sent along when a ticket is created ingame</li>
|
||||
<li>All the above can be done while ingame too</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{/block}
|
||||
|
||||
|
|
|
@ -110,15 +110,10 @@
|
|||
</div>
|
||||
|
||||
<div class="row-fluid">
|
||||
<div class="box span12">
|
||||
<div class="box col-md-12">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well">
|
||||
<h2><i class="icon-info-sign"></i> Introduction</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-round" onclick="javascript:show_help('test');return false;"><i class="icon-info-sign"></i></a>
|
||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<h1>Charisma <small>free, premium quality, responsive, multiple skin admin template.</small></h1>
|
||||
|
@ -128,12 +123,14 @@
|
|||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row-fluid sortable ui-sortable">
|
||||
|
||||
|
||||
<div class="box span4">
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-user"></i> Member Activity</h2>
|
||||
<div class="box-icon">
|
||||
|
@ -179,9 +176,11 @@
|
|||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
|
||||
<div class="box span8">
|
||||
<div class="box col-md-8">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-list-alt"></i> Realtime Traffic</h2>
|
||||
<div class="box-icon">
|
||||
|
@ -194,11 +193,13 @@
|
|||
<p class="clearfix">You can update a chart periodically to get a real-time effect by using a timer to insert the new data in the plot and redraw it.</p>
|
||||
<p>Time between updates: <input id="updateInterval" value="" style="text-align: right; width:5em" type="text"> milliseconds</p>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
|
||||
<div class="row-fluid sortable ui-sortable">
|
||||
<div class="box span4">
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-list"></i> Buttons</h2>
|
||||
<div class="box-icon">
|
||||
|
@ -241,9 +242,11 @@
|
|||
<button class="btn btn-mini btn-inverse">Mini button</button>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
|
||||
<div class="box span4">
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-list"></i> Buttons</h2>
|
||||
<div class="box-icon">
|
||||
|
@ -281,9 +284,11 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
|
||||
<div class="box span4">
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-list"></i> Weekly Stat</h2>
|
||||
<div class="box-icon">
|
||||
|
@ -352,6 +357,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
|
||||
|
|
|
@ -1,15 +1,10 @@
|
|||
{block name=content}
|
||||
|
||||
|
||||
<div class="row-fluid">
|
||||
<div class="box span12">
|
||||
<div class="box col-md-12">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well">
|
||||
<h2><i class="icon-info-sign"></i>{$ip_title}</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-round" onclick="javascript:show_help('intro');return false;"><i class="icon-info-sign"></i></a>
|
||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<center>
|
||||
|
@ -22,15 +17,16 @@
|
|||
<input type="button" value="Upload" onclick="uploadPlugin()"></br>
|
||||
<h3 id="status"></h3>
|
||||
{if isset($smarty.get.result) and $smarty.get.result eq "0"}<p>{$ip_file_nfnd}</p>{/if}
|
||||
{if isset($smarty.get.result) and $smarty.get.result eq "2"}<p>{$ip_info_nfound}</p>{/if}
|
||||
{if isset($smarty.get.result) and $smarty.get.result eq "2"}<p>{$ip_info_nfound}</p>{/if}
|
||||
</div>
|
||||
{$ip_message}
|
||||
</center>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
|
||||
|
||||
</div><!--/row-->
|
||||
{/block}
|
||||
|
|
|
@ -18,31 +18,23 @@
|
|||
<meta name="author" content="Daan Janssens & Matthew Lagoe">
|
||||
|
||||
<!-- The styles -->
|
||||
<link id="bs-css" href="css/bootstrap-cerulean.css" rel="stylesheet">
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
.sidebar-nav {
|
||||
padding: 9px 0;
|
||||
}
|
||||
</style>
|
||||
<link href="css/bootstrap-responsive.css" rel="stylesheet">
|
||||
<link href="css/charisma-app.css" rel="stylesheet">
|
||||
<link href="css/jquery-ui-1.8.21.custom.css" rel="stylesheet">
|
||||
<link href='css/fullcalendar.css' rel='stylesheet'>
|
||||
<link href='css/fullcalendar.print.css' rel='stylesheet' media='print'>
|
||||
<link href='css/chosen.css' rel='stylesheet'>
|
||||
<link href='css/uniform.default.css' rel='stylesheet'>
|
||||
<link href='css/colorbox.css' rel='stylesheet'>
|
||||
<link href='css/jquery.cleditor.css' rel='stylesheet'>
|
||||
<link href='css/jquery.noty.css' rel='stylesheet'>
|
||||
<link href='css/noty_theme_default.css' rel='stylesheet'>
|
||||
<link href='css/elfinder.min.css' rel='stylesheet'>
|
||||
<link href='css/elfinder.theme.css' rel='stylesheet'>
|
||||
<link href='css/jquery.iphone.toggle.css' rel='stylesheet'>
|
||||
<link href='css/opa-icons.css' rel='stylesheet'>
|
||||
<link href='css/uploadify.css' rel='stylesheet'>
|
||||
<link id="bs-css" href="css/bootstrap-classic.css" rel="stylesheet">
|
||||
<link id="bs-css" href="css/bootstrap-cerulean.min.css" rel="stylesheet">
|
||||
|
||||
<link href="css/charisma-app.css" rel="stylesheet">
|
||||
<link href='bower_components/fullcalendar/dist/fullcalendar.css' rel='stylesheet'>
|
||||
<link href='bower_components/fullcalendar/dist/fullcalendar.print.css' rel='stylesheet' media='print'>
|
||||
<link href='bower_components/chosen/chosen.min.css' rel='stylesheet'>
|
||||
<link href='bower_components/colorbox/example3/colorbox.css' rel='stylesheet'>
|
||||
<link href='bower_components/responsive-tables/responsive-tables.css' rel='stylesheet'>
|
||||
<link href='bower_components/bootstrap-tour/build/css/bootstrap-tour.min.css' rel='stylesheet'>
|
||||
<link href='css/jquery.noty.css' rel='stylesheet'>
|
||||
<link href='css/noty_theme_default.css' rel='stylesheet'>
|
||||
<link href='css/elfinder.min.css' rel='stylesheet'>
|
||||
<link href='css/elfinder.theme.css' rel='stylesheet'>
|
||||
<link href='css/jquery.iphone.toggle.css' rel='stylesheet'>
|
||||
<link href='css/uploadify.css' rel='stylesheet'>
|
||||
<link href='css/animate.min.css' rel='stylesheet'>
|
||||
|
||||
<!-- The HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||
<!--[if lt IE 9]>
|
||||
|
@ -68,9 +60,13 @@
|
|||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<a class="brand" href="index.php"> <img alt="Ryzom Core Logo" src="img/ryzomcore_166_62.png"></a>
|
||||
<div class="flags_logged_in">
|
||||
<img onclick="reloadPageWithLanguage('en');" src="img/en.png">
|
||||
<img onclick="reloadPageWithLanguage('fr');" src="img/fr.png">
|
||||
</div>
|
||||
|
||||
<!-- theme selector starts -->
|
||||
<div class="btn-group pull-right theme-container">
|
||||
<!--<div class="btn-group pull-right theme-container">
|
||||
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
<i class="icon-tint"></i><span class="hidden-phone"> Change Theme / Skin</span>
|
||||
<span class="caret"></span>
|
||||
|
@ -86,7 +82,7 @@
|
|||
<li><a data-value="spacelab" href="#"><i class="icon-blank"></i> Spacelab</a></li>
|
||||
<li><a data-value="united" href="#"><i class="icon-blank"></i> United</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- theme selector ends -->
|
||||
<!-- user dropdown starts -->
|
||||
{if isset($username)}
|
||||
|
@ -101,12 +97,6 @@
|
|||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="btn-group pull-right">
|
||||
<div class="flags">
|
||||
<img src="img/en.png" onclick="reloadPageWithLanguage('en');"/>
|
||||
<img src="img/fr.png" onclick="reloadPageWithLanguage('fr');"/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- user dropdown ends -->
|
||||
</div>
|
||||
</div>
|
||||
|
@ -121,7 +111,6 @@
|
|||
<ul class="nav nav-tabs nav-stacked main-menu">
|
||||
{block name=menu}{/block}
|
||||
</ul>
|
||||
<label id="for-is-ajax" class="hidden-tablet" for="is-ajax"><input id="is-ajax" type="checkbox"> Ajax on menu</label>
|
||||
<!--<label id="for-is-ajax" class="hidden-tablet" for="is-ajax" style="visibility:hidden;"><div id="uniform-is-ajax" class="checker"><span class="checked"><input style="opacity: 0;" id="is-ajax" type="checkbox"></span></div> Ajax on menu</label>--!>
|
||||
</div><!--/.well -->
|
||||
</div><!--/span-->
|
||||
|
@ -137,9 +126,9 @@
|
|||
<div id="content" class="span10">
|
||||
<!-- content starts -->
|
||||
{/if}
|
||||
|
||||
|
||||
{if isset($no_visible_elements) and $no_visible_elements eq "TRUE"}
|
||||
|
||||
|
||||
<div class="flags_no_visible_elements">
|
||||
<img src="img/en.png" onclick="reloadPageWithLanguage('en');"/>
|
||||
<img src="img/fr.png" onclick="reloadPageWithLanguage('fr');"/>
|
||||
|
@ -148,8 +137,8 @@
|
|||
{/if}
|
||||
|
||||
{block name=content}{/block}
|
||||
|
||||
|
||||
|
||||
|
||||
{if ! isset($no_visible_elements) or $no_visible_elements eq "FALSE"}
|
||||
</div><!--/#content.span10-->
|
||||
{/if}
|
||||
|
@ -172,7 +161,6 @@
|
|||
</div>
|
||||
|
||||
<footer>
|
||||
<p class="pull-left">© <a href="http://usman.it" target="_blank">Muhammad Usman</a> <?php echo date('Y') ?></p>
|
||||
<p class="pull-right">Powered by: <a href="http://usman.it/free-responsive-admin-template">Charisma</a></p>
|
||||
</footer>
|
||||
{/if}
|
||||
|
@ -198,38 +186,38 @@
|
|||
{
|
||||
return document.getElementById(e1);
|
||||
}
|
||||
|
||||
|
||||
function uploadPlugin()
|
||||
{
|
||||
var fileObject = _("file").files[0];
|
||||
var formdata = new FormData();
|
||||
formdata.append("file",fileObject);
|
||||
var ajax = new XMLHttpRequest();
|
||||
ajax.upload.addEventListener("progress", progressHandler, false);
|
||||
ajax.upload.addEventListener("progress", progressHandler, false);
|
||||
ajax.addEventListener("load", completeHandler, false);
|
||||
ajax.addEventListener("error", errorHandler, false);
|
||||
ajax.addEventListener("abort", abortHandler, false);
|
||||
ajax.open("POST", "index.php?page=plugin&action=install_plugin");
|
||||
ajax.send(formdata);
|
||||
}
|
||||
|
||||
|
||||
function progressHandler(event)
|
||||
{
|
||||
var percent = (event.loaded/event.total)*100;
|
||||
_("progressBar").value = Math.round(percent);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function completeHandler(event)
|
||||
{
|
||||
_("status").innerHTML = event.target.responseText;
|
||||
_("progressBar").value = 0;
|
||||
}
|
||||
|
||||
|
||||
function errorHandler(event)
|
||||
{
|
||||
_("status").innerHTML = "upload Failed";
|
||||
}
|
||||
|
||||
|
||||
function abortHandler(event)
|
||||
{
|
||||
_("status").innerHTML = "upload Aborted";
|
||||
|
@ -238,13 +226,13 @@
|
|||
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#expDate").datepicker({ dateFormat: 'yy-mm-dd' });
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="js/jquery-1.7.2.min.js"></script>
|
||||
<!-- jQuery UI -->
|
||||
|
@ -313,7 +301,7 @@
|
|||
<!-- history.js for cross-browser state change on ajax -->
|
||||
<script src="js/jquery.history.js"></script>
|
||||
<!-- application script for Charisma demo -->
|
||||
<script src="js/charisma.js"></script>
|
||||
<!-- <script src="js/charisma.js"></script> -->
|
||||
<!-- help script for page help -->
|
||||
<script src="js/help.js"></script>
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<div class="clearfix"></div>
|
||||
|
||||
<div class="input-prepend">
|
||||
<label for="remember" class="remember"><div class="checker" id="uniform-remember"><span><input type="checkbox" id="remember" style="opacity: 0;"></span></div>Remember me</label>
|
||||
<label for="remember" class="remember "><div class="checkbox" id="uniform-remember"><span><input type="checkbox" id="remember" ></span></div>Remember me</label>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
|
|
|
@ -1,13 +1,9 @@
|
|||
{block name=content}
|
||||
<div class="row-fluid">
|
||||
<div class="box span12">
|
||||
<div class="row-fluid">
|
||||
<div class="box col-md-12">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title>
|
||||
<h2><i class="icon-user"></i> {$plugin_title}</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{if isset($smarty.get.result) and $smarty.get.result eq "1"}<div class="alert alert-error"><p>{$ip_success}</p></div>{/if}
|
||||
{if isset($smarty.get.result) and $smarty.get.result eq "0"}<div class="alert alert-error"><p>{$dp_error}</p></div>{/if}
|
||||
|
@ -27,7 +23,7 @@
|
|||
<table class="table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{$plugin_status}</th>
|
||||
<th>{$plugin_status}</th>
|
||||
<th width="100">{$plugin_name}</th>
|
||||
<th>{$plugin_version}</th>
|
||||
<th width="350">{$plugin_description}</th>
|
||||
|
@ -35,11 +31,11 @@
|
|||
<th>{$plugin_permission}</th>
|
||||
<th>{$plugin_actions}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$plug item=element}
|
||||
<tr>
|
||||
<td><input type="checkbox" name ="{$element.id}"{if ($element.plugin_status) eq "1"}checked{/if}/></td>
|
||||
<td>{if ($element.plugin_status) eq "1"}<i class="glyphicon glyphicon-ok green"></i>{else}<i class="glyphicon glyphicon-remove red"></i>{/if}</td>
|
||||
<td class="center">{$element.plugin_name}</td>
|
||||
<td class="center">{$element.plugin_info->Version}</td>
|
||||
<td class="center">{$element.plugin_info->Description}</td>
|
||||
|
@ -52,7 +48,7 @@
|
|||
{if ($element.plugin_status) eq "1"}<a href="index.php?page=plugins&action=deactivate_plugin&id={$element.id}"><button class="btn btn-primary btn-large dropdown-toggle">Deactivate</button></a>{/if}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div style="width: 300px; margin:0px auto;">
|
||||
|
@ -65,7 +61,8 @@
|
|||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
{/block}
|
||||
|
|
|
@ -1,26 +1,22 @@
|
|||
{block name=content}
|
||||
<div class="row-fluid">
|
||||
<div class="box span12">
|
||||
<div class="row-fluid">
|
||||
<div class="box col-md-12">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title>
|
||||
<h2><i class="icon-user"></i> {$up_title}</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<center><p>{$up_info}</p></center>
|
||||
<table class="table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<tr>
|
||||
<th width="100">{$plugin_name}</th>
|
||||
<th>{$plugin_version}</th>
|
||||
<th>{$up_updated_version}</th>
|
||||
<th width="500">{$up_description}</th>
|
||||
<th>{$up_actions}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$plug item=element}
|
||||
<tr>
|
||||
|
@ -31,7 +27,7 @@
|
|||
<td><a href="index.php?page=plugins&action=update_plugins&id={$element.id}"><button class="btn btn-primary btn-large">Update</button></a>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div style="width: 300px; margin:0px auto;">
|
||||
|
@ -44,7 +40,8 @@
|
|||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
{/block}
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
{block name=content}
|
||||
<div class="row-fluid sortable ui-sortable">
|
||||
<div class="box span4">
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-th"></i> Change Password</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
<form id="changePassword" class="form-vertical" method="post" action="index.php?page=settings&id={$target_id}">
|
||||
<legend>Change Password</legend>
|
||||
|
||||
|
||||
{if !isset($changesOther) or $changesOther eq "FALSE"}
|
||||
<div class="control-group {if isset($MATCH_ERROR) and $MATCH_ERROR eq "TRUE"}error{else if
|
||||
isset($match_error_message) and $match_error_message neq "fail"}success{else}{/if}">
|
||||
|
@ -20,7 +17,7 @@
|
|||
<div class="controls">
|
||||
<div class="input-prepend">
|
||||
<span class="add-on" style="margin-left:5px;"><i class="icon-lock"></i></span>
|
||||
<input type="password" class="input-xlarge" id="CurrentPass" name="CurrentPass" placeholder="Your current password" {if isset($prevCurrentPass)}value="{$prevCurrentPass}"{/if}>
|
||||
<input type="password" class="setup-width" id="CurrentPass" name="CurrentPass" placeholder="Your current password" {if isset($prevCurrentPass)}value="{$prevCurrentPass}"{/if}>
|
||||
{if isset($MATCH_ERROR) and $MATCH_ERROR eq "TRUE"}<span class="help-inline">The password is incorrect</span>{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -32,255 +29,250 @@
|
|||
<div class="controls">
|
||||
<div class="input-prepend">
|
||||
<span class="add-on" style="margin-left:5px;"><i class="icon-tag"></i></span>
|
||||
<input type="password" class="input-xlarge" id="NewPass" name="NewPass" placeholder="Your new password" {if isset($prevNewPass)}value="{$prevNewPass}"{/if}>
|
||||
<input type="password" class="setup-width" id="NewPass" name="NewPass" placeholder="Your new password" {if isset($prevNewPass)}value="{$prevNewPass}"{/if}>
|
||||
{if isset($NEWPASSWORD_ERROR) and $NEWPASSWORD_ERROR eq "TRUE"}<span class="help-inline">{$newpass_error_message}</span>{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group {if isset($CNEWPASSWORD_ERROR) and $CNEWPASSWORD_ERROR eq "TRUE"}error{else if
|
||||
isset($confirmnewpass_error_message) and $confirmnewpass_error_message eq "success"}success{else}{/if}">
|
||||
<label class="control-label">Confirm New Password</label>
|
||||
<div class="controls">
|
||||
<div class="input-prepend">
|
||||
<span class="add-on" style="margin-left:5px;"><i class="icon-tags"></i></span>
|
||||
<input type="password" class="input-xlarge" id="ConfirmNewPass" name="ConfirmNewPass" placeholder="Re-enter the new password" {if isset($prevConfirmNewPass)}value="{$prevConfirmNewPass}"{/if}>
|
||||
<input type="password" class="setup-width" id="ConfirmNewPass" name="ConfirmNewPass" placeholder="Re-enter the new password" {if isset($prevConfirmNewPass)}value="{$prevConfirmNewPass}"{/if}>
|
||||
{if isset($CNEWPASSWORD_ERROR) and $CNEWPASSWORD_ERROR eq "TRUE"}<span class="help-inline">{$confirmnewpass_error_message}</span>{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{if isset($SUCCESS_PASS) and $SUCCESS_PASS eq "OK"}
|
||||
<div class="alert alert-success">
|
||||
The password has been changed!
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
{if isset($SUCCESS_PASS) and $SUCCESS_PASS eq "SHARDOFF"}
|
||||
<div class="alert alert-warning">
|
||||
The password has been changed, though the shard seems offline, it may take some time to see the change on the shard.
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
<input type="hidden" name="function" value="change_password">
|
||||
<input type="hidden" name="target_id" value="{$target_id}">
|
||||
<div class="control-group">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<button type="submit" class="btn btn-primary" style="margin-left:5px; margin-top:10px;">Change Password</button>
|
||||
<button type="submit" class="btn btn-primary" style="margin-left:5px;">Change Password</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
|
||||
|
||||
<div class="box span4">
|
||||
|
||||
{if $permission != '1'}
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-th"></i> Add User</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
<form id="addUser" class="form-vertical" method="post" action="index.php?page=settings&id={$target_id}">
|
||||
<legend>Add User</legend>
|
||||
|
||||
<div class="control-group">
|
||||
|
||||
<div class="control-group {if isset($USERNAME_ERROR) and $USERNAME_ERROR eq "TRUE"}error{/if}">
|
||||
<label class="control-label">Username</label>
|
||||
<div class="controls">
|
||||
<div class="input-prepend">
|
||||
<span style="margin-left:5px;" class="add-on"><i class="icon-user"></i></span>
|
||||
<input type="text" value="Username" placeholder="Username" name="Username" id="Username" class="input-xlarge">
|
||||
<input type="text" placeholder="Username" name="Username" id="Username" class="setup-width" {if isset($prevUsername)}value="{$prevUsername}"{/if}>
|
||||
{if isset($USERNAME_ERROR) and $USERNAME_ERROR eq "TRUE"}<span class="help-inline">{$USERNAME}</span>{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group ">
|
||||
</div>
|
||||
|
||||
<div class="control-group {if isset($PASSWORD_ERROR) and $PASSWORD_ERROR eq "TRUE"}error{/if}">
|
||||
<label class="control-label">Password</label>
|
||||
<div class="controls">
|
||||
<div class="input-prepend">
|
||||
<span style="margin-left:5px;" class="add-on"><i class="icon-lock"></i></span>
|
||||
<input type="password" placeholder="Password" name="Password" id="Password" class="input-xlarge">
|
||||
<input type="password" placeholder="Password" name="Password" id="Password" class="setup-width">
|
||||
{if isset($PASSWORD_ERROR) and $PASSWORD_ERROR eq "TRUE"}<span class="help-inline">{$PASSWORD}</span>{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group ">
|
||||
|
||||
<div class="control-group {if isset($CPASSWORD_ERROR) and $CPASSWORD_ERROR eq "TRUE"}error{/if}">
|
||||
<label class="control-label">Confirm Password</label>
|
||||
<div class="controls">
|
||||
<div class="input-prepend">
|
||||
<span style="margin-left:5px;" class="add-on"><i class="icon-lock"></i></span>
|
||||
<input type="password" placeholder="Confirm Password" name="ConfirmPass" id="ConfirmPass" class="input-xlarge">
|
||||
<input type="password" placeholder="Confirm Password" name="ConfirmPass" id="ConfirmPass" class="setup-width">
|
||||
{if isset($CPASSWORD_ERROR) and $CPASSWORD_ERROR eq "TRUE"}<span class="help-inline">{$CPASSWORD}</span>{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group ">
|
||||
|
||||
<div class="control-group {if isset($EMAIL_ERROR) and $EMAIL_ERROR eq "TRUE" and isset($do)}error{/if}">
|
||||
<label class="control-label">Email</label>
|
||||
<div class="controls">
|
||||
<div class="input-prepend">
|
||||
<span style="margin-left:5px;" class="add-on"><i class="icon-envelope"></i></span>
|
||||
<input type="text" value="Email" placeholder="Email" name="Email" id="Email" class="input-xlarge">
|
||||
<input type="text" class="setup-width" id="Email" name="Email" placeholder="Email" {if isset($prevEmail)}value="{$prevEmail}"{/if}>
|
||||
{if isset($EMAIL_ERROR) and $EMAIL_ERROR eq "TRUE" and isset($do)}<span class="help-inline">{$EMAIL}</span>{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{if isset($SUCCESS_PASS) and $SUCCESS_PASS eq "OK"}
|
||||
|
||||
|
||||
{if isset($SUCCESS_ADD) and $SUCCESS_ADD eq "ok"}
|
||||
<div class="alert alert-success">
|
||||
The user is created!
|
||||
The user has been created!
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if isset($SUCCESS_PASS) and $SUCCESS_PASS eq "SHARDOFF"}
|
||||
|
||||
{if isset($SUCCESS_ADD) and $SUCCESS_ADD eq "shardoffline"}
|
||||
<div class="alert alert-warning">
|
||||
The user can't be created.
|
||||
The user is created, though the shard seems offline, it may take some time to see the change on the shard.
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
<input type="hidden" name="function" value="add_user">
|
||||
<input type="hidden" name="target_id" value="{$target_id}">
|
||||
<div class="control-group">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<button type="submit" class="btn btn-primary" style="margin-left:5px; margin-top:10px;">Create User</button>
|
||||
<button type="submit" class="btn btn-primary" style="margin-left:5px;">Create User</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
|
||||
|
||||
<div class="box span4">
|
||||
{/if}
|
||||
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-th"></i> Change Email</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
<form id="changeEmail" class="form-vertical" method="post" action="index.php?page=settings&id={$target_id}">
|
||||
<legend>Change Email</legend>
|
||||
<div class="control-group {if isset($EMAIL_ERROR) and $EMAIL_ERROR eq "TRUE"}error{/if}">
|
||||
<div class="control-group {if isset($CEMAIL_ERROR) and $CEMAIL_ERROR eq "TRUE"}error{/if}">
|
||||
<label class="control-label">New Email</label>
|
||||
<div class="controls">
|
||||
<div class="input-prepend">
|
||||
<span class="add-on" style="margin-left:5px;"><i class="icon-envelope"></i></span>
|
||||
<input type="text" class="input-xlarge" id="NewEmail" name="NewEmail" placeholder="Your new email" {if isset($prevNewEmail)}value="{$prevNewEmail}"{else if isset($current_mail)}value="{$current_mail}"{/if}>
|
||||
{if isset($EMAIL_ERROR) and $EMAIL_ERROR eq "TRUE"}<span class="help-inline">{$EMAIL}</span>{/if}
|
||||
|
||||
<input type="text" class="setup-width" id="NewEmail" name="NewEmail" placeholder="Your new email" {if isset($prevNewEmail)}value="{$prevNewEmail}"{else if isset($current_mail)}value="{$current_mail}"{/if}>
|
||||
{if isset($CEMAIL_ERROR) and $CEMAIL_ERROR eq "TRUE"}<span class="help-inline">{$EMAIL}</span>{/if}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
{if isset($SUCCESS_MAIL) and $SUCCESS_MAIL eq "OK"}
|
||||
<div class="alert alert-success">
|
||||
The email has been changed!
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
{if isset($SUCCESS_MAIL) and $SUCCESS_MAIL eq "SHARDOFF"}
|
||||
<div class="alert alert-warning">
|
||||
The email has been changed, though the shard seems offline, it may take some time to see the change on the shard.
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
<input type="hidden" name="function" value="change_mail">
|
||||
<input type="hidden" name="target_id" value="{$target_id}">
|
||||
<div class="control-group">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<button type="submit" class="btn btn-primary" style="margin-left:5px; margin-top:10px;">Change Email</button>
|
||||
<button type="submit" class="btn btn-primary" style="margin-left:5px;">Change Email</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box span4">
|
||||
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-envelope"></i> Ticket updates</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-envelope"></i> Ticket updates</h2>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
<form id="changeReceiveMail" class="form-vertical" method="post" action="index.php?page=settings&id={$target_id}">
|
||||
<legend>Ticket-Update Mail Settings</legend>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">Receive ticket updates</label>
|
||||
<div class="controls">
|
||||
<select name="ReceiveMail">
|
||||
<select name="ReceiveMail">
|
||||
<option value="1" {if isset($ReceiveMail) and $ReceiveMail eq 1}selected="selected"{/if}>Yes</option>
|
||||
<option value="0" {if isset($ReceiveMail) and $ReceiveMail eq 0}selected="selected"{/if}>No</option>
|
||||
</select>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<input type="hidden" name="function" value="change_receivemail">
|
||||
<input type="hidden" name="target_id" value="{$target_id}">
|
||||
<div class="control-group">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<button type="submit" class="btn btn-primary" style="margin-left:5px; margin-top:10px;">Change Updates</button>
|
||||
<button type="submit" class="btn btn-primary" style="margin-left:5px;">Change Updates</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
|
||||
<div class="box span4">
|
||||
|
||||
<div class="box col-md-4">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-th"></i> Change Info</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
<form id="changeEmail" class="form-vertical" method="post" action="index.php?page=settings&id={$target_id}">
|
||||
<legend>Change Info</legend>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">Firstname</label>
|
||||
<div class="controls">
|
||||
<div class="input-prepend">
|
||||
<span class="add-on" style="margin-left:5px;"><i class="icon-user"></i></span>
|
||||
<input type="text" class="input-xlarge" id="FirstName" name="FirstName" placeholder="Your firstname" {if isset($FirstName) and $FirstName neq ""}value="{$FirstName}"{/if}>
|
||||
<input type="text" class="setup-width" id="FirstName" name="FirstName" placeholder="Your firstname" {if isset($FirstName) and $FirstName neq ""}value="{$FirstName}"{/if}>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">Lastname</label>
|
||||
<div class="controls">
|
||||
<div class="input-prepend">
|
||||
<span class="add-on" style="margin-left:5px;"><i class="icon-user"></i></span>
|
||||
<input type="text" class="input-xlarge" id="LastName" name="LastName" placeholder="Your lastname" {if isset($LastName) and $LastName neq ""}value="{$LastName}"{/if}>
|
||||
<input type="text" class="setup-width" id="LastName" name="LastName" placeholder="Your lastname" {if isset($LastName) and $LastName neq ""}value="{$LastName}"{/if}>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">Country</label>
|
||||
<div class="controls">
|
||||
|
@ -288,51 +280,52 @@
|
|||
{foreach from=$country_array key=k item=v}
|
||||
<option value="{$k}" {if isset($Country) and $Country eq $k}selected="selected"{/if}>{$v}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
|
||||
<div class="control-group gender-list">
|
||||
<label class="control-label">Gender</label>
|
||||
<div class="controls">
|
||||
<div class="controls">
|
||||
<label class="radio">
|
||||
<div id="uniform-optionsRadios2" class="radio"><span class="{if isset($Gender) and $Gender eq 0}checked{/if}"><input style="opacity: 0;" name="Gender" id="optionsRadios0" value="0" {if isset($Gender) and $Gender eq 0}checked=""{/if} type="radio"></span></div>
|
||||
<div id="uniform-optionsRadios2" class="radio"><span class="{if isset($Gender) and $Gender eq 0}checked{/if}"><input name="Gender" id="optionsRadios0" value="0" {if isset($Gender) and $Gender eq 0}checked=""{/if} type="radio"></span></div>
|
||||
Secret
|
||||
</label>
|
||||
<div style="clear:both"></div>
|
||||
<label class="radio">
|
||||
<div id="uniform-optionsRadios1" class="radio"><span class="{if isset($Gender) and $Gender eq 1}checked{/if}"><input style="opacity: 0;" name="Gender" id="optionsRadios1" value="1" {if isset($Gender) and $Gender eq 1}checked=""{/if} type="radio"></span></div>
|
||||
<div id="uniform-optionsRadios1" class="radio"><span class="{if isset($Gender) and $Gender eq 1}checked{/if}"><input name="Gender" id="optionsRadios1" value="1" {if isset($Gender) and $Gender eq 1}checked=""{/if} type="radio"></span></div>
|
||||
Male
|
||||
</label>
|
||||
<div style="clear:both"></div>
|
||||
<label class="radio">
|
||||
<div id="uniform-optionsRadios2" class="radio"><span class="{if isset($Gender) and $Gender eq 2}checked{/if}"><input style="opacity: 0;" name="Gender" id="optionsRadios2" value="2" {if isset($Gender) and $Gender eq 2}checked=""{/if} type="radio"></span></div>
|
||||
<div id="uniform-optionsRadios2" class="radio"><span class="{if isset($Gender) and $Gender eq 2}checked{/if}"><input name="Gender" id="optionsRadios2" value="2" {if isset($Gender) and $Gender eq 2}checked=""{/if} type="radio"></span></div>
|
||||
Female
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{if isset($info_updated) and $info_updated eq "OK"}
|
||||
<div class="alert alert-success">
|
||||
The Info has been updated!
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
<input type="hidden" name="function" value="change_info">
|
||||
<input type="hidden" name="target_id" value="{$target_id}">
|
||||
<div class="control-group">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<button type="submit" class="btn btn-primary" style="margin-left:5px; margin-top:10px;">Change Info</button>
|
||||
<button type="submit" class="btn btn-primary" style="margin-left:5px;">Change Info</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{/block}
|
||||
|
||||
|
||||
|
|
|
@ -2,13 +2,10 @@
|
|||
|
||||
|
||||
<div class="row-fluid sortable ui-sortable">
|
||||
<div class="box span9">
|
||||
<div class="box col-md-9">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-list"></i> List</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
|
@ -22,7 +19,7 @@
|
|||
<th>Email</th>
|
||||
{if isset($isAdmin) && $isAdmin eq 'TRUE'}<th>Action</th>{/if}
|
||||
</tr>
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$grouplist item=group}
|
||||
<tr>
|
||||
|
@ -33,28 +30,26 @@
|
|||
{if isset($isAdmin) && $isAdmin eq 'TRUE'}<td class="center"><a class="btn btn-danger" href="index.php?page=sgroup_list&delete={$group.sGroupId}"><i class="icon-trash icon-white"></i> Delete</a></td>{/if}
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
{if isset($isAdmin) && $isAdmin eq 'TRUE'}
|
||||
<div class="box span3">
|
||||
<div class="box col-md-3">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-plus-sign"></i> Add</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
|
||||
|
||||
<form id="addSGroup" class="form-vertical" method="post" action="index.php?page=sgroup_list">
|
||||
|
||||
|
||||
<legend>Add a support group</legend>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">Group name</label>
|
||||
<div class="controls">
|
||||
|
@ -63,7 +58,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">Group Tag</label>
|
||||
<div class="controls">
|
||||
|
@ -72,7 +67,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">Group EmailAddress</label>
|
||||
<div class="controls">
|
||||
|
@ -81,7 +76,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">IMAP MailServer IP</label>
|
||||
<div class="controls">
|
||||
|
@ -90,7 +85,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">IMAP Username</label>
|
||||
<div class="controls">
|
||||
|
@ -99,7 +94,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label">IMAP Password</label>
|
||||
<div class="controls">
|
||||
|
@ -108,16 +103,16 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<input type="hidden" name="function" value="add_sgroup">
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<button type="submit" class="btn btn-primary" >Add</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{if isset($RESULT_OF_ADDING) and $RESULT_OF_ADDING eq "SUCCESS"}
|
||||
<div class="alert alert-success">
|
||||
{$group_success}
|
||||
|
@ -136,11 +131,12 @@
|
|||
</div>
|
||||
{/if}
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
{/if}
|
||||
</div><!--/row-->
|
||||
{/block}
|
||||
|
||||
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
{block name=content}
|
||||
<div class="row-fluid sortable ui-sortable">
|
||||
<div class="box span9">
|
||||
<div class="box col-md-9">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-tag"></i> Ticket Queue {$queue_view}</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
<legend>Tickets</legend>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
<form id="create_queue" class="form-vertical" method="post" action="index.php?page=show_queue&get=create" style="margin:0px 0px 0px;">
|
||||
Show
|
||||
|
@ -49,11 +46,11 @@
|
|||
<input type="hidden" name="action" value="create_queue">
|
||||
<button type="submit" class="btn btn-primary" style="bottom:4px; position:relative;" ><i class="icon-tag icon-white"></i> View</button>
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{if isset($ACTION_RESULT) and $ACTION_RESULT eq "SUCCESS_ASSIGNED"}
|
||||
<div class="alert alert-success">
|
||||
{$success_assigned}
|
||||
|
@ -75,7 +72,7 @@
|
|||
{$ticket_not_assigned}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
<table class="table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -88,7 +85,7 @@
|
|||
<th>SupportGroup</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$tickets item=ticket}
|
||||
<tr>
|
||||
|
@ -97,16 +94,16 @@
|
|||
<td>{if $ticket.assignedText neq ""} <a href="index.php?page=show_user&id={$ticket.assigned}">{$ticket.assignedText} {else}<i> {$not_assigned}</i> {/if}</td>
|
||||
<td class="center"><span title="{$ticket.timestamp_elapsed}" data-rel="tooltip" data-placement="right">{$ticket.timestamp}</span></td>
|
||||
<td class="center">{$ticket.category}</td>
|
||||
<td class="center"><span class="label {if $ticket.status eq 0}label-success{else if $ticket.status eq 1}label-warning{else if $ticket.status eq 2}label-important{/if}">{if $ticket.status eq 0} <i class="icon-exclamation-sign icon-white"></i>{/if} {$ticket.statusText}</span></td>
|
||||
<td class="center"><span class="label {if $ticket.status eq 0}label-success{else if $ticket.status eq 1}label-warning{else if $ticket.status eq 2}label-important{/if}">{if $ticket.status eq 0} <i class="icon-exclamation-sign icon-white"></i>{/if} {$ticket.statusText}</span></td>
|
||||
<td class="center">
|
||||
|
||||
|
||||
{if $ticket.forwardedGroupName eq "0"}
|
||||
<i>{$public_sgroup}</i>
|
||||
{else}
|
||||
<span class="label label-info"><a href="index.php?page=show_sgroup&id={$ticket.forwardedGroupId}"><font color="white">{$ticket.forwardedGroupName}</font></a></span>
|
||||
<span class="label label-info"><a href="index.php?page=show_sgroup&id={$ticket.forwardedGroupId}"><font color="white">{$ticket.forwardedGroupName}</font></a></span>
|
||||
{/if}
|
||||
|
||||
</td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
{if $ticket.assigned eq 0}
|
||||
<form id="assign_ticket" class="form-vertical" method="post" action="{$getURL}" style="margin:0px 0px 0px;">
|
||||
|
@ -124,10 +121,10 @@
|
|||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<div style="width: 300px; margin:0px auto;">
|
||||
<ul class="pagination">
|
||||
<li><a href="{$pagination_base_link}&pagenum=1">«</a></li>
|
||||
|
@ -139,15 +136,13 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
|
||||
<div class="box span3">
|
||||
|
||||
<div class="box col-md-3">
|
||||
<div class="box-inner">
|
||||
<div class="box-header well" data-original-title="">
|
||||
<h2><i class="icon-th"></i>Actions</h2>
|
||||
<div class="box-icon">
|
||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="row-fluid">
|
||||
|
@ -163,8 +158,9 @@
|
|||
<li class="divider"></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
|
||||
|
@ -173,10 +169,10 @@
|
|||
|
||||
<!----- /javascript for this page -->
|
||||
<script type="text/javascript">
|
||||
function aimedforwhochanged(value)
|
||||
function aimedforwhochanged(value)
|
||||
{
|
||||
|
||||
if (value == "user")
|
||||
|
||||
if (value == "user")
|
||||
{
|
||||
//hide the supportGroupList span
|
||||
var elem = document.getElementById("supportGroupList");
|
||||
|
@ -195,4 +191,4 @@ else if(value == "support_group")
|
|||
}
|
||||
</script>
|
||||
{/block}
|
||||
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue