protected function placeAssetsInHeaderAndFooter($assets, $cached)
{
$settings = $this->getSettings();
$header = [];
$footer = [];
$footerRelocationEnabled = isset($settings['enableFooterRelocation']) && $settings['relocateToFooter'] > 0 || !isset($settings['enableFooterRelocation']);
foreach ($assets as $name => $asset) {
$variables = $asset->getVariables();
if (0 < count($variables)) {
$name .= '-' . md5(serialize($variables));
}
if (true === ($this->assertAssetAllowedInFooter($asset) && $footerRelocationEnabled)) {
$footer[$name] = $asset;
} else {
$header[$name] = $asset;
}
}
if (false === $cached) {
$uncachedSuffix = 'Uncached';
} else {
$uncachedSuffix = '';
$dependenciesString = '<!-- VhsAssetsDependenciesLoaded ' . implode(',', array_keys($assets)) . ' -->';
$this->insertAssetsAtMarker('DependenciesLoaded', $dependenciesString);
}
$this->insertAssetsAtMarker('Header' . $uncachedSuffix, $header);
$this->insertAssetsAtMarker('Footer' . $uncachedSuffix, $footer);
$GLOBALS['VhsAssets'] = [];
}