Loading config/schema/custom_twig_formatter.schema.yml +0 −3 Original line number Diff line number Diff line Loading @@ -5,6 +5,3 @@ field.formatter.settings.custom_twig_markup: custom_twig_markup: type: string label: 'Custom Twig markup' use_default_field_markup_wrapper: type: boolean label: 'Use default field markup wrapper' src/Plugin/Field/FieldFormatter/CustomTwigFormatter.php +2 −39 Original line number Diff line number Diff line Loading @@ -94,7 +94,6 @@ class CustomTwigFormatter extends FormatterBase { public static function defaultSettings() { return [ 'custom_twig_markup' => '', 'use_default_field_markup_wrapper' => TRUE, ] + parent::defaultSettings(); } Loading @@ -104,13 +103,6 @@ class CustomTwigFormatter extends FormatterBase { public function settingsForm(array $form, FormStateInterface $form_state) { $form = parent::settingsForm($form, $form_state); $form['use_default_field_markup_wrapper'] = [ '#title' => $this->t('Use default field markup wrapper'), '#description' => $this->t('Wrap the field with deafult label and classes. The values are also available using: <code>{{ label }} {{ css_classes }} {{ title_css_classes }}</code>'), '#type' => 'checkbox', '#default_value' => $this->getSetting('use_default_field_markup_wrapper'), ]; $form['custom_twig_markup'] = [ '#type' => 'textarea', '#title' => $this->t('Twig code'), Loading Loading @@ -154,8 +146,6 @@ class CustomTwigFormatter extends FormatterBase { } $tokensDoc = [ 'label' => 'string', 'css_classes' => 'string', 'title_css_classes' => 'string', ]; // Build documentation. Loading Loading @@ -221,21 +211,6 @@ class CustomTwigFormatter extends FormatterBase { else { $label = $this->fieldDefinition->getLabel(); } // Build default field classes. $field_name_class = str_replace('_', '-', $field_name); $field_type_class = str_replace('_', '-', $field_type); $label_display_class = str_replace('_', '-', $label_display_position); $css_classes = 'field'; $css_classes .= ' field--name-' . $field_name_class; $css_classes .= ' field--type-' . $field_type_class; $css_classes .= ' field--label-' . $label_display_class; if ($label_display_position == 'inline') { $css_classes .= ' clearfix'; } $title_css_classes = 'field__label'; if ($label_display_position == 'visually_hidden') { $title_css_classes .= ' visually-hidden'; } // Load twig field replacement patterns. $context = []; Loading @@ -243,28 +218,16 @@ class CustomTwigFormatter extends FormatterBase { $context[$field_id] = $value; } $context['label'] = $label; $context['css_classes'] = $css_classes; $context['title_css_classes'] = $title_css_classes; // Build twig markup. $output = ''; $markup = ''; try { $output = $this->twig->createTemplate($this->getSetting('custom_twig_markup')) $markup = $this->twig->createTemplate($this->getSetting('custom_twig_markup')) ->render($context); } catch (Twig_Error $error) { $this->messenger()->addError($error->getMessage()); } if ($this->getSetting('use_default_field_markup_wrapper')) { $markup = "<div class=\"$css_classes\">"; $markup .= "<div class=\"$title_css_classes\">$label</div>"; $markup .= '<div class="field__items">'; $markup .= $output; $markup .= '</div></div>'; } else { $markup = $output; } $entity_type = $entity->getEntityTypeId(); $elements = [ Loading Loading
config/schema/custom_twig_formatter.schema.yml +0 −3 Original line number Diff line number Diff line Loading @@ -5,6 +5,3 @@ field.formatter.settings.custom_twig_markup: custom_twig_markup: type: string label: 'Custom Twig markup' use_default_field_markup_wrapper: type: boolean label: 'Use default field markup wrapper'
src/Plugin/Field/FieldFormatter/CustomTwigFormatter.php +2 −39 Original line number Diff line number Diff line Loading @@ -94,7 +94,6 @@ class CustomTwigFormatter extends FormatterBase { public static function defaultSettings() { return [ 'custom_twig_markup' => '', 'use_default_field_markup_wrapper' => TRUE, ] + parent::defaultSettings(); } Loading @@ -104,13 +103,6 @@ class CustomTwigFormatter extends FormatterBase { public function settingsForm(array $form, FormStateInterface $form_state) { $form = parent::settingsForm($form, $form_state); $form['use_default_field_markup_wrapper'] = [ '#title' => $this->t('Use default field markup wrapper'), '#description' => $this->t('Wrap the field with deafult label and classes. The values are also available using: <code>{{ label }} {{ css_classes }} {{ title_css_classes }}</code>'), '#type' => 'checkbox', '#default_value' => $this->getSetting('use_default_field_markup_wrapper'), ]; $form['custom_twig_markup'] = [ '#type' => 'textarea', '#title' => $this->t('Twig code'), Loading Loading @@ -154,8 +146,6 @@ class CustomTwigFormatter extends FormatterBase { } $tokensDoc = [ 'label' => 'string', 'css_classes' => 'string', 'title_css_classes' => 'string', ]; // Build documentation. Loading Loading @@ -221,21 +211,6 @@ class CustomTwigFormatter extends FormatterBase { else { $label = $this->fieldDefinition->getLabel(); } // Build default field classes. $field_name_class = str_replace('_', '-', $field_name); $field_type_class = str_replace('_', '-', $field_type); $label_display_class = str_replace('_', '-', $label_display_position); $css_classes = 'field'; $css_classes .= ' field--name-' . $field_name_class; $css_classes .= ' field--type-' . $field_type_class; $css_classes .= ' field--label-' . $label_display_class; if ($label_display_position == 'inline') { $css_classes .= ' clearfix'; } $title_css_classes = 'field__label'; if ($label_display_position == 'visually_hidden') { $title_css_classes .= ' visually-hidden'; } // Load twig field replacement patterns. $context = []; Loading @@ -243,28 +218,16 @@ class CustomTwigFormatter extends FormatterBase { $context[$field_id] = $value; } $context['label'] = $label; $context['css_classes'] = $css_classes; $context['title_css_classes'] = $title_css_classes; // Build twig markup. $output = ''; $markup = ''; try { $output = $this->twig->createTemplate($this->getSetting('custom_twig_markup')) $markup = $this->twig->createTemplate($this->getSetting('custom_twig_markup')) ->render($context); } catch (Twig_Error $error) { $this->messenger()->addError($error->getMessage()); } if ($this->getSetting('use_default_field_markup_wrapper')) { $markup = "<div class=\"$css_classes\">"; $markup .= "<div class=\"$title_css_classes\">$label</div>"; $markup .= '<div class="field__items">'; $markup .= $output; $markup .= '</div></div>'; } else { $markup = $output; } $entity_type = $entity->getEntityTypeId(); $elements = [ Loading