X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2FLinkDB.php;h=9f4d3e3cc7b4fabb23750fda02427ad23612b14d;hb=bedd176a5406003631da42366736fd5ebae29135;hp=be7d9016fc1eb1d0a00cfab2d41349adcca2d9d6;hpb=822bffced8212e7f34bcb2ad063b31a78bd57bdb;p=github%2Fshaarli%2FShaarli.git diff --git a/application/LinkDB.php b/application/LinkDB.php index be7d9016..9f4d3e3c 100644 --- a/application/LinkDB.php +++ b/application/LinkDB.php @@ -62,11 +62,6 @@ class LinkDB implements Iterator, Countable, ArrayAccess // link redirector set in user settings. private $_redirector; - /** - * @var LinkFilter instance. - */ - private $linkFilter; - /** * Creates a new LinkDB * @@ -85,7 +80,6 @@ class LinkDB implements Iterator, Countable, ArrayAccess $this->_redirector = $redirector; $this->_checkDB(); $this->_readDB(); - $this->linkFilter = new LinkFilter($this->_links); } /** @@ -266,15 +260,19 @@ You use the community supported version of the original Shaarli project, by Seba } } - // Keep the list of the mapping URLs-->linkdate up-to-date. $this->_urls = array(); - foreach ($this->_links as $link) { + foreach ($this->_links as &$link) { + // Keep the list of the mapping URLs-->linkdate up-to-date. $this->_urls[$link['url']] = $link['linkdate']; - } - // Escape links data - foreach($this->_links as &$link) { + // Sanitize data fields. sanitizeLink($link); + + // Remove private tags if the user is not logged in. + if (! $this->_loggedIn) { + $link['tags'] = preg_replace('/(^| )\.[^($| )]+/', '', $link['tags']); + } + // Do not use the redirector for internal links (Shaarli note URL starting with a '?'). if (!empty($this->_redirector) && !startsWith($link['url'], '?')) { $link['real_url'] = $this->_redirector . urlencode($link['url']); @@ -349,9 +347,11 @@ You use the community supported version of the original Shaarli project, by Seba * * @return array filtered links */ - public function filter($type, $request, $casesensitive = false, $privateonly = false) { + public function filter($type = '', $request = '', $casesensitive = false, $privateonly = false) + { + $linkFilter = new LinkFilter($this->_links); $requestFilter = is_array($request) ? implode(' ', $request) : $request; - return $this->linkFilter->filter($type, $requestFilter, $casesensitive, $privateonly); + return $linkFilter->filter($type, trim($requestFilter), $casesensitive, $privateonly); } /** @@ -385,6 +385,7 @@ You use the community supported version of the original Shaarli project, by Seba } $linkDays = array_keys($linkDays); sort($linkDays); + return $linkDays; } }