Neos\Neos\Fusion\DimensionsMenuImplementation::findAcceptableNode PHP Method

findAcceptableNode() protected method

protected findAcceptableNode ( array $allowedCombination, array $allDimensionPresets ) : null | Neos\ContentRepository\Domain\Model\NodeInterface
$allowedCombination array
$allDimensionPresets array
return null | Neos\ContentRepository\Domain\Model\NodeInterface
    protected function findAcceptableNode(array $allowedCombination, array $allDimensionPresets)
    {
        $pinnedDimensionName = $this->getDimension();
        foreach ($allowedCombination[$pinnedDimensionName] as $allowedPresetIdentifier) {
            $acceptableCombination = [$pinnedDimensionName => $allDimensionPresets[$pinnedDimensionName]['presets'][$allowedPresetIdentifier]['values']];
            $allowedAdditionalPresets = $this->configurationContentDimensionPresetSource->getAllowedDimensionPresetsAccordingToPreselection('country', [$pinnedDimensionName => $allowedPresetIdentifier]);
            foreach ($allowedAdditionalPresets as $allowedAdditionalDimensionName => $allowedAdditionalPreset) {
                $acceptableCombination[$allowedAdditionalDimensionName] = $allowedAdditionalPreset['presets'][$allowedAdditionalPreset['defaultPreset']]['values'];
            }
            $nodeInDimensions = $this->getNodeInDimensions($acceptableCombination, []);
            if ($nodeInDimensions !== null) {
                return $nodeInDimensions;
            }
        }
        return null;
    }