Domain.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. class Domain extends AbstractModel
  3. {
  4. use DomainLimitTrait;
  5. /**
  6. * @inheritdoc
  7. */
  8. public static $table = DBT_DOMAINS;
  9. /**
  10. * @inheritdoc
  11. */
  12. public static $idAttribute = DBC_DOMAINS_ID;
  13. /**
  14. * @inheritdoc
  15. */
  16. protected function setupDbMapping($childMapping = array())
  17. {
  18. return array_replace(
  19. parent::setupDbMapping(
  20. array(
  21. 'domain' => DBC_DOMAINS_DOMAIN,
  22. )
  23. ),
  24. $childMapping
  25. );
  26. }
  27. /**
  28. * @inheritdoc
  29. */
  30. protected function __construct($data)
  31. {
  32. parent::__construct($data);
  33. $this->setDomain($data[DBC_DOMAINS_DOMAIN]);
  34. }
  35. /**
  36. * @return string
  37. */
  38. public function getDomain()
  39. {
  40. return $this->getAttribute('domain');
  41. }
  42. /**
  43. * @param string $value
  44. */
  45. public function setDomain($value)
  46. {
  47. $this->setAttribute('domain', strtolower($value));
  48. }
  49. /**
  50. * @return int
  51. */
  52. public function countUsers()
  53. {
  54. global $db;
  55. if(!$result = $db->query("SELECT COUNT(`".DBC_USERS_ID."`) FROM `".DBT_USERS."` WHERE `".DBC_USERS_DOMAIN."` = '{$this->getDomain()}'")){
  56. dbError($db->error);
  57. }
  58. return $result->fetch_array(MYSQLI_NUM)[0];
  59. }
  60. /**
  61. * @return int
  62. */
  63. public function countRedirects()
  64. {
  65. global $db;
  66. if(!$result = $db->query("SELECT COUNT(`".DBC_ALIASES_ID."`) FROM `".DBT_ALIASES."` WHERE `".DBC_ALIASES_SOURCE."` LIKE '%@{$this->getDomain()}%'")){
  67. dbError($db->error);
  68. }
  69. return $result->fetch_array(MYSQLI_NUM)[0];
  70. }
  71. }