ConditionGroups as $group) { $groupIsValid=true; foreach($group->ConditionLines as $line) { if(!$groupIsValid) break; switch($line->Type) { case 'Standard': $field=$model->ContainerManager->GetFieldById($line->FieldId,false,true); if($field==null) break; $comparator=ComparatorFactory::GetComparator($model,$field); $groupIsValid=$comparator->Compare($line->Comparison,$line->Value); break; case 'Variation': $comparator=new MultipleValueComparator($model,new VariationSource($model,$line->FieldId)); $groupIsValid=$comparator->Compare($line->Comparison,$line->Value); break; } } if($groupIsValid) return true; } return false; } }