type == '') {
$str .= "/user/".$this->module."/search";
} else {
$str .= "/user/".$this->module."/search/type/".$this->type;
}
$str .= "'>
searchTerm != '') ? 'value="'.htmlentities($this->searchTerm, ENT_QUOTES).'"' : '')." />
";
$highlight = array();
if($this->searchTerm != '') {
$str .= "";
$str .= "$this->countresult result".(($this->countresult == 1) ? '' : 's')." found
";
$str .= "";
foreach($this->getSearchTerms() as $term) {
$highlight[] = "$('table').highlight('".$term."');";
$highlight[] = "$('.element .number').highlight('".$term."');";
$highlight[] = "$('.element .title').highlight('".$term."');";
$highlight[] = "$('.element .subtitle').highlight('".$term."');";
$highlight[] = "$('.element .item').highlight('".$term."');";
}
}
$str .= "Display searchfilter
";
$str .= "";
$str .= "";
return $str;
}
public function setModule($m) {
$this->module = $m;
return $this;
}
public function setType($t) {
$this->type = $t;
return $this;
}
public function setSearchTerm($search) {
$this->searchTerm = trim($search);
// search for "text"
preg_match_all("!\"(.*?)\"!is", $this->searchTerm, $matches);
$tmpsearch = $this->searchTerm;
for($i = 0; $i <= count($matches[0]); $i++) {
@$replace = str_replace(" ", "<|>", $matches[0][$i]);
@$tmpsearch = str_replace($matches[0][$i], $replace, $tmpsearch);
}
$parts = explode(" ", $tmpsearch);
foreach($parts as $search) {
if(stristr($search, ":") && preg_match('/^[a-z_A-Z]+$/', $search) >= 0) {
$key = substr($search, 0, strpos($search, ":"));
$value = substr($search, strpos($search, ":") + 1);
if(stristr($value, '"')) {
$value = substr(str_replace('<|>', ' ', $value), 1, -1);
}
$searcha[$key] = $value;
} else {
if(stristr($search, '"')) {
$search = substr(str_replace('<|>', ' ', $search), 1, -1);
}
$searchb[] = $search;
}
}
$this->searcha = @$searcha;
$this->searchb = @$searchb;
return $this;
}
public function getSearchTerm() {
return $this->searchTerm;
}
public function getSearchTerms() {
$beta = $this->searcha;
foreach($this->searchb as $b)
$beta[] = $b;
return $beta;
}
public function search($array) {
$this->countall = count($array);
foreach($array as $counter => $cig) {
if(is_object($cig)) {
$cig = $cig->toArray();
}
foreach($cig as $k => $v) {
if(count($this->searcha) > 0) {
foreach($this->searcha as $sk => $sv) {
if($k == $sk) {
if(stristr($v, $sv) || $v == $sv) {
$com1[$counter] += 1;
}
}
}
}
if(count($this->searchb) >= 0) {
foreach($this->searchb as $sk => $sv) {
$comm = stristr($v, $sv);
if($comm != false || $v == $sv) {
$com2[$counter] += 1;
}
}
}
}
#print_a($com2[$counter]." >= ".count($this->searchb)." && ".$com1[$counter]." >= ".count($this->searcha));
if($com2[$counter] >= count($this->searchb) && $com1[$counter] >= count($this->searcha)) {
// add item in resultlist
$data[] = $counter;
}
}
foreach( $data as $c)
$ges[] = $array[$c];
$this->countresult = count($ges);
return $ges;
}
}