smart_trim-8.x-1.3/smart_trim.install

smart_trim.install
<?php

/**
 * @file
 * Install, update and uninstall functions for smart_date module.
 */

declare(strict_types=1);

/**
 * Update Smart Trim more settings.
 *
 * Iterate through entity view displays and for any with Smart Trim as formatter
 * type, move top level more link settings into more array.
 */
function smart_trim_update_10201() {
  /** @var \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager */
  $entityTypeManager = \Drupal::service('entity_type.manager');
  $storage = $entityTypeManager->getStorage('entity_view_display');
  foreach ($storage->loadMultiple() as $display) {
    $changed = FALSE;
    /** @var \Drupal\Core\Entity\Entity\EntityViewDisplay $display */
    $content = $display->get('content');
    foreach ($content as $key => $content_entry) {
      if (($content_entry['type'] ?? '') == 'smart_trim'
        && isset($content_entry['settings']['more_link'])) {

        $content[$key]['settings']['more'] = [
          'display_link' => $content_entry['settings']['more_link'],
          'target_blank' => $content_entry['settings']['more_target_blank'] ?? FALSE,
          'link_trim_only' => $content_entry['settings']['more_link_trim_only'] ?? FALSE,
          'class' => $content_entry['settings']['more_class'] ?? 'more-link',
          'text' => $content_entry['settings']['more_text'] ?? t('More'),
          'aria_label' => $content_entry['settings']['more_aria_label'] ?? t('Read more about [node:title]'),
        ];
        unset($content[$key]['settings']['more_link']);
        unset($content[$key]['settings']['more_target_blank']);
        unset($content[$key]['settings']['more_link_trim_only']);
        unset($content[$key]['settings']['more_class']);
        unset($content[$key]['settings']['more_text']);
        unset($content[$key]['settings']['more_aria_label']);
        $changed = TRUE;
      }
    }
    if ($changed) {
      $display->set('content', $content);
      $display->save();
    }
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc