BxInvDb.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  4. * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  5. *
  6. * @defgroup Invites Invites
  7. * @ingroup DolphinModules
  8. *
  9. * @{
  10. */
  11. bx_import('BxDolModuleDb');
  12. class BxInvDb extends BxDolModuleDb
  13. {
  14. protected $_oConfig;
  15. protected $_sTableInvites;
  16. protected $_sTableRequests;
  17. /*
  18. * Constructor.
  19. */
  20. function __construct(&$oConfig)
  21. {
  22. parent::__construct($oConfig);
  23. $this->_oConfig = $oConfig;
  24. $this->_sTableInvites = $this->_sPrefix . 'invites';
  25. $this->_sTableRequests = $this->_sPrefix . 'requests';
  26. }
  27. public function getInvites($aParams, $bReturnCount = false)
  28. {
  29. $sMethod = 'getAll';
  30. $sSelectClause = $sJoinClause = $sWhereClause = $sOrderClause = $sLimitClause = "";
  31. $sSelectClause = "`{$this->_sTableInvites}`.*";
  32. switch($aParams['type']) {
  33. case 'count_by_account':
  34. $sMethod = 'getOne';
  35. $sSelectClause = "COUNT(`{$this->_sTableInvites}`.`id`) AS `count`";
  36. $sWhereClause = $this->prepare("AND `{$this->_sTableInvites}`.`account_id`=? ", $aParams['value']);
  37. $sLimitClause = "LIMIT 1";
  38. break;
  39. }
  40. $sSql = "SELECT " . ($bReturnCount ? "SQL_CALC_FOUND_ROWS" : "") . " " . $sSelectClause . "
  41. FROM `{$this->_sTableInvites}` " . $sJoinClause . "
  42. WHERE 1 " . $sWhereClause . " " . $sOrderClause . " " . $sLimitClause;
  43. $aEntries = $this->$sMethod($sSql);
  44. if(!$bReturnCount)
  45. return $aEntries;
  46. return array($aEntries, (int)$this->getOne("SELECT FOUND_ROWS()"));
  47. }
  48. public function getRequests($aParams, $bReturnCount = false)
  49. {
  50. $sMethod = 'getAll';
  51. $sSelectClause = $sJoinClause = $sWhereClause = $sOrderClause = $sLimitClause = "";
  52. $sSelectClause = "`{$this->_sTableRequests}`.*";
  53. switch($aParams['type']) {
  54. case 'by_id':
  55. $sMethod = 'getRow';
  56. $sWhereClause = $this->prepare("AND `{$this->_sTableRequests}`.`id`=? ", $aParams['value']);
  57. $sLimitClause = "LIMIT 1";
  58. break;
  59. case 'count_all':
  60. $sMethod = 'getOne';
  61. $sSelectClause = "COUNT(`{$this->_sTableRequests}`.`id`) AS `count`";
  62. $sLimitClause = "LIMIT 1";
  63. break;
  64. }
  65. $sSql = "SELECT " . ($bReturnCount ? "SQL_CALC_FOUND_ROWS" : "") . " " . $sSelectClause . "
  66. FROM `{$this->_sTableRequests}` " . $sJoinClause . "
  67. WHERE 1 " . $sWhereClause . " " . $sOrderClause . " " . $sLimitClause;
  68. $aEntries = $this->$sMethod($sSql);
  69. if(!$bReturnCount)
  70. return $aEntries;
  71. return array($aEntries, (int)$this->getOne("SELECT FOUND_ROWS()"));
  72. }
  73. }
  74. /** @} */