/** * Filter links according to search parameters. * * @param array $filterRequest Search request content. Supported keys: * - searchtags: list of tags * - searchterm: term search * @param bool $casesensitive Optional: Perform case sensitive filter * @param bool $privateonly Optional: Returns private links only if true. * * @return array filtered links, all links if no suitable filter was provided. */ public function filterSearch($filterRequest = array(), $casesensitive = false, $privateonly = false) { // 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($type) && !empty($searchtags) && !empty($searchterm)) { $type = LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT; $request = array($searchtags, $searchterm); } elseif (!empty($searchtags)) { $type = LinkFilter::$FILTER_TAG; $request = $searchtags; } elseif (!empty($searchterm)) { $type = LinkFilter::$FILTER_TEXT; $request = $searchterm; } else { $type = ''; $request = ''; } $linkFilter = new LinkFilter($this->_links); return $linkFilter->filter($type, $request, $casesensitive, $privateonly); }
/** * Filter links. * * @param string $type Type of filter. * @param mixed $request Search request, string or array. * @param bool $casesensitive Optional: Perform case sensitive filter * @param bool $privateonly Optional: Returns private links only if true. * * @return array filtered links */ public function filter($type, $request, $casesensitive = false, $privateonly = false) { $linkFilter = new LinkFilter($this->_links); $requestFilter = is_array($request) ? implode(' ', $request) : $request; return $linkFilter->filter($type, trim($requestFilter), $casesensitive, $privateonly); }