Пример #1
0
 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;
 }