private function checkFilter(rex_category $category, $depth) { foreach ($this->filter as $f) { if ($f['depth'] == '' || $f['depth'] == $depth) { $mf = $category->getValue($f['metafield']); $va = $f['value']; switch ($f['type']) { case '<>': case '!=': if ($mf == $va) { return false; } break; case '>': if ($mf <= $va) { return false; } break; case '<': if ($mf >= $va) { return false; } break; case '=>': case '>=': if ($mf < $va) { return false; } break; case '=<': case '<=': if ($mf > $va) { return false; } break; case 'regex': if (!preg_match($va, $mf)) { return false; } break; case '=': case '==': default: // = if ($mf != $va) { return false; } } } } return true; }