protected function getUriSegmentForDimensions(array $dimensionsValues, $currentNodeIsSiteNode)
{
$uriSegment = '';
$allDimensionPresetsAreDefault = true;
foreach ($this->contentDimensionPresetSource->getAllPresets() as $dimensionName => $dimensionPresets) {
$preset = null;
if (isset($dimensionsValues[$dimensionName])) {
$preset = $this->contentDimensionPresetSource->findPresetByDimensionValues($dimensionName, $dimensionsValues[$dimensionName]);
}
$defaultPreset = $this->contentDimensionPresetSource->getDefaultPreset($dimensionName);
if ($preset === null) {
$preset = $defaultPreset;
}
if ($preset !== $defaultPreset) {
$allDimensionPresetsAreDefault = false;
}
if (!isset($preset['uriSegment'])) {
throw new \Exception(sprintf('No "uriSegment" configured for content dimension preset "%s" for dimension "%s". Please check the content dimension configuration in Settings.yaml', $preset['identifier'], $dimensionName), 1395824520);
}
$uriSegment .= $preset['uriSegment'] . '_';
}
if ($allDimensionPresetsAreDefault && $currentNodeIsSiteNode) {
return '/';
} else {
return ltrim(trim($uriSegment, '_') . '/', '/');
}
}