mirror of
https://github.com/slawkens/myaac.git
synced 2025-04-27 01:39:22 +02:00
97 lines
3.1 KiB
PHP
97 lines
3.1 KiB
PHP
<?php
|
|
/*
|
|
This file is part of OTSCMS (http://www.otscms.com/) project.
|
|
|
|
Copyright (C) 2005 - 2008 Wrzasq (wrzasq@gmail.com)
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
/*
|
|
POT guilds invites driver.
|
|
*/
|
|
|
|
class InvitesDriver implements IOTS_GuildAction
|
|
{
|
|
// assigned guild
|
|
private $guild;
|
|
|
|
// database
|
|
private $db;
|
|
|
|
// initializes driver
|
|
public function __construct(OTS_Guild $guild)
|
|
{
|
|
$this->guild = $guild;
|
|
$this->db = POT::getInstance()->getDBHandle();
|
|
$this->guild->invitesDriver = $this;
|
|
}
|
|
|
|
// returns all invited players to current guild
|
|
public function listRequests()
|
|
{
|
|
$invites = array();
|
|
foreach( $this->db->query('SELECT ' . $this->db->fieldName('player_id') . ' FROM ' . $this->db->tableName('guild_invites') . ' WHERE ' . $this->db->fieldName('guild_id') . ' = '.$this->db->quote($this->guild->id)) as $invite)
|
|
{
|
|
$player = new OTS_Player();
|
|
$player->load($invite['player_id']);
|
|
$invites[] = $player;
|
|
}
|
|
return $invites;
|
|
}
|
|
|
|
// invites player to current guild
|
|
public function addRequest(OTS_Player $player)
|
|
{
|
|
$this->db->query('INSERT INTO ' . $this->db->tableName('guild_invites') .' (' . $this->db->fieldName('player_id') . ', ' . $this->db->fieldName('guild_id') . ') VALUES ('.$this->db->quote($player->getId()).', '.$this->db->quote($this->guild->id).')');
|
|
}
|
|
|
|
// un-invites player
|
|
public function deleteRequest(OTS_Player $player)
|
|
{
|
|
$this->db->query('DELETE FROM ' . $this->db->tableName('guild_invites') . ' WHERE ' . $this->db->fieldName('player_id') . ' = '.$this->db->quote($player->getId()).' AND ' . $this->db->fieldName('guild_id') . ' = '.$this->db->quote($this->guild->id));
|
|
}
|
|
|
|
// commits invitation
|
|
public function submitRequest(OTS_Player $player)
|
|
{
|
|
$rank = null;
|
|
|
|
// finds normal member rank
|
|
foreach($this->guild as $guildRank)
|
|
{
|
|
if($guildRank->level == 1)
|
|
{
|
|
$rank = $guildRank;
|
|
break;
|
|
}
|
|
}
|
|
if(empty($rank)) {
|
|
$rank = new OTS_GuildRank();
|
|
$rank->setGuild($this->guild);
|
|
$rank->setName('New Members');
|
|
$rank->setLevel(1);
|
|
$rank->save();
|
|
}
|
|
$player->setRank($rank);
|
|
$player->save();
|
|
|
|
// clears invitation
|
|
$this->deleteRequest($player);
|
|
}
|
|
}
|
|
|
|
?>
|