function content_moderation_post_update_views_field_plugin_id

Update the moderation state views field plugin ID.

File

core/modules/content_moderation/content_moderation.post_update.php, line 177

Code

function content_moderation_post_update_views_field_plugin_id(&$sandbox) {
    // If Views is not installed, there is nothing to do.
    if (!\Drupal::moduleHandler()->moduleExists('views')) {
        return;
    }
    \Drupal::classResolver(ConfigEntityUpdater::class)->update($sandbox, 'view', function ($view) {
        
        /** @var \Drupal\views\ViewEntityInterface $view */
        $updated = FALSE;
        $displays = $view->get('display');
        foreach ($displays as &$display) {
            if (empty($display['display_options']['fields'])) {
                continue;
            }
            foreach ($display['display_options']['fields'] as &$display_field) {
                if ($display_field['id'] === 'moderation_state' && $display_field['plugin_id'] === 'field') {
                    $display_field['plugin_id'] = 'moderation_state_field';
                    $updated = TRUE;
                }
            }
        }
        $view->set('display', $displays);
        return $updated;
    });
}

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