| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- <?php
 
- defined('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();
 
- 	}
 
- }
 
 
  |