BlazyDependenciesTrait.php in Blazy 8.2
File
src/Dejavu/BlazyDependenciesTrait.php
View source
<?php
namespace Drupal\blazy\Dejavu;
trait BlazyDependenciesTrait {
public function calculateDependencies() {
$dependencies = parent::calculateDependencies();
$style_ids = [];
foreach ([
'box',
'box_media',
'image',
'thumbnail',
] as $key) {
if (!empty($this
->getSetting($key . '_style'))) {
$style_ids[] = $this
->getSetting($key . '_style');
}
}
foreach ($style_ids as $style_id) {
if ($style_id && ($style = $this->formatter
->entityLoad($style_id, 'image_style'))) {
$dependencies[$style
->getConfigDependencyKey()][] = $style
->getConfigDependencyName();
}
}
if ($this->formatter
->getModuleHandler()
->moduleExists('responsive_image')) {
foreach ([
'box',
'responsive_image',
] as $key) {
$style_id = $this
->getSetting($key . '_style');
if ($style_id && ($style = $this->formatter
->entityLoad($style_id, 'responsive_image_style'))) {
$dependencies[$style
->getConfigDependencyKey()][] = $style
->getConfigDependencyName();
}
}
}
return $dependencies;
}
public function onDependencyRemoval(array $dependencies) {
$changed = parent::onDependencyRemoval($dependencies);
$style_ids = [];
foreach ([
'box',
'box_media',
'image',
'thumbnail',
] as $key) {
if (!empty($this
->getSetting($key . '_style'))) {
$style_ids[] = $this
->getSetting($key . '_style');
}
}
foreach ($style_ids as $name => $style_id) {
if ($style_id && ($style = $this->formatter
->entityLoad($style_id, 'image_style'))) {
if (!empty($dependencies[$style
->getConfigDependencyKey()][$style
->getConfigDependencyName()])) {
$replacement_id = $this->formatter
->getEntityTypeManager()
->getStorage('image_style')
->getReplacementId($style_id);
if ($replacement_id && $this->formatter
->entityLoad($replacement_id, 'image_style')) {
$this
->setSetting($name, $replacement_id);
$changed = TRUE;
}
}
}
}
return $changed;
}
}