table_forum_moderator.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: table_forum_moderator.php 28576 2012-03-05 06:46:08Z chenmengshu $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class table_forum_moderator extends discuz_table
  12. {
  13. public function __construct() {
  14. $this->_table = 'forum_moderator';
  15. $this->_pk = '';
  16. parent::__construct();
  17. }
  18. public function fetch_all_by_fid($fid, $order = true) {
  19. return DB::fetch_all('SELECT * FROM %t WHERE fid=%d'.($order ? ' ORDER BY inherited, displayorder' : ''), array($this->_table, $fid), 'uid');
  20. }
  21. public function fetch_all_by_fid_inherited($fid, $inherited = 0) {
  22. return DB::fetch_all('SELECT * FROM %t WHERE fid=%d AND inherited=%d', array($this->_table, $fid, $inherited), 'uid');
  23. }
  24. public function fetch_all_by_uid($uid) {
  25. if(!$uid) {
  26. return null;
  27. }
  28. return DB::fetch_all('SELECT * FROM %t WHERE %i', array($this->_table, DB::field('uid', $uid)), 'fid');
  29. }
  30. public function fetch_all_by_uid_forum($uid) {
  31. return DB::fetch_all('SELECT m.fid, f.name, f.recyclebin
  32. FROM %t m, %t f
  33. WHERE m.uid=%d AND f.fid=m.fid AND f.status=\'1\' AND f.type<>\'group\'', array($this->_table, 'forum_forum', $uid));
  34. }
  35. public function fetch_uid_by_fid_uid($fid, $uid) {
  36. return DB::result_first('SELECT uid FROM %t WHERE fid=%d AND uid=%d', array($this->_table, $fid, $uid));
  37. }
  38. public function fetch_uid_by_tid($tid, $uid, $archiveid) {
  39. $archiveid = dintval($archiveid);
  40. $threadtable = $archiveid ? "forum_thread_{$archiveid}" : 'forum_thread';
  41. return DB::result_first('SELECT uid FROM %t m INNER JOIN %t t ON t.tid=%d AND t.fid=m.fid WHERE m.uid=%d', array($this->_table, $threadtable, $tid, $uid));
  42. }
  43. public function count_by_uid($uid) {
  44. if(!$uid) {
  45. return null;
  46. }
  47. return DB::result_first('SELECT count(*) FROM %t WHERE %i', array($this->_table, DB::field('uid', $uid)));
  48. }
  49. public function fetch_all_no_inherited_by_fid($fid) {
  50. return DB::fetch_all('SELECT * FROM %t WHERE fid=%d AND inherited=0 ORDER BY displayorder', array($this->_table, $fid), 'uid');
  51. }
  52. public function fetch_all_no_inherited() {
  53. return DB::fetch_all('SELECT * FROM %t WHERE inherited=0 ORDER BY displayorder', array($this->_table));
  54. }
  55. public function update_by_fid_uid($fid, $uid, $data) {
  56. if(!$fid || !$uid || !$data || !is_array($data)) {
  57. return null;
  58. }
  59. return DB::update($this->_table, $data, array('fid' => $fid, 'uid' => $uid));
  60. }
  61. public function delete_by_uid($uid) {
  62. return $uid ? DB::delete($this->_table, DB::field('uid', $uid)) : false;
  63. }
  64. public function delete_by_fid($fid) {
  65. return $fid ? DB::delete($this->_table, DB::field('fid', $fid)) : false;
  66. }
  67. public function delete_by_fid_inherited($fid, $inherited) {
  68. return $fid ? DB::delete($this->_table, DB::field('fid', $fid).' AND '.DB::field('inherited', $inherited)) : false;
  69. }
  70. public function delete_by_uid_fid_inherited($uid, $fid, $fidarray) {
  71. if(!$fid || !$uid) {
  72. return null;
  73. }
  74. $fid = dintval($fid);
  75. $uid = dintval($uid);
  76. $fidarray = array_map('addslashes', $fidarray);
  77. return DB::delete($this->_table, "uid='$uid' AND ((fid='$fid' AND inherited='0') OR (fid IN (".dimplode($fidarray).") AND inherited='1'))");
  78. }
  79. public function delete_by_uid_fid($uid, $fid) {
  80. if(!$fid || !$uid) {
  81. return null;
  82. }
  83. return DB::delete($this->_table, DB::field('uid', $uid).' AND '.DB::field('fid', $fid).' AND '.DB::field('inherited', 1));
  84. }
  85. }
  86. ?>