protected function buildFilter(array $p_cols, array $p_filter, $qb, $andx)
{
foreach ($p_filter as $key => $values) {
if (!is_array($values)) {
$values = array($values);
}
$orx = $qb->expr()->orx();
switch ($key) {
case 'status':
$mapper = array_flip(Comment::$status_enum);
foreach ($values as $value) {
$orx->add($qb->expr()->eq('e.status', $mapper[$value]));
}
break;
case 'id':
case 'forum':
case 'thread':
case 'language':
foreach ($values as $value) {
$orx->add($qb->expr()->eq("e.{$key}", $value));
}
break;
case 'recommended':
foreach ($values as $value) {
$orx->add($qb->expr()->eq('e.recommended', $value));
}
}
$andx->add($orx);
}
return $andx;
}