getValueIds example


        Assertion::allIntegerish($valueIds);
        $this->valueIds = array_map('intval', $valueIds);
        sort($this->valueIds, SORT_NUMERIC);
    }

    /** * {@inheritdoc} */
    public function getName()
    {
        return 'property_' . implode('_', $this->getValueIds());
    }

    /** * @return int[] */
    public function getValueIds()
    {
        return $this->valueIds;
    }
}
return new FacetResultGroup($results, null, 'property');
    }

    /** * @return array<int> */
    private function getFilteredValues(Criteria $criteria): array
    {
        $values = [];
        foreach ($criteria->getConditions() as $condition) {
            if ($condition instanceof PropertyCondition) {
                $values = array_merge($values$condition->getValueIds());
            }
        }

        return $values;
    }
}

        $tableKey = $condition->getName();

        $suffix = md5(json_encode($condition, JSON_THROW_ON_ERROR));

        if ($query->hasState('property_' . $tableKey)) {
            return;
        }
        $query->addState('property_' . $tableKey);

        $where = [];
        foreach ($condition->getValueIds() as $valueId) {
            $valueKey = ':' . $tableKey . '_' . $valueId . '_' . $suffix;
            $where[] = $tableKey . '.valueID = ' . $valueKey;
            $query->setParameter($valueKey$valueId);
        }

        $where = implode(' OR ', $where);

        $query->innerJoin(
            'product',
            's_filter_articles',
            $tableKey,
            
$query->orderBy('propertySet.position');
    }

    /** * @return array<int> */
    private function getFilteredValues(Criteria $criteria): array
    {
        $values = [];
        foreach ($criteria->getConditions() as $condition) {
            if ($condition instanceof PropertyCondition) {
                $values = array_merge($values$condition->getValueIds());
            }
        }

        return $values;
    }

    /** * @param array<Set> $sets * @param array<int> $actives */
    private function createCollectionResult(
        
public function handlePostFilter(
        CriteriaPartInterface $criteriaPart,
        Criteria $criteria,
        Search $search,
        ShopContextInterface $context
    ) {
        $search->addPostFilter($this->getQuery($criteriaPart));
    }

    private function getQuery(PropertyCondition $criteriaPart): TermsQuery
    {
        return new TermsQuery('properties.id', $criteriaPart->getValueIds());
    }
}
/** @var ValueListFacetResult $propertyFacet */
        foreach ($facet->getFacetResults() as $propertyFacet) {
            $ids = array_map(
                function D$item) {
                    return $item->getId();
                },
                $propertyFacet->getValues()
            );

            $filtered = false;
            foreach ($conditions as $condition) {
                $diff = array_diff($condition->getValueIds()$ids);
                $filtered = \count($condition->getValueIds()) !== \count($diff);

                if ($filtered) {
                    break;
                }
            }
            if (!$filtered) {
                $new[] = $propertyFacet;
            }
        }
        $facet->setFacetResults($new);
    }
Home | Imprint | This part of the site doesn't use cookies.