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();
}
}
}
