Adds settings to Slugify Text Formatter (to capture separator).

This commit is contained in:
2021-02-18 08:41:28 +00:00
parent 34b7cc6585
commit f3452c23a2
@@ -7,6 +7,7 @@ use Drupal\cdesai_tff\SlugifyServiceInterface;
use Drupal\cdesai_tff\DesaiTextFormatterBase; use Drupal\cdesai_tff\DesaiTextFormatterBase;
use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\Field\FieldItemInterface; use Drupal\Core\Field\FieldItemInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -71,6 +72,51 @@ class SlugifyTextFormatter extends DesaiTextFormatterBase implements ContainerFa
); );
} }
/**
* {@inheritdoc}
*/
public static function defaultSettings() {
$options = parent::defaultSettings();
$options['tff_separator'] = SlugifyServiceInterface::DEFAULT_SEPARATOR;
return $options;
}
/**
* {@inheritdoc}
*/
public function settingsForm(array $form, FormStateInterface $form_state) {
$form = parent::settingsForm($form, $form_state);
$defaultSettings = self::defaultSettings();
$separator = trim($this->getSetting('tff_separator'));
$form['tff_separator'] = [
'#type' => 'textfield',
'#title' => $this->t('Separator'),
'#description' => $this->t('Default if left blank: @default', ['@default' => $defaultSettings['tff_separator']]),
'#default_value' => $separator ? $separator : SlugifyServiceInterface::DEFAULT_SEPARATOR,
];
return $form;
}
/**
* {@inheritdoc}
*/
public function settingsSummary() {
$summary = [];
$separator = trim($this->getSetting('tff_separator'));
if ($separator && $separator !== SlugifyServiceInterface::DEFAULT_SEPARATOR) {
$summary[] = $this->t('Separator: @value', ['@value' => $separator]);
}
else {
$summary[] = $this->t('Default Separator: @value', ['@value' => SlugifyServiceInterface::DEFAULT_SEPARATOR]);
}
return $summary;
}
/** /**
* @inheritDoc * @inheritDoc
*/ */
@@ -82,7 +128,9 @@ class SlugifyTextFormatter extends DesaiTextFormatterBase implements ContainerFa
* @inheritDoc * @inheritDoc
*/ */
function getValue(FieldItemInterface $item) { function getValue(FieldItemInterface $item) {
return $this->slugifyService->convertToSlug($item); $separator = trim($this->getSetting('tff_separator'));
return $this->slugifyService->convertToSlug($item, $separator);
} }
} }