diff --git a/src/Plugin/Field/FieldWidget/ParagraphsWidget.php b/src/Plugin/Field/FieldWidget/ParagraphsWidget.php index c40afea..6ce7289 100644 --- a/src/Plugin/Field/FieldWidget/ParagraphsWidget.php +++ b/src/Plugin/Field/FieldWidget/ParagraphsWidget.php @@ -161,6 +161,7 @@ class ParagraphsWidget extends WidgetBase { return array( 'title' => t('Paragraph'), 'title_plural' => t('Paragraphs'), + 'add_new_button_value_type' => 'type', 'edit_mode' => 'open', 'closed_mode' => 'summary', 'autocollapse' => 'none', @@ -194,6 +195,18 @@ class ParagraphsWidget extends WidgetBase { '#required' => TRUE, ); + $elements['add_new_button_value_type'] = array( + '#type' => 'radios', + '#title' => $this->t('Add new button value type'), + '#options' => [ + 'type' => $this->t('Paragraph Type'), + 'title' => $this->t('Paragraph Title'), + ], + '#description' => $this->t('Switch for the value which add new button will display.'), + '#default_value' => $this->getSetting('add_new_button_value_type'), + '#required' => TRUE, + ); + $elements['edit_mode'] = array( '#type' => 'select', '#title' => $this->t('Edit mode'), @@ -355,6 +368,9 @@ class ParagraphsWidget extends WidgetBase { '@title_plural' => $this->getSetting('title_plural') ]); + $add_new_button_value_type = $this->getSetting('add_new_button_value_type'); + $summary[] = $this->t('Add new button value type: @add_new_button_value_type', ['@add_new_button_value_type' => $add_new_button_value_type]); + $edit_mode = $this->getSettingOptions('edit_mode')[$this->getSetting('edit_mode')]; $closed_mode = $this->getSettingOptions('closed_mode')[$this->getSetting('closed_mode')]; $add_mode = $this->getSettingOptions('add_mode')[$this->getSetting('add_mode')]; @@ -1905,6 +1921,11 @@ class ParagraphsWidget extends WidgetBase { '#bundle_machine_name' => $machine_name, ]); + $add_new_button_value_type = $this->getSetting('add_new_button_value_type'); + if ($add_new_button_value_type == 'title') { + $add_more_elements[$button_key]['#value'] = $add_mode == 'modal' ? $label : $this->t('Add @title', ['@title' => $this->getSetting('title')]); + } + if ($add_mode === 'modal' && $icon_url = $paragraphs_type_storage->load($machine_name)->getIconUrl()) { $add_more_elements[$button_key]['#attributes']['style'] = 'background-image: url(' . $icon_url . ');'; }