- $linkFilter = new LinkFilter($this->_links);
- $requestFilter = is_array($request) ? implode(' ', $request) : $request;
- return $linkFilter->filter($type, trim($requestFilter), $casesensitive, $privateonly);
+ // Filter link database according to parameters.
+ $searchtags = !empty($filterRequest['searchtags']) ? escape($filterRequest['searchtags']) : '';
+ $searchterm = !empty($filterRequest['searchterm']) ? escape($filterRequest['searchterm']) : '';
+
+ // Search tags + fullsearch.
+ if (! empty($searchtags) && ! empty($searchterm)) {
+ $type = LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT;
+ $request = array($searchtags, $searchterm);
+ }
+ // Search by tags.
+ elseif (! empty($searchtags)) {
+ $type = LinkFilter::$FILTER_TAG;
+ $request = $searchtags;
+ }
+ // Fulltext search.
+ elseif (! empty($searchterm)) {
+ $type = LinkFilter::$FILTER_TEXT;
+ $request = $searchterm;
+ }
+ // Otherwise, display without filtering.
+ else {
+ $type = '';
+ $request = '';
+ }
+
+ $linkFilter = new LinkFilter($this->links);
+ return $linkFilter->filter($type, $request, $casesensitive, $privateonly);