Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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);
 }