Beispiel #1
0
/**
 * Saves the image style dependencies into form and view display entities.
 */
function image_post_update_image_style_dependencies()
{
    // Merge view and form displays. Use array_values() to avoid key collisions.
    $displays = array_merge(array_values(EntityViewDisplay::loadMultiple()), array_values(EntityFormDisplay::loadMultiple()));
    /** @var \Drupal\Core\Entity\Display\EntityDisplayInterface[] $displays */
    foreach ($displays as $display) {
        // Re-save each config entity to add missed dependencies.
        $display->save();
    }
}
/**
 * Make responsive image formatters dependent on responsive image styles.
 */
function responsive_image_post_update_recreate_dependencies()
{
    $displays = EntityViewDisplay::loadMultiple();
    array_walk($displays, function (EntityViewDisplayInterface $entity_view_display) {
        $old_dependencies = $entity_view_display->getDependencies();
        $new_dependencies = $entity_view_display->calculateDependencies()->getDependencies();
        if ($old_dependencies !== $new_dependencies) {
            $entity_view_display->save();
        }
    });
}
Beispiel #3
0
 /**
  * Update field settings if the image style name is changed.
  *
  * @param \Drupal\image\ImageStyleInterface $style
  *   The image style.
  */
 protected static function replaceImageStyle(ImageStyleInterface $style)
 {
     if ($style->id() != $style->getOriginalId()) {
         // Loop through all entity displays looking for formatters / widgets using
         // the image style.
         foreach (EntityViewDisplay::loadMultiple() as $display) {
             foreach ($display->getComponents() as $name => $options) {
                 if (isset($options['type']) && $options['type'] == 'image' && $options['settings']['image_style'] == $style->getOriginalId()) {
                     $options['settings']['image_style'] = $style->id();
                     $display->setComponent($name, $options)->save();
                 }
             }
         }
         foreach (EntityViewDisplay::loadMultiple() as $display) {
             foreach ($display->getComponents() as $name => $options) {
                 if (isset($options['type']) && $options['type'] == 'image_image' && $options['settings']['preview_image_style'] == $style->getOriginalId()) {
                     $options['settings']['preview_image_style'] = $style->id();
                     $display->setComponent($name, $options)->save();
                 }
             }
         }
     }
 }