Function Reference: autocompleters

Summary

This function has not been documented yet.

Source File

autocompleters() is located in geodir_advance_search_filters/geodirectory_advance_search_function.php [Line: 1930]

Source Code

function autocompleters()
{
	global $wpdb;
	
	$geodir_terms_autocomplete = "''";
	$gt_posttypes_autocomplete = "''";

	$post_types = geodir_get_posttypes('array');
	
	$post_type_array = array();
	$post_type_tax = array();
	
	$gd_post_type = isset($_REQUEST['post_type']) ? esc_attr($_REQUEST['post_type']) : 'gd_place';
	
	if(!empty($post_types) && is_array($post_types) && array_key_exists($gd_post_type ,$post_types ) )
	{
			if(!empty($post_types[$gd_post_type]) && is_array($post_types[$gd_post_type]) && array_key_exists('taxonomies' , $post_types[$gd_post_type]  ))
			{
				foreach($post_types[$gd_post_type]['taxonomies'] as $geodir_taxonomy)
				{
					$post_type_tax[] = $geodir_taxonomy;
				}
			}
	}
	
	
	if(!empty($post_type_tax))
		$geodir_terms_autocomplete = "'".implode("','", $post_type_tax)."'";
	
		$gt_posttypes_autocomplete = "'". $gd_post_type."'";
	
	$results = (get_option('autocompleter_results')!= false)?get_option('autocompleter_results'):1;
	
	$search = isset($_GET['q']) ? $_GET['q'] : '';
	
	if(strlen($search)){
		switch($results){
			case 1: 
				
				$words1 = $wpdb->get_results(
					$wpdb->prepare(
						"SELECT concat( name, '|', sum( count ) ) name, sum( count ) cnt FROM ".$wpdb->prefix."terms t, ".$wpdb->prefix."term_taxonomy tt WHERE t.term_id = tt.term_id AND t.name LIKE %s AND tt.taxonomy in (".$geodir_terms_autocomplete.") GROUP BY t.term_id ORDER BY cnt DESC",
						array($search.'%')
					)				
				);
				
				
				$words2 = $wpdb->get_results(
					$wpdb->prepare(
						"SELECT post_title as name FROM $wpdb->posts where post_status='publish' and post_type in (".$gt_posttypes_autocomplete.") and post_date < '".current_time('mysql')."' and post_title LIKE %s ORDER BY post_title",
						array('%'.$search.'%')
					)
				);  
				
				
				
 				$words = array_merge((array)$words1 ,(array)$words2 ); 
				asort($words);
				break;
		} 
		
		foreach ($words as $word){
			if($results > 0){
				$id = isset($word->ID) ? $word->ID : '';
				echo $word->name."|".get_permalink($id)."n";
			}else{
				echo $word->name."n";
				}
		}
	}
}