Implements hook_advagg_build_aggregate_plans_post_alter().
Related topics
File
-
advagg_sri/
advagg_sri.advagg.inc, line 43
Code
function advagg_sri_advagg_build_aggregate_plans_post_alter(array &$plans) {
// * @param array $plans
// * Array of aggregate files.
$advagg_sri = variable_get('advagg_sri', ADVAGG_SRI);
if (empty($advagg_sri)) {
return;
}
if ($advagg_sri == 1) {
$sha_bits = 'sha256';
}
if ($advagg_sri == 2) {
$sha_bits = 'sha384';
}
if ($advagg_sri == 3) {
$sha_bits = 'sha512';
}
// Get all aggregates.
$files = array();
$filenames = array();
foreach ($plans as $key => $values) {
if ($values['type'] !== 'file' || empty($values['cache'])) {
continue;
}
$files[$values['filename']] = $key;
$filenames[$values['filepath']] = $values['filename'];
}
// Lookup hashes.
$hashes = array();
if (!empty($filenames)) {
$hashes = advagg_sri_get_filenames_hashes($filenames);
}
// Set attributes.
foreach ($hashes as $filename => $hash) {
if (isset($files[$filename]) && isset($plans[$files[$filename]])) {
$plans[$files[$filename]]['attributes']['integrity'] = $sha_bits . '-' . $hash[$sha_bits];
}
}
}