// link redirector set in user settings.
private $_redirector;
- /**
- * @var LinkFilter instance.
- */
- private $linkFilter;
-
/**
* Creates a new LinkDB
*
$this->_redirector = $redirector;
$this->_checkDB();
$this->_readDB();
- $this->linkFilter = new LinkFilter($this->_links);
}
/**
}
}
- // 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']);
*
* @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, trim($requestFilter), $casesensitive, $privateonly);
+ return $linkFilter->filter($type, trim($requestFilter), $casesensitive, $privateonly);
}
/**
}
$linkDays = array_keys($linkDays);
sort($linkDays);
+
return $linkDays;
}
}