Unsupported PHP app for analysing and displaying stats for Team Fortress 2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?PHP
  2. require_once(dirname(__FILE__) . '/database.php');
  3. class Group {
  4. private $id;
  5. private $players = array();
  6. private static $cache = array();
  7. protected function __construct($id) {
  8. $this->id = $id;
  9. }
  10. public function ensureMember(&$player) {
  11. if (!isset($this->players[$player->getID()])) {
  12. $sql = 'SELECT membership_id FROM groupmemberships WHERE player_id = ' . $player->getID() . ' AND group_id = ' . $this->id;
  13. $res = mysql_query($sql);
  14. if (mysql_num_rows($res) == 0) {
  15. $sql = 'INSERT INTO groupmemberships (player_id, group_id) VALUES (' . $player->getID() . ', ' . $this->id . ')';
  16. mysql_query($sql);
  17. }
  18. $this->players[$player->getID()] = true;
  19. }
  20. }
  21. public static function getGroup($tag) {
  22. if (!isset(self::$cache[$tag])) {
  23. $sql = 'SELECT group_id FROM groups WHERE group_name = \'' . s($tag) . '\' AND group_type = \'tag\'';
  24. $res = mysql_query($sql);
  25. if (mysql_num_rows($res) > 0) {
  26. $row = mysql_fetch_assoc($res);
  27. $id = (int) $row['group_id'];
  28. } else {
  29. $sql = 'INSERT INTO groups (group_name, group_type) VALUES (\'' . s($tag) . '\', \'tag\')';
  30. $res = mysql_query($sql);
  31. $id = mysql_insert_id();
  32. }
  33. self::$cache[$tag] = new Group($id);
  34. }
  35. return self::$cache[$tag];
  36. }
  37. }
  38. ?>