diff options
author | Jörn Friedrich Dreyer <jfd@butonic.de> | 2014-12-02 17:31:04 +0100 |
---|---|---|
committer | Jörn Friedrich Dreyer <jfd@butonic.de> | 2014-12-10 15:51:59 +0100 |
commit | 1d490b559ce279f5c9f44b727fe9d71d3718a24b (patch) | |
tree | 5520065370f6874c80eb8a5be38e2b284d4e292f /lib/public/search | |
parent | e9029f94cb6eb9b37623ea1a2faf8aac11675900 (diff) | |
download | nextcloud-server-1d490b559ce279f5c9f44b727fe9d71d3718a24b.tar.gz nextcloud-server-1d490b559ce279f5c9f44b727fe9d71d3718a24b.zip |
introduce inApps[] filter for search via ajax query, make file results show up in files app only
use more flexible return type
check array with !empty instead of count
Diffstat (limited to 'lib/public/search')
-rw-r--r-- | lib/public/search/provider.php | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/lib/public/search/provider.php b/lib/public/search/provider.php index 0506f091dd9..d6cd1fb025e 100644 --- a/lib/public/search/provider.php +++ b/lib/public/search/provider.php @@ -24,6 +24,8 @@ namespace OCP\Search; */ abstract class Provider { + const OPTION_APPS = 'apps'; + /** * List of options (currently unused) * @var array @@ -32,13 +34,39 @@ abstract class Provider { /** * Constructor - * @param array $options + * @param array $options as key => value */ - public function __construct($options) { + public function __construct($options = array()) { $this->options = $options; } /** + * get a value from the options array or null + * @param string $key + * @return mixed + */ + public function getOption($key) { + if (is_array($this->options) && isset($this->options[$key])) { + return $this->options[$key]; + } else { + return null; + } + } + + /** + * checks if the given apps and the apps this provider has results for intersect + * returns true if the given array is empty (all apps) + * or if this provider does not have a list of apps it provides results for (legacy search providers) + * or if the two above arrays have elements in common (intersect) + * @param string[] $apps + * @return bool + */ + public function providesResultsFor(array $apps = array()) { + $forApps = $this->getOption(self::OPTION_APPS); + return empty($apps) || empty($forApps) || array_intersect($forApps, $apps); + } + + /** * Search for $query * @param string $query * @return array An array of OCP\Search\Result's |