/** * Filter links according to parameters. * * @param string $type Type of filter (eg. tags, permalink, etc.). * @param mixed $request Filter content. * @param bool $casesensitive Optional: Perform case sensitive filter if true. * @param bool $privateonly Optional: Only returns private links if true. * * @return array filtered link list. */ public function filter($type, $request, $casesensitive = false, $privateonly = false) { switch ($type) { case self::$FILTER_HASH: return $this->filterSmallHash($request); case self::$FILTER_TAG | self::$FILTER_TEXT: if (!empty($request)) { $filtered = $this->links; if (isset($request[0])) { $filtered = $this->filterTags($request[0], $casesensitive, $privateonly); } if (isset($request[1])) { $lf = new LinkFilter($filtered); $filtered = $lf->filterFulltext($request[1], $privateonly); } return $filtered; } return $this->noFilter($privateonly); case self::$FILTER_TEXT: return $this->filterFulltext($request, $privateonly); case self::$FILTER_TAG: return $this->filterTags($request, $casesensitive, $privateonly); case self::$FILTER_DAY: return $this->filterDay($request); default: return $this->noFilter($privateonly); } }