diff --git a/src/Form/SlickAdmin.php b/src/Form/SlickAdmin.php index 6b6c728..4448da3 100644 --- a/src/Form/SlickAdmin.php +++ b/src/Form/SlickAdmin.php @@ -178,6 +178,15 @@ class SlickAdmin implements SlickAdminInterface { ]; } + if (empty($definition['_views'])) { + $form['use_theme_field'] = [ + '#title' => $this->t('Use field template'), + '#type' => 'checkbox', + '#description' => $this->t('Wrap Slick field output into regular field markup (field.html.twig). Vanilla output otherwise.'), + '#weight' => -106, + ]; + } + if (!empty($definition['thumb_positions'])) { $form['thumbnail_position'] = [ '#type' => 'select', diff --git a/src/Plugin/Field/FieldFormatter/SlickFormatterViewTrait.php b/src/Plugin/Field/FieldFormatter/SlickFormatterViewTrait.php index c967706..59c8aa6 100644 --- a/src/Plugin/Field/FieldFormatter/SlickFormatterViewTrait.php +++ b/src/Plugin/Field/FieldFormatter/SlickFormatterViewTrait.php @@ -32,7 +32,14 @@ trait SlickFormatterViewTrait { $this->formatter->postBuildElements($build, $items, $entities); // Pass to manager for easy updates to all Blazy formatters. - return $this->manager->build($build); + if (empty($settings['use_theme_field'])) { + // Return field-vanilla without field markup. + return $this->manager->build($build); + } + else { + // Return as array to render in regular field.html.twig: + return [$this->manager->build($build)]; + } } } diff --git a/src/SlickDefault.php b/src/SlickDefault.php index ec09597..aefba11 100644 --- a/src/SlickDefault.php +++ b/src/SlickDefault.php @@ -17,12 +17,13 @@ class SlickDefault extends BlazyDefault { */ public static function baseSettings() { return [ - 'optionset' => 'default', - 'override' => FALSE, - 'overridables' => [], - 'skin' => '', - 'skin_arrows' => '', - 'skin_dots' => '', + 'optionset' => 'default', + 'override' => FALSE, + 'overridables' => [], + 'skin' => '', + 'skin_arrows' => '', + 'skin_dots' => '', + 'use_theme_field' => FALSE, ] + parent::baseSettings(); }