| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | <?phpdefined('IN_PHPCMS') or exit('No permission resources.');/** * 全站搜索内容入库接口 */class search_api extends admin {	private $siteid,$categorys,$db;	public function __construct() {		$this->siteid = $this->get_siteid();		$this->categorys = getcache('category_content_'.$this->siteid,'commons');		$this->db = pc_base::load_model('content_model');	}	public function set_model($modelid) {		$this->modelid = $modelid;		$this->db->set_model($modelid);	}	/**	 * 全文索引API	 * @param $pagesize 每页条数	 * @param $page 当前页	 */	public function fulltext_api($pagesize = 100, $page = 1) {		$system_keys = $model_keys = array();		$fulltext_array = getcache('model_field_'.$this->modelid,'model');		foreach($fulltext_array AS $key=>$value) {			if($value['issystem'] && $value['isfulltext']) {				$system_keys[] = $key;			}		}		if(empty($system_keys)) return '';		$system_keys = 'id,inputtime,'.implode(',',$system_keys);		$offset = $pagesize*($page-1);		$result = $this->db->select('',$system_keys,"$offset, $pagesize");		//模型从表字段		foreach($fulltext_array AS $key=>$value) {			if(!$value['issystem'] && $value['isfulltext']) {				$model_keys[] = $key;			}		}		if(empty($model_keys)) return '';		$model_keys = 'id,'.implode(',',$model_keys);				$this->db->table_name = $this->db->table_name.'_data';		$result_data = $this->db->select('',$model_keys,"$offset, $pagesize",'','','id');		//处理结果		foreach($result as $r) {			$fulltextcontent = '';			foreach($r as $field=>$_r) {				if($field=='id') continue;				$fulltextcontent .= strip_tags($_r).' ';			}			if(!empty($result_data[$r['id']])) {				foreach($result_data[$r['id']] as $_r) {					if($field=='id') continue;					$fulltextcontent .= strip_tags($_r).' ';				}			}			$temp['fulltextcontent'] = str_replace("'",'',$fulltextcontent);			$temp['title'] = addslashes($r['title']);			$temp['adddate'] = $r['inputtime'];			$data[$r['id']] = $temp;		}		return $data;	}	/**	 * 计算总数	 * @param $modelid	 */	public function total($modelid) {		$this->modelid = $modelid;		$this->db->set_model($modelid);		return $this->db->count();	}}
 |