.../text/templates/field--text-long.html.twig | 1 + .../templates/field--text-with-summary.html.twig | 1 + core/modules/text/templates/field--text.html.twig | 20 +++++++++++++++++++ core/modules/text/text.module | 23 ++++++++++++++++++++++ 4 files changed, 45 insertions(+) diff --git a/core/modules/text/templates/field--text-long.html.twig b/core/modules/text/templates/field--text-long.html.twig new file mode 100644 index 0000000..5f201f0 --- /dev/null +++ b/core/modules/text/templates/field--text-long.html.twig @@ -0,0 +1 @@ +{% extends "@text/field--text.html.twig" %} diff --git a/core/modules/text/templates/field--text-with-summary.html.twig b/core/modules/text/templates/field--text-with-summary.html.twig new file mode 100644 index 0000000..5f201f0 --- /dev/null +++ b/core/modules/text/templates/field--text-with-summary.html.twig @@ -0,0 +1 @@ +{% extends "@text/field--text.html.twig" %} diff --git a/core/modules/text/templates/field--text.html.twig b/core/modules/text/templates/field--text.html.twig new file mode 100644 index 0000000..e9f9aca --- /dev/null +++ b/core/modules/text/templates/field--text.html.twig @@ -0,0 +1,20 @@ +{% extends "@system/field.html.twig" %} +{# +/** + * @file + * Default theme implementation for a text field. + * + * A 'clearfix' class is added, because 'text' fields have a 'format' property + * that allows a Text Format to be associated with the entered text, which then + * applies filtering on output. + * A common use case is to align images to the left or right, and without this + * 'clearfix' class, such aligned images may be rendered outside of the 'text' + * field formatter's boundaries, and hence overlap with other fields. + * By setting the 'clearfix' class on all 'text' fields, we prevent that. + * + * @see https://www.drupal.org/node/2358529 + * + * @ingroup themeable + */ +#} +{% set attributes = attributes.addClass('clearfix') %} diff --git a/core/modules/text/text.module b/core/modules/text/text.module index 02140fe..233418a 100644 --- a/core/modules/text/text.module +++ b/core/modules/text/text.module @@ -39,6 +39,29 @@ function text_help($route_name, RouteMatchInterface $route_match) { } /** + * Implements hook_theme(). + */ +function text_theme() { + return [ + // Normally theme suggestion templates are only picked up when they are in + // themes. We explicitly define theme suggestions here so that the text + // field templates in core/modules/text/templates are picked up. + 'field__text' => [ + 'render element' => 'elements', + 'base hook' => 'field', + ], + 'field__text_long' => [ + 'render element' => 'elements', + 'base hook' => 'field', + ], + 'field__text_with_summary' => [ + 'render element' => 'elements', + 'base hook' => 'field', + ], + ]; +} + +/** * Generates a trimmed, formatted version of a text field value. * * If the end of the summary is not indicated using the delimiter