protected function manipulateAssetsByTypoScriptSettings($assets)
{
$settings = $this->getSettings();
if (false === (isset($settings['asset']) || isset($settings['assetGroup']))) {
return $assets;
}
$filtered = [];
/** @var \FluidTYPO3\Vhs\Asset $asset */
foreach ($assets as $name => $asset) {
$assetSettings = $this->extractAssetSettings($asset);
$groupName = $assetSettings['group'];
$removed = (bool) (true === isset($assetSettings['removed']) ? $assetSettings['removed'] : false);
if (true === $removed) {
continue;
}
$localSettings = (array) $assetSettings;
if (true === isset($settings['asset'])) {
$localSettings = $this->mergeArrays($localSettings, (array) $settings['asset']);
}
if (true === isset($settings['asset'][$name])) {
$localSettings = $this->mergeArrays($localSettings, (array) $settings['asset'][$name]);
}
if (true === isset($settings['assetGroup'][$groupName])) {
$localSettings = $this->mergeArrays($localSettings, (array) $settings['assetGroup'][$groupName]);
}
if (true === $asset instanceof AssetInterface) {
$asset->setSettings($localSettings);
$filtered[$name] = $asset;
} else {
$filtered[$name] = $assetSettings;
}
}
return $filtered;
}