summaryrefslogtreecommitdiffstats
path: root/lib/private/activitymanager.php
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2014-11-28 11:18:15 +0100
committerBjoern Schiessle <schiessle@owncloud.com>2014-11-28 14:46:27 +0100
commitbf2c9be06640c1ce1fff6da893ddb55297069af9 (patch)
tree41d5d369720c7b99ceff237b0996db6df88a0759 /lib/private/activitymanager.php
parent154628daf46d2ace4bf90e05053696160b2b00c3 (diff)
downloadnextcloud-server-bf2c9be06640c1ce1fff6da893ddb55297069af9.tar.gz
nextcloud-server-bf2c9be06640c1ce1fff6da893ddb55297069af9.zip
concatenate queries with 'or'
Diffstat (limited to 'lib/private/activitymanager.php')
-rw-r--r--lib/private/activitymanager.php16
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/private/activitymanager.php b/lib/private/activitymanager.php
index f31b121c8e8..e0ee7c1b055 100644
--- a/lib/private/activitymanager.php
+++ b/lib/private/activitymanager.php
@@ -247,16 +247,28 @@ class ActivityManager implements IManager {
* @return array
*/
function getQueryForFilter($filter) {
+
+ $conditions = array();
+ $parameters = array();
+
foreach($this->extensions as $extension) {
$c = $extension();
if ($c instanceof IExtension) {
$result = $c->getQueryForFilter($filter);
if (is_array($result)) {
- return $result;
+ list($condition, $parameter) = $result;
+ if ($condition && is_array($parameter)) {
+ $conditions[] = $condition;
+ $parameters = array_merge($parameters, $parameter);
+ }
}
}
}
- return array(null, null);
+ if (empty($conditions)) {
+ return array(null, null);
+ }
+
+ return array(' and ((' . implode(') or (', $conditions) . '))', $parameters);
}
}