diff --git a/config/schema/view_mode_selector.schema.yml b/config/schema/view_mode_selector.schema.yml
index 2447f9b..82e4b1c 100644
--- a/config/schema/view_mode_selector.schema.yml
+++ b/config/schema/view_mode_selector.schema.yml
@@ -16,6 +16,8 @@ field.field_settings.view_mode_selector:
type: boolean
hide_title:
type: boolean
+ override_title:
+ type: string
icon:
type: mapping
mapping:
diff --git a/src/Plugin/Field/FieldType/ViewModeSelectorItem.php b/src/Plugin/Field/FieldType/ViewModeSelectorItem.php
index e117ad7..9ccddb6 100644
--- a/src/Plugin/Field/FieldType/ViewModeSelectorItem.php
+++ b/src/Plugin/Field/FieldType/ViewModeSelectorItem.php
@@ -97,6 +97,17 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
// if ($instance['widget']['type'] == 'view_mode_selector_radios') {
$element['view_modes'][$view_mode_id]['prefix']['#markup'] = '
';
+ $element['view_modes'][$view_mode_id]['override_title'] = [
+ '#type' => 'textfield',
+ '#title' => $this->t('Override title'),
+ '#default_value' => $settings['view_modes'][$view_mode_id]['override_title'] ?? "",
+ '#states' => [
+ 'visible' => [
+ 'input[name="field[settings][view_modes][' . $view_mode_id . '][enable]"]' => ['checked' => TRUE],
+ ],
+ ],
+ ];
+
$element['view_modes'][$view_mode_id]['hide_title'] = [
'#type' => 'checkbox',
'#title' => t('Hide title'),
diff --git a/src/Plugin/Field/FieldWidget/ViewModeSelectorWidgetBase.php b/src/Plugin/Field/FieldWidget/ViewModeSelectorWidgetBase.php
index 036eee6..8a54de3 100644
--- a/src/Plugin/Field/FieldWidget/ViewModeSelectorWidgetBase.php
+++ b/src/Plugin/Field/FieldWidget/ViewModeSelectorWidgetBase.php
@@ -49,6 +49,10 @@ public function __construct($plugin_id, $plugin_definition, FieldDefinitionInter
// Reduce options by enabled view modes
foreach (array_keys($view_modes) as $view_mode) {
if (isset($field_settings['view_modes'][$view_mode]['enable']) && $field_settings['view_modes'][$view_mode]['enable']) {
+ if (isset($field_settings['view_modes'][$view_mode]['override_title']) && strlen($field_settings['view_modes'][$view_mode]['override_title']) > 0) {
+ $view_modes[$view_mode] = $field_settings['view_modes'][$view_mode]['override_title'];
+ }
+
continue;
}
unset($view_modes[$view_mode]);