function datetime_range_post_update_from_to_configuration

Adds 'from_to' in flagged entity view date range formatter.

See also

\datetime_range_entity_view_display_presave

File

core/modules/datetime_range/datetime_range.post_update.php, line 29

Code

function datetime_range_post_update_from_to_configuration(?array &$sandbox = NULL) : void {
  /** @var \Drupal\Core\Field\FormatterPluginManager $field_formatter_manager */
  $field_formatter_manager = \Drupal::service('plugin.manager.field.formatter');
  $config_entity_updater = \Drupal::classResolver(ConfigEntityUpdater::class);
  $callback = function (EntityViewDisplayInterface $entity_view_display) use ($field_formatter_manager) {
    foreach (array_values($entity_view_display->getComponents()) as $component) {
      if (empty($component['type'])) {
        continue;
      }
      $plugin_definition = $field_formatter_manager->getDefinition($component['type'], FALSE);
      $daterange_formatter_classes = [
        DateRangeCustomFormatter::class,
        DateRangeDefaultFormatter::class,
        DateRangePlainFormatter::class,
      ];
      if (!in_array($plugin_definition['class'], $daterange_formatter_classes, FALSE)) {
        continue;
      }
      if (!isset($component['settings']['from_to'])) {
        return TRUE;
      }
    }
    return FALSE;
  };
  $config_entity_updater->update($sandbox, 'entity_view_display', $callback);
}

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