83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace Zotlabs\Module;
 | |
| 
 | |
| // Autocomplete for saved searches. Should probably be put in the same place as the other autocompletes
 | |
| 
 | |
| class Search_ac extends \Zotlabs\Web\Controller {
 | |
| 
 | |
| 	function init(){
 | |
| 		if(!local_channel())
 | |
| 			killme();
 | |
| 	
 | |
| 	
 | |
| 		$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'];
 | |
| 		}
 | |
| 	
 | |
| 		// Priority to people searches
 | |
| 	
 | |
| 		if ($search) {
 | |
| 			$people_sql_extra = protect_sprintf(" AND `xchan_name` LIKE '%". dbesc($search) . "%' ");
 | |
| 			$tag_sql_extra = protect_sprintf(" AND term LIKE '%". dbesc($search) . "%' ");
 | |
| 		}
 | |
| 	
 | |
| 	
 | |
| 		$r = q("SELECT `abook_id`, `xchan_name`, `xchan_photo_s`, `xchan_url`, `xchan_addr` FROM `abook` left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d 
 | |
| 			$people_sql_extra
 | |
| 			ORDER BY `xchan_name` ASC ",
 | |
| 			intval(local_channel())
 | |
| 		);
 | |
| 	
 | |
| 		$results = array();
 | |
| 		if($r) {
 | |
| 			foreach($r as $g) {
 | |
| 				$results[] = array(
 | |
| 					"photo"    => $g['xchan_photo_s'],
 | |
| 					"name"     => '@'.$g['xchan_name'],
 | |
| 					"id"       => $g['abook_id'],
 | |
| 					"link"     => $g['xchan_url'],
 | |
| 					"label"    => '',
 | |
| 					"nick"     => '',
 | |
| 				);
 | |
| 			}
 | |
| 		}
 | |
| 	
 | |
| 		$r = q("select distinct term, tid, url from term where type in ( %d, %d ) $tag_sql_extra group by term order by term asc",
 | |
| 			intval(TERM_HASHTAG),
 | |
| 			intval(TERM_COMMUNITYTAG)
 | |
| 		);
 | |
| 	
 | |
| 		if(count($r)) {
 | |
| 			foreach($r as $g) {
 | |
| 				$results[] = array(
 | |
| 					"photo"    => z_root() . '/images/hashtag.png',
 | |
| 					"name"     => '#'.$g['term'],
 | |
| 					"id"       => $g['tid'],
 | |
| 					"link"     => $g['url'],
 | |
| 					"label"    => '',
 | |
| 					"nick"     => '',
 | |
| 				);
 | |
| 			}
 | |
| 		}
 | |
| 	
 | |
| 		header("content-type: application/json");
 | |
| 		$o = array(
 | |
| 			'start' => $start,
 | |
| 			'count'	=> $count,
 | |
| 			'items'	=> $results,
 | |
| 		);
 | |
| 		echo json_encode($o);
 | |
| 	
 | |
| 		logger('search_ac: ' . print_r($x,true));
 | |
| 	
 | |
| 		killme();
 | |
| 	}
 | |
| 	
 | |
| 	
 | |
| 	
 | |
| }
 |