table_common_block_item_data.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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_common_block_item_data.php 31958 2012-10-26 05:11:05Z zhangguosheng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class table_common_block_item_data extends discuz_table
  12. {
  13. public function __construct() {
  14. $this->_table = 'common_block_item_data';
  15. $this->_pk = 'dataid';
  16. parent::__construct();
  17. }
  18. public function fetch_all_by_bid($bid, $isverified = 1, $start = 0, $limit = 0, $bannedids = array(), $format = true) {
  19. $data = array();
  20. if(($bid = dintval($bid, true))) {
  21. $addsql = $bannedids = dintval($bannedids, true) ? ' AND id NOT IN ('.dimplode($bannedids).')' : '';
  22. $query = DB::query('SELECT * FROM %t WHERE '.DB::field('bid', $bid).' AND isverified=%d'.$addsql.' ORDER BY stickgrade DESC, displayorder DESC, verifiedtime DESC, dataid DESC '.DB::limit($start, $limit), array($this->_table, $isverified));
  23. while($value = DB::fetch($query)) {
  24. if($format) {
  25. $value['fields'] = unserialize($value['fields']);
  26. $value['fields']['timestamp'] = $value['fields']['dateline'];
  27. $value['fields']['dateline'] = dgmdate($value['fields']['dateline']);
  28. $value['pic'] = $value['pic'] !== STATICURL.'image/common/nophoto.gif' ? $value['pic'] : '';
  29. if($value['pic'] && $value['picflag'] == '1') {
  30. $value['pic'] = getglobal('setting/attachurl').$value['pic'];
  31. } elseif ($value['picflag'] == '2') {
  32. $value['pic'] = getglobal('setting/ftp/attachurl').$value['pic'];
  33. }
  34. $value['dateline'] = dgmdate($value['dateline'], 'u');
  35. $value['verifiedtime'] = dgmdate($value['verifiedtime'], 'u');
  36. }
  37. $data[$value['id']] = $value;
  38. }
  39. }
  40. return $data;
  41. }
  42. public function count_by_bid($bid, $isverified = 1) {
  43. return ($bid = dintval($bid, true)) ? DB::result_first('SELECT COUNT(*) FROM %t WHERE '.DB::field('bid', $bid).' AND isverified=%d', array($this->_table, $isverified)) : 0;
  44. }
  45. public function delete_by_bid($bid) {
  46. if(($bid = dintval($bid, true))) {
  47. DB::delete($this->_table, DB::field('bid', $bid));
  48. }
  49. }
  50. public function delete_by_dataid_bid($dataids, $bid) {
  51. if(($dataids = dintval($dataids, true)) && ($dataids = DB::fetch_all('SELECT dataid FROM %t WHERE dataid IN (%n) AND bid=%d', array($this->_table, $dataids, $bid), $this->_pk))) {
  52. $this->delete(array_keys($dataids));
  53. }
  54. }
  55. public function fetch_by_bid_id_idtype($bid, $id, $idtype) {
  56. return $bid && $id && $idtype ? DB::fetch_first('SELECT * FROM %t WHERE bid=%d AND id=%d AND idtype=%s', array($this->_table, $bid, $id, $idtype)) : array();
  57. }
  58. }
  59. ?>