|
|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|