responsive_image-loading-attribute.php

Same filename in other branches
  1. 11.x core/modules/responsive_image/tests/fixtures/update/responsive_image-loading-attribute.php

Test lazy load update by modifying an image field form display.

File

core/modules/responsive_image/tests/fixtures/update/responsive_image-loading-attribute.php

View source
<?php


/**
 * @file
 * Test lazy load update by modifying an image field form display.
 */
use Drupal\Core\Database\Database;
$connection = Database::getConnection();
// Add a responsive image style.
$styles = [];
$styles['langcode'] = 'en';
$styles['status'] = TRUE;
$styles['dependencies']['config'][] = 'image.style.large';
$styles['dependencies']['config'][] = 'image.style.medium';
$styles['dependencies']['config'][] = 'image.style.thumbnail';
$styles['id'] = 'responsive_image_style';
$styles['uuid'] = '46225242-eb4c-4b10-9a8c-966130b18630';
$styles['label'] = 'Responsive Image Style';
$styles['breakpoint_group'] = 'responsive_image';
$styles['fallback_image_style'] = 'medium';
$styles['image_style_mappings'] = [
    [
        'image_mapping_type' => 'sizes',
        'image_mapping' => [
            'sizes' => '100vw',
            'sizes_image_styles' => [
                'large',
                'medium',
                'thumbnail',
            ],
        ],
        'breakpoint_id' => 'responsive_image.viewport_sizing',
        'multiplier' => '1x',
    ],
];
$connection->insert('config')
    ->fields([
    'collection',
    'name',
    'data',
])
    ->values([
    'collection' => '',
    'name' => 'responsive_image.styles.responsive_image_style',
    'data' => serialize($styles),
])
    ->execute();
// Update article view display to use responsive_image.
$article_form_display = $connection->select('config')
    ->fields('config', [
    'data',
])
    ->condition('collection', '')
    ->condition('name', 'core.entity_view_display.node.article.default')
    ->execute()
    ->fetchField();
$article_form_display = unserialize($article_form_display);
$article_form_display['content']['field_image']['type'] = 'responsive_image';
$article_form_display['content']['field_image']['settings'] = [
    'responsive_image_style' => 'responsive_image_style',
    'image_link' => '',
];
$connection->update('config')
    ->fields([
    'data' => serialize($article_form_display),
])
    ->condition('collection', '')
    ->condition('name', 'core.entity_view_display.node.article.default')
    ->execute();

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.