summaryrefslogblamecommitdiffstats
path: root/library/Pbs/Search.php
blob: c06f519574ffcd97fc1edee55dcc6ca0f031f6ce (plain) (tree)
1
2
3
4
5
6
7
8
9
10


                        




                                 

                                                                                      
                                                                                                                                        
                                                                                                    









                                                                                                                                        
                                                                       













                                                                         
                                   



                                  


                                                        










                                                                                                       











                                             

                                                    

                                                                              







                                                                                   
                                                                                                                                 








                                                                           
                                                

                                      
                                                

                                      
                                                                            
                                                             

                                                




                                            
<?php

class Pbs_Search{	

	private $searchTerm = '';
	private $searcha;
	private $searchb;
	
	public function searchForm(){
		$str = "<form  style='text-align:right;' action='/user/client/search'>
			<input type='text' id='search' name='search' ".(($this->searchTerm != '')?'value="'.$this->searchTerm.'"':'').">
			<button type='submit' class='searchbutton' value='search'> Search</button>";
		$highlight = array();
		if($this->searchTerm != ''){
			$str .= "<a href='/user/client/'><img src='/media/img/delete.png' alt='Delete Client'/></a>
			<script type='text/javascript' src='/media/js/jquery.highlight-3.js'></script>";				
			foreach($this->getSearchTerms() as $term){
				$highlight[] = "$('table').highlight('".$term."');";
			}
		
		}
		$str .= "<script>
					$(document).ready(function(){";
		$str .= implode("\n",$highlight);
		$str .= "$('#search')
		.focus(function() {
			$('table tr .code').show();
		}).focusout(function() {
		$('table tr .code').css('verticalAlign','-2px').animate({
			opacity: 0,
			width:0
		  }, 1000, function() {
			$(this).attr({'style': 'display:none'});
		  });
			
		});";
		$str .= "});
			</script>";
		$str .= "</form>";
		return $str;
	}	
	
	public function setSearchTerm($search){		
		$this->searchTerm = $search;
		
		$parts = explode(" ",$search);
		foreach($parts as $search){				
			if(stristr($search,":") && ctype_alpha(substr($search,0,strpos($search,":")))){
				$key = substr($search,0,strpos($search,":"));
				$value = substr($search,strpos($search,":")+1);	
				$searcha[$key] = $value;
			}
			else{
				$searchb[] = $search;
			}
		}
		$this->searcha = $searcha;
		$this->searchb = $searchb;
	}
	
	public function getSearchTerms(){
		$beta = $this->searcha;
		foreach($this->searchb as $b)
			$beta[] = $b;
		return $beta;
	}
	public function search($array){
		
		foreach($array as $counter => $cig){
			foreach($cig as $k => $v){
				if(count($this->searcha) > 0){
					foreach($this->searcha as $sk => $sv){
						if($k == $sk){
							if(stristr($v,$sv)){
								$com1[] = $counter;
							}
						}
					}
				}
				if(count($searchb) >= 0){
					foreach($this->searchb as $sk => $sv){							 
						 $comm = stristr($v,$sv);
						 if($comm != false){
						 	$com2[] = $counter;
						 	break;
						 }
					}
				}
			}					
		}
		if (count($this->searcha) == 0){
			$data = $com2;
		}
		if (count($this->searchb) == 0){
			$data = $com1;
		}
		if (count($this->searcha) > 0 && count($this->searchb) > 0){
			$data = array_intersect($com1,$com2);
		}
		$data = array_unique($data);	
		foreach( $data as $c)
			$ges[] = $array[$c];
		return $ges;
	}
}