protected function loadSourceFilter() { $filter_string = ""; if(!empty($this->filter)) { $break = strpos($this->filter, "_"); $field = substr($this->filter, 0, $break); $value = substr($this->filter, $break+1, strlen($this->filter) - strlen($field)); $filter_string = $field . "='$value'"; } $search_string = ""; if(!empty($this->search)) { $search = array(); $SNG = singleton($this->sourceClass); foreach(parent::Headings() as $field) { if($SNG->hasDatabaseField($field->Name)) $search[] = "UPPER($field->Name) LIKE '%".Convert::raw2sql(strtoupper($this->search))."%'"; } $search_string = "(".implode(" OR ", $search).")"; } $and = (!empty($this->filter) && !empty($this->search)) ? " AND " : ""; $source_filter = $filter_string.$and.$search_string; if(!$this->sourceFilter) $this->sourceFilter = $source_filter; else if($this->sourceFilter && !empty($source_filter)) $this->sourceFilter .= " AND " . $source_filter; }
public function HasSearch() { $SNG = singleton($this->sourceClass); foreach (parent::Headings() as $field) { if ($SNG->hasDatabaseField($field->Name)) { return true; } } return false; }