88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| function search_ac_init(&$a){
 | |
| 	if(!local_user())
 | |
| 		return "";
 | |
| 
 | |
| 
 | |
| 	$start = (x($_REQUEST,'start')?$_REQUEST['start']:0);
 | |
| 	$count = (x($_REQUEST,'count')?$_REQUEST['count']:100);
 | |
| 	$search = (x($_REQUEST,'search')?$_REQUEST['search']:"");
 | |
| 
 | |
| 	if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) {
 | |
| 		$search = $_REQUEST['query'];
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	$sql_extra = '';
 | |
| 
 | |
| 	$x = array();
 | |
| 	$x['query'] = $search;
 | |
| 	$x['photos'] = array();
 | |
| 	$x['links'] = array();
 | |
| 	$x['suggestions'] = array();
 | |
| 	$x['data'] = array();
 | |
| 
 | |
| 
 | |
| 	// Priority to people searches
 | |
| 
 | |
| 	if ($search) {
 | |
| 		$people_sql_extra = protect_sprintf(" AND `name` LIKE '%". dbesc($search) . "%' ");
 | |
| 		$tag_sql_extra = protect_sprintf(" AND term LIKE '%". dbesc($search) . "%' ");
 | |
| 	}
 | |
| 
 | |
| 	$r = q("SELECT `id`, `name`, `micro`, `url` FROM `contact` 
 | |
| 		WHERE `uid` = %d AND `pending` = 0
 | |
| 		$people_sql_extra
 | |
| 		ORDER BY `name` ASC ",
 | |
| 		intval(local_user())
 | |
| 	);
 | |
| 
 | |
| 	if(count($r)) {
 | |
| 		foreach($r as $g) {
 | |
| 			$x['photos'][] = $g['micro'];
 | |
| 			$x['links'][] = $g['url'];
 | |
| 			$x['suggestions'][] = '@' . $g['name'];
 | |
| 			$x['data'][] = intval($g['id']);
 | |
| 		}
 | |
| 	}
 | |
| 	else {
 | |
| 
 | |
| 		$r = q("SELECT `id`, `name`, `photo`, `url` FROM `gcontact` where 1
 | |
| 			$people_sql_extra
 | |
| 			ORDER BY `name` ASC "
 | |
| 		);
 | |
| 
 | |
| 		if(count($r)) {
 | |
| 			foreach($r as $g) {
 | |
| 				$x['photos'][] = $g['photo'];
 | |
| 				$x['links'][] = $g['url'];
 | |
| 				$x['suggestions'][] = '@' . $g['name'];
 | |
| 				$x['data'][] = intval($g['id']);
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	$r = q("select tid, term, url from term where type = %d $tag_sql_extra order by term asc",
 | |
| 		intval(TERM_HASHTAG)
 | |
| 	);
 | |
| 
 | |
| 	if(count($r)) {
 | |
| 		foreach($r as $g) {
 | |
| 			$x['photos'][] = $a->get_baseurl() . '/images/hashtag.png';
 | |
| 			$x['links'][] = $g['url'];
 | |
| 			$x['suggestions'][] = '#' . $g['term'];
 | |
| 			$x['data'][] = intval($g['tid']);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	header("content-type: application/json");
 | |
| 	echo json_encode($x);
 | |
| 
 | |
| 	logger('search_ac: ' . print_r($x,true));
 | |
| 
 | |
| 	killme();
 | |
| }
 | |
| 
 | |
| 
 |