table_common_searchindex.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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_searchindex.php 28041 2012-02-21 07:33:55Z chenmengshu $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class table_common_searchindex extends discuz_table
  12. {
  13. public function __construct() {
  14. $this->_table = 'common_searchindex';
  15. $this->_pk = 'searchid';
  16. parent::__construct();
  17. }
  18. public function fetch_by_searchid_srchmod($searchid, $srchmod) {
  19. return DB::fetch_first('SELECT * FROM %t WHERE searchid=%d AND srchmod=%d', array($this->_table, $searchid, $srchmod));
  20. }
  21. public function count_by_dateline($timestamp, $srchmod = '') {
  22. return DB::result_first('SELECT COUNT(*) FROM %t WHERE '.($srchmod ? 'srchmod='.dintval($srchmod).' AND ' : '').'dateline>%d-60', array($this->_table, $timestamp));
  23. }
  24. public function fetch_all_search($searchctrl, $useip, $uid, $timestamp, $searchstring, $srchmod = '') {
  25. if(!$searchctrl || !$timestamp) {
  26. return null;
  27. }
  28. $timestamp = dintval($timestamp);
  29. $uid = dintval($uid);
  30. $srchmod = dintval($srchmod);
  31. $useip = daddslashes($useip);
  32. $searchctrl = dintval($searchctrl);
  33. $searchstring = daddslashes($searchstring);
  34. return DB::fetch_all("SELECT searchid, dateline,
  35. ('".$searchctrl."'<>'0' AND ".(empty($uid) ? "useip='$useip'" : "uid='$uid'")." AND $timestamp-dateline<'".$searchctrl."') AS flood,
  36. (searchstring='$searchstring' AND expiration>'$timestamp') AS indexvalid
  37. FROM ".DB::table($this->_table)."
  38. WHERE ".($srchmod ? "srchmod='$srchmod' AND " : '')."('".$searchctrl."'<>'0' AND ".(empty($uid) ? "useip='$useip'" : "uid='$uid'")." AND $timestamp-dateline<".$searchctrl.") OR (searchstring='$searchstring' AND expiration>'$timestamp')
  39. ORDER BY flood");
  40. }
  41. }
  42. ?>