Example #1
0
 public function testConditionOverwrite()
 {
     $criteria = new Criteria();
     $criteria->addCondition(new CategoryCondition(array(1)));
     $condition = new CategoryCondition(array(3));
     $criteria->addCondition($condition);
     $this->assertCount(1, $criteria->getConditions());
     $condition = $criteria->getCondition($condition->getName());
     $this->assertInstanceOf('Shopware\\Bundle\\SearchBundle\\Condition\\CategoryCondition', $condition);
     $this->assertEquals(array(3), $condition->getCategoryIds());
 }
 /**
  * @param Criteria $criteria
  * @param QueryBuilder $query
  * @param ShopContextInterface $context
  */
 private function addConditions(Criteria $criteria, QueryBuilder $query, ShopContextInterface $context)
 {
     foreach ($criteria->getConditions() as $condition) {
         $handler = $this->getConditionHandler($condition);
         $handler->generateCondition($condition, $query, $context);
     }
 }
 /**
  * @param Criteria $criteria
  * @return array
  */
 private function getFilteredValues(Criteria $criteria)
 {
     $values = [];
     foreach ($criteria->getConditions() as $condition) {
         if ($condition instanceof PropertyCondition) {
             $values = array_merge($values, $condition->getValueIds());
         }
     }
     return $values;
 }