/**
* @return void
*/
protected function initializeVariants()
{
$variants = (array) $this->getAllRegisteredVariants();
foreach ($variants as $contentType => $registeredVariantExtensions) {
if (TRUE === empty($registeredVariantExtensions)) {
continue;
}
$this->variants[$contentType] = array();
foreach ($registeredVariantExtensions as $extensionKeyOrArray) {
$icon = NULL;
$versions = array();
if (TRUE === is_array($extensionKeyOrArray) && 3 === count($extensionKeyOrArray)) {
list($extensionKey, $labelReference, $icon) = $extensionKeyOrArray;
} elseif (TRUE === is_array($extensionKeyOrArray) && 2 === count($extensionKeyOrArray)) {
list($extensionKey, $labelReference) = $extensionKeyOrArray;
} else {
$extensionKey = ExtensionNamingUtility::getExtensionKey($extensionKeyOrArray);
$labelReference = 'moox_core.variantLabel';
}
$controllerName = 'CoreContent/' . ucfirst($contentType);
$paths = $this->getViewConfigurationForExtensionName($extensionKey);
$templatePaths = new TemplatePaths($paths);
$files = $templatePaths->resolveAvailableTemplateFiles($controllerName);
foreach ($files as $file) {
$versions[] = basename($file, '.' . TemplatePaths::DEFAULT_FORMAT);
}
$versions = array_unique($versions);
$this->versions[$contentType] = array($extensionKey => $versions);
$this->variants[$contentType][] = array($extensionKey, $labelReference, $icon);
}
}
}